1 2 Previous Next 20 Replies Latest reply on Sep 6, 2010 3:14 AM by bigbrueder Go to original post
      • 15. Re: Seam and Flex integration
        william.drai

        I'm not sure I can do a really fair comparison, but at least I can give a list of GraniteDS features that I think Flamingo does not have. I guess the Flamingo developers will correct me if I say something wrong :)



        • Simple remoting to Seam components hiding the use of Flex RemoteObject (and removing the need to constantly mess with services-config.xml) with a use very similar to the Seam remoting JavaScript API.




        • Synchronization of server-side context variables with a client-side context, integrated with Seam bijection. Context variables can then be used in Flex to bind to UI components. This is roughly equivalent but easier to use than the Flamingo binding service.




        • Flex paged collection component that integrate with the Seam Query component and can be bound to any Flex UI component (DataGrid for example).




        • Flex validators that integrate with server-side validation, either data based (Hibernate Validator) or control-based with status messages. I think Flamingo also have a validator that integrates with HV.




        • Full integration with Seam security with a Flex Identity component mirroring server-side methods: login/logout, hasRole, hasPermission. Flamingo provides good support for Seam security but it is even easier with GDS: for example a Flex component can be masked with
          <mx:Button ... visible="{identity.hasRole('admin')}"/>





        • Full integration with Seam events: Flex components can observe events raised by Seam components, either after a remote call or by server push.





        Other features are not particularly tied to Seam but greatly simplify building Flex applications with a Seam/Spring backend :



        • Flexible AMF serialization supporting detached and lazy loaded JPA entities (last time I checked Flamingo AMF serialization was based on an early GraniteDS version and all advanded serialization features had been removed).




        • Support for server push, with good scalability when using comet support with Tomcat/JBossWeb, Jetty continuations or GlassFish V3 Grizzly connector.




        • Eclipse plugin and ant task to generate AS3 classes from a JPA data model.




        • Seam-like client application framework that simplifies building Flex applications and fully integrates with Seam on the server.





        Most of these features are demonstrated in the seam-flexbooking and graniteds-tide-seam examples in the latest GDS 2.0 beta 2 distribution here.





        To be honest there are also Flamingo features that GraniteDS does not provide (or not completely) :



        • The CRUD application generator that can build an initial project from a data model. We may provide later a modified seam-gen that generates a Flex application but it's not in our short-term plans.




        • It seems that Maven support is better in Flamingo. GraniteDS support for Maven is minimal but sufficient for most users (the jar and swc libraries are in a java.net repository).




        • Dynamic persistent methods in Flex. This is surely very handy, but it does not respect the base design principle of GraniteDS that the client should not directly control persistence (to ensure that services semantics and security are correctly enforced). And none of our users has ever requested this.




        • CallSets. However, GDS automatically bundles operations for the most useful cases, for example the Flamingo example with identity would be written with GDS as follows :
          identity.username = "Barack"; 
          identity.password = "Obama";
          identity.loggedIn;   // Calling the getter before the remote call indicates GDS that it should get the value after the call
          identity.login(loginResult);
          
          private function loginResult(event:TideResultEvent):void {
             if (identity.loggedIn) // The property has been correcly retrieved from the server
               ...
          }





        • The documentation is maybe better. GraniteDS documentation is still lacking in some parts but we try to improve it at each release.




        At the end, I think the best way to have a more precise idea is to compare the implementations of the Seam booking example in Flex with GraniteDS and Flamingo. You can easily check that there is a lot less Flex code and configuration with GDS.


        Regards,


        William

        • 16. Re: Seam and Flex integration
          oneworld95

          What's the advantage of Granite over Exadel's Flamingo? Any differences?

          • 17. Re: Seam and Flex integration
            oneworld95
            • 18. Re: Seam and Flex integration
              michaelschuetz

              Hello,


              see my tutorial for integrating Seam and Flex with FlamingoDS here.



              Regards
              Michael

              • 19. Re: Seam and Flex integration
                william.drai

                Hi all,


                GraniteDS 2.0.0.GA has just been released and is available for download here.


                There are once again a lot of bug fixes and improvements in the Flex/Seam integration. The best way to get started is to have a look to the Flex port of the Seam hotel booking example that is available in the examples folder.


                Regards,


                William

                • 20. Re: Seam and Flex integration
                  bigbrueder

                  Hi!


                  Just did a tutorial on Seam/Flex integration with Flamingo: here


                  Quite basic, but interesting for beginners.


                  Regards,
                  Jay

                  1 2 Previous Next