Home > Flex/Air > Difference between WebORB and FluorineFx

Difference between WebORB and FluorineFx


I’m noticing some of the sames and some of the stark differences between WebORB, the commercial yet free .NET Flash Remoting tool and FluorineFx, the open source alternative.

To summarise thus far:

Both:

  • Have a Console feature which allows you to see all the classes you are exposing to the remoting client and invoke them.
  • Work with VS2008 (I have only tested the .NET 2.0 framework) and Flex 3.
  • Have a Windows Service feature that allow you to deploy it alongside your AIR application for better client-side functionality (though by nature that must limit them to Windows deployments, no?)

WebORB: (v3.5 for .NET)

  • Is a free product, but commercially owned and closed source.
  • The licensing allows the software to be used in every scenario except redistribution.
  • Has a very comprehensive Console app that handles security on all namespace/class/method levels very nicely.
  • Has very useful codegen tools within the Console to get you going – both for AS and C#/VB.NET.
  • Has reasonable documentation to go along with it (it is still quite lacking in content and organisation)
  • Has a database tool in the Console (WDML) that essentially takes your DB structure and creates a C# or VB.NET Solution interfacing to all tables/views/stored procs. Also creates AS classes to interface with this data.
  • Exposes all of the DLL to the user. However, there is the option in .config file to turn on “closed” method which means you need to turn each service/method you want.
  • Uses a yahoo mail group to communicate between the developers and the users. The support is helpful to a point… they don’t answer every single question on there, but do answer the crux of them generally.

FluorineFx: (v.1.0.0.13 for .NET)

  • Has a Console app also, but with much less functionality than WebORB
  • Has significant multi-framework (Cairngorm, PureMVC, etc) style actionscript codegen.
  • Has documentation but is seriously lacking in examples. Not easy for new users to understand where to go once it’s working.
  • Has a specific implementation of DataSets and DataTables that is not as intuitive as WebORB. A DataTable for example has the “serverInfo” property which when expanded reveals a cursor, the list of columns and the list of data.
  • Has a nice project setup wizard in Visual Studio.
  • Security support for services must all be done manually in the configuration files.
  • Uses C# Attributes to expose classes as Services. (use [RemotingService(“Fluorine sample service”)] above the class definition.
  • Uses a mailing list for communication, and generally everyone is very helpful.
  • Can and will provide quick additions to the code and SVN releases of new versions based on requests/issues in the mailing list.
  • It’s Open Source, so you can actually learn the ins and outs of AMF and remoting. And, if you’re not happy, get in there and modify the code.

I appreciate both products but feel there needs to be a serious overview of documentation, as I’ve read through both and still find myself not 100% sure about the whole system.

Personally, I think Adobe have something to answer for here. I know they are pushing Blaze and I understand that Java-based Blaze is cross-platform and complies to Adobe’s needs… But seriously, C# and Visual Studio are an amazing partnership in developing software, and I won’t give up developing server-side code in them until something as good as it comes out (fingers crossed that Mono keeps plugging away).

I would like to see Adobe step up into this market and help everyone out, because, let’s face it, Flex and AIR don’t meet their potential until they are hooked up into a server-side component.

  1. May 14, 2011 at 3:10 AM

    Hi Thulasiram, thank you for the comparison. I’d like to make a few corrections and offer some additions to the WebORB side of the comparison. Some additional features WebORB has which would be worth mentioning:
    – Support for mobile clients (Android, Windows Phone and iOS). This includes both native and AIR-based apps
    – Video streaming and recording (RTMP/RTMPT/RTMPS)
    – Publish and subscribe messaging for Flex, Silverlight, Java, JavaScript and mobile clients
    – Integration with NMS, MSMQ and ActiveMQ for pub/sub clients
    – Cloud-based deployments (MS Azure)

    As for the correction, WebORB *does* have a licensing model for the redistribution purposes. Also, our forum is hosted on our site: http://www.themidnightcoders.com/forum

    • Ben Brown
      May 19, 2011 at 12:16 PM

      Thulasiram, I couldn’t agree with your last comment more. Seriously what is taking Adobe so long to integrate AMS with .NET “out of the box”, so to speak? Just shell out the bucks and buy Mark’s company already =)

      So, a couple relevant questions for both of you, actually (noting that I just started evaluating WebORB today and am considering the other .NET alternatives as well):

      * I think I like that FluorineFx uses C# attributes in order to determine which classes/methods to expose to the remote interface. Does WebORB have an equivalent model? From the little I know about WebORB, it seems like it will try to expose every single public method in your entire application unless constrained by one of the config files. The methods exposed, in my opinion, should emulate the model of a WCF interface or a WSDL web services interface or a Java ESB3 interface so I know and control exactly what is being exposed.

      * Speaking of WCF, does FlourineFx even integrate with WCF services?

      * Mark, thanks for clarifying the redistribution license detail. I would like more clarification on this given my current application, but I’ll reach out to you offline to discuss if I need to. Although, to be honest I am a bit hesitant to implement using either product (WebORB or FlourineFx) for a variety of reasons:
      – Lack of Adobe’s “seal of approval” if you will…
      – Size and age of company/project and ability/motivation to continue updating the technologies
      – Relatively little documentation on using either technology with a WCF service running in a managed windows service (outside of IIS)
      – Necessity of using AMS versus a normal web services call to retrieve data in my application where there both the .NET service and database are hosted locally

      * I’m also curious about using WebORB to connect directly to the database and generate the AS classes necessary for normal CRUD operations. This may eliminate the need for a services layer entirely, which could be nice. Possibly violates MVC, but I suppose this could be okay in certain circumstances.

      • May 19, 2011 at 10:15 PM

        Hi Ben,

        Thank your comment. You asked some really good questions!

        Please see my answers below:

        Q: I think I like that FluorineFx uses C# attributes in order to determine which classes/methods to expose to the remote interface. Does WebORB have an equivalent model? From the little I know about WebORB, it seems like it will try to expose every single public method in your entire application unless constrained by one of the config files.

        A: WebORB supports two security models: open and closed. The “open” model is appropriate for development, the “closed” one is for production. With the closed model, nothing is exposed unless you explicitly declare it to be. Here’s the doc: http://www.themidnightcoders.com/fileadmin/docs/dotnet/v4/guide/openclosedmodes.htm

        Q: Speaking of WCF, does FlourineFx even integrate with WCF services?

        A: I’ll let the Fluorine guy(s) answer this question..

        Q: ….to be honest I am a bit hesitant to implement using either product (WebORB or FlourineFx) for a variety of reasons:
        – Lack of Adobe’s “seal of approval” if you will…

        A: Please see the following link (notice it is hosted on the Adobe’s site): http://www.adobe.com/devnet/flex/flex_net.html More than half of the posted articles talk about Flex and .NET integration using WebORB. Clearly, it is not a formal endorsement, but it is definitely something…

        Q (cont): ….. Size and age of company/project and ability/motivation to continue updating the technologies

        A: The company (Midnight Coders) has been around for a while and we have no interest in giving up. It is a legitimate business with a ton of customers who we have legal obligations to support. Quitting because you’re bored with the project would be more akin to the (related) open source project (hehehe)

        Q (cont): Relatively little documentation on using either technology with a WCF service running in a managed windows service (outside of IIS)

        A: I believe the doc we have on this subject is fairly complete: http://www.themidnightcoders.com/fileadmin/docs/dotnet/v4/guide/standalone_wcf_services.htm
        Please let me know if you believe something is missing.

        Q (cont): Necessity of using AMS versus a normal web services call to retrieve data in my application where there both the .NET service and database are hosted locally

        A: You can see a live benchmark comparing performance of Web Services with AMF at: http://www.themidnightcoders.com/products/weborb-for-net/developer-den/technical-articles/amf-vs-webservices.html

        Q: I’m also curious about using WebORB to connect directly to the database and generate the AS classes necessary for normal CRUD operations.

        A: WebORB Data Management for Flex does just that. Here’s the doc link: http://www.themidnightcoders.com/fileadmin/docs/dotnet/v4/guide/flex_data_management_overview.htm

        Hope this helps!

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: