1 2 3 4 Previous Next 53 Replies Latest reply on Jul 23, 2009 4:28 PM by Pragun Mehta

    Seam in professional use

    lucius yu Newbie

      I've been following Seam since 2006 and I'm a HUGE fan of it.  I love the simplification(or de-complication) of JAVA web development.  I haven't seen anything that beats Seam yet.  Even Spring framework which claims it's simplicity doesn't beat it.  However I'm surprised and disappointed that I haven't come cross any employers that have adopted this sweet technology.  I'm finally seeing more and more work for JSF now, but still none that even mentions Seam.  Am I wrong?


      I'd really love to see some companies that are up to date on technology and not stuck at the struts 1.1, EJB 2 era.

        • 1. Re: Seam in professional use
          Tim Evers Master

          Hi,


          I'm a developer on a medium sized application and we are using SEAM. Admittedly we are not using a lot of SEAM functionality but we do use SEAM for simplifying our web module.


          We don't use extended persistence context, and we still use Spring for services.


          So all our domain objects are detached when they reach the web layer and are passed back to the services to persist/merge.


          After a bit of research we decided that SEAM's extended persistence context does not work well in larger applications, or maybe just applications like ours. It also allows for bad coding practices (programmers not understanding what's going on, ie. too much sql gets issued due to lazy loading etc etc). Essentially we have used SEAM as a way to reduce the amount of xml needed by JSF to register all our beans. As well as provide the necessary Scoping mechanism instead of passing around parameters and session variables etc.


          We don't use the extended capabilities that SEAM adds to pages.xml as we are trying hard to stay away from string based abstraction. (Which is hard when injection is name based instead of type [why this can't be type based like spring I'm not sure, I've even contiplated patching seam to allow this] ) Essentially we want to be able to follow the logic in our code. We don't want to look at some rules file to see where we are navigating too. So we wrote our own navigation manager that allows this. This navigation manager also takes away the need for developers to understand exactly how conversations work etc. They just know that what they do inside one 'module' (our own term) they cannot access in another 'module'.


          Don't get me wrong, I think SEAM is a neat technology. But for real world applications it does over simplify some very complex ideas that really should be understood by the programmer not just allowed to 'make it work'.

          • 2. Re: Seam in professional use
            Luke Simon Newbie

            I'm a developer in a small 'company' and we use seam...or we're trying to use Seam. Web do medium CRUD application and it's takes forever to develop without problems. Then sometimes jboss crash, then we used seam early version and it works only on jboss 4.0.5, after that we used seam 2.0.2 and runs on 4.2.2, the old app is impossible to port...we have 2 different jboss server in production now.
            Then the community, the maximum number of users online here is 25, or even 30 but never more. I rarely saw a useful answer.
            Sorry about that, Seam could be a neat technology like Tim says, but for now it's not rapid and agile development like they said.

            • 3. Re: Seam in professional use
              Adrien Orsier Newbie

              Hi, I'm also a developer in a small company.
              We've chosen Seam to build a new website, and though the learning curve has been quite slow during the first months, it's been very rewarding.
              We've now finished our first site, which has been in production using Jboss and Postgres for about a year now, and we're working on rebuilding our old main website using the framework we've developed for our fist application.
              The development is now really fast and efficient.


              The website we have in production running with Seam is not that big, with about 3000 hits a day, but we have no issue at all regarding performance, although we do have a lot background task being processed every day.


              So all in all, we're very satisfied with Seam.


              • 4. Re: Seam in professional use
                Glenn Holmer Newbie

                Tim Evers wrote on Mar 18, 2009 05:40:


                Essentially we have used SEAM as a way to reduce the amount of xml needed by JSF to register all our beans. As well as provide the necessary Scoping mechanism instead of passing around parameters and session variables etc.



                We feel the same way; although we've only been using Seam for a few months, our impression is that it's not nearly as easy to use as it's made out to be. Our strategy is to use as little of it as possible, mainly to fix the issues with JSF.

                • 5. Re: Seam in professional use
                  lucius yu Newbie

                  Hm.. that's disappointing to hear.  I ran a site a couple years ago with average 70 concurrent  users and Seam was handling it without a problem.  It was also using EJB3 session and entity beans, where the backing bean is the session beans.  That was when Seam was BETA.


                  Can the developers of Seam make some comments about all this?


                  On the side note, there is another open source framework for JSF/JPA that's much lighter called MakeFaces.  It takes care of all the annoying things of JSF but doesn't do as much fancy things as Seam, perhaps it will one day I can't say.  I'm a small contributor to it at my previous company.  I've used it extensively  professionally and on my own projects.  I also know several large government and insurance projects are using it.  Let me know what you think of it.


                  MakeFaces url: https://makefaces.dev.java.net/


                  Here's a personal app I built using it.  http://myasset.no-ip.org


                  • 6. Re: Seam in professional use
                    Robert Grampp Newbie

                    Hi, I appreciate this thread very much; I'm very much interested in other opinions about Seam.



                    Luke Simon wrote on Mar 18, 2009 08:35:

                    Sorry about that, Seam could be a neat technology like Tim says, but for now it's not rapid and agile development like they said.


                    I fully agree with that. I've chosen Seam after some weeks of research on Java web frameworks because it's the one that promises less configuration issues regarding persistence/database access - in all other frameworks, you have to code your persistent objects twice (Java class, hibernate xml), that's the gap that Seam bridges (or the seam that mends them together).
                    But I'm really disappointed on 2 things:



                    • it's far from RAD - after starting the project by generating the UI via reverse engineering from DB you're left standing in the rain, no more support for generating the files for new entities. See my full length post



                    how to come to RAD


                    which I plan to post on JBoss tools forum and create JIRA issues



                    • It's a long and steep learning curve. It's hard to understand the concepts behind which - in my opinion - are not explained in depth in the documentation, but which is essential to understand if you do something that goes beyond the simple CRUD examples



                    BTW, what are your resources (forums, books) to learn seam?


                    Regards, Robert

                    • 7. Re: Seam in professional use
                      Robert Morse Apprentice

                      I am building, and have built, some very large enterprise applications for various insurance companies.  All have used Seam.  Having come from Struts and J2EE environments, I really appreciate everything Seam does.  I hear a lot about how steep the Seam learning curve is.  I found this to be true only because I didn't understand some of the underlying technology as well as I thought I did.  The curve also became much less steep once I studied all the examples (I steal from them on a regular basis!), read the reference docs, and read Allen's book a couple of times.  My only gripe is the difficulty in integration testing when using Maven -- but that's probably because I don't understand Maven as well as I should -- although a complete Maven EAR example using integration testing would be great to have!

                      • 8. Re: Seam in professional use
                        Duncan Stockdill Newbie

                        We find Seam offers a good mix of (fairly) rapid development, good performance, great tools, a neat language (yes we like Java and JBoss EL!) and plenty of useful libraries. We've just launched a new web based CRM application using Seam and deployed on Amazon EC2. Feel free to sign up for a free account (www.javelincrm.com) and have a play.  It should demonstrate Seam can be used to create nice UI's that compete with anything from the ruby camp.  There's also some live searches in their that demonstrate the speed that is possible.


                        We are careful with how we use Seam in that we minimize long running conversations and avoid things like page scope and s:links.  None of this has been onerous and probably makes for a more familiar web app experience anyway.  Main dislikes are the weight of Richfaces and the ugly markup it uses which makes styling the components difficult.  We use stateless session beans to encapsulate data access and other core service functionality in one place.  We're using JPA entity beans via the seam persistence context. However the hibernate extensions are too compelling so we've used a lot of these and I'd have no issue recommending Hibernate.


                        Regards, Duncan

                        • 9. Re: Seam in professional use
                          Francisco Jose Peredo Noguez Master

                          Well, if comparison with other frameworks is allowed, I have to say I would like to see Seam grow in AribaWeb direction (100X less code than Rails may be an exaggeration, but it certainly gives you a hint of how easy java development should be) , seam-gen is just too simple to be of real help for real applications (just look at what AribaWeb MetaUI can do), and I really would like to see an API for programmatic navigation (no XML please) like the one offered in AribaWeb (very similar to the ones offered by Wicket or Tapestry, page object based navigation is a must for really complex applications. Seam has already recognized that JSF navigation is limited by creating the .page.xml files, all that we need now is one more step to get rid of all those xml files, and finally have strong typed navigation (and keep xml based navigation for those building simple stuff).


                          Validation is another big issue, since Hibernate entityManager.persist does not behave in in a way consistent with other JPA implementations (it validates stuff to soon), it is hard to write code that deferrers validation until the end of a transaction/conversation, and since there is no way to get the list of objects to be inserted/updated/deleted it is impossible to truly write generic code for validation (I really hope the hibernate team realized this before they try to integrate JSR 303 with Hibernate).


                          Please don't get me wrong, I really do like Seam and Hibernate, but I think it is only half of what it could be. JSF based development for real world web based OLTP applications (not just mostly read only pages) is still not as easy as it should be, and there is really no reason it shouldn't. Seam needs to focus on making everyday tasks really dead easy, with almost no code.

                          • 10. Re: Seam in professional use
                            Arbi Sookazian Master

                            I've been using Seam professionally for over 1.5 years.  I come from a Powerbuilder and J2EE (Struts/EJB2) background.


                            Seam has a very steep learning curve even if you are proficient with Eclipse or similar Java IDE and Java 5 (specifically generics and annotations).  Because you must simultaneously learn JSF, Facelets, EJB3, JPA, Hibernate (or other persistence provider), Richfaces/ICEfaces.  It's a very powerful and intimidating technology stack.


                            If you contact Redhat sales/marketing for a list of customers who use JBoss AS, it's not available.  Seam has been out almost exactly 3 years.  That's very long in the Java space.


                            If you have functional requirements that demand workspaces and conversation scope for multi-tab applications, Seam is a good choice.  Likewise for jBPM integration with JBoss AS.  Not too convinced with the performance but I do know there are some performance tweaks coming with JSF 2.0 as well as Seam 2.1.1.


                            Richfaces is very interesting and powerful and very useful for live validation and other cool Web 2.0 effects (e.g., rich:modalPanel).


                            We have a few internal-facing apps in production but if you compare the number of jobs available on www.dice.com compared to Spring and Struts, for example, Seam is WAY BEHIND in terms of adoption and traction.  It's really bad if you consider the framework has been out for 3 years and you can use it with non-JBOss app servers like Tomcat and Weblogic.


                            If you can get used to annotations all over the place (like you may have gotten used to writing AOP code in xml for Spring apps), then perhaps Seam is your thing.


                            I still have reservations of the whole Java EE productivity disaster when compared to .NET.  Perhaps things will change with EE 6...

                            • 11. Re: Seam in professional use
                              Ingo Jobling Master

                              We are using Seam to develop an animal tracking system.  Our client will be going live in early June.


                              Yes, there is a learning curve, as there is for any other advanced technology.  It is difficult to find developers who know Seam, or, for that matter, JSF or JPA.  There is certainly room for improvement in the the product's documentation and in other learning resources.


                              It is important to take into consideration that Rich Internet applications are a recent phenomenon.  Growing pains are unavoidable, and are the price of being on the leading edge.


                              Jboss and Seam stand among the leaders of the Enterprise Java platform. With JSF 2, Web Beans (JSR299), and Beans Validator (JSR 303), the offerings should be even more compelling in the near future.


                              Onward!

                              • 12. Re: Seam in professional use
                                Arbi Sookazian Master

                                1) big difference b/n animal tracking systems and our four-page CRUD Seam apps vs. amazon.com and ebay.com using Seam stack.  When will that surface?  When will high-transactional, multi-node (vertical and horz clustering) with Seam stack come to be with the big hitter web sites?  Fortune 500 external facing websites like ticketmaster.com.  It's been 3 years, like I said.  .NET and Spring still rule this space.  Will Seam take over market share here?  Unlikely.


                                2) The term AJAX was coined when?  2005.  dojo and DWR were around several years ago.


                                3) With SpringSource's recent acquisition of G2One, JBoss/Seam was some very serious problems.


                                4) This forum is worse than the original jboss.com forums b/c the replier to a thread (non-originator) does not get emailed if there is a reply to their reply (like literally all other forums in existence).  Major oversight and people get left hanging when they need help.  How long will this last?


                                5) Stateful vs. stateless architectures.  State replication in a JEE cluster.  Performance considerations.  2PC/XA distributed transactions.  I'd like to see a real case study on a real client's high-tx site (note the JBoss/Dell fantasy one).


                                6) if you're going to be building simple CRUD apps, you might as well stick with RoR or .NET, not Seam.  Seam is fun to work with and it's interesting, but the learning curve is way too steep.  And how are you going to find/hire a Seam dev with experience nowadays anyway?  It's almost literally impossible.

                                • 13. Re: Seam in professional use
                                  Francisco Jose Peredo Noguez Master

                                  Ron Ramirez wrote on Mar 19, 2009 16:32:


                                  1) big difference b/n animal tracking systems and our four-page CRUD Seam apps vs. amazon.com and ebay.com using Seam stack.  When will that surface?  When will high-transactional, multi-node (vertical and horz clustering) with Seam stack come to be with the big hitter web sites?  Fortune 500 external facing websites like ticketmaster.com.  It's been 3 years, like I said.  .NET and Spring still rule this space.  Will Seam take over market share here?  Unlikely.


                                  Maybe, maybe not


                                  2) The term AJAX was coined when?  2005.  dojo and DWR were around several years ago.

                                  3) With SpringSource's recent acquisition of G2One, JBoss/Seam was some very serious problems.



                                  Well, if a better language is what we are looking for,  in that case I think Seam guys should go after Scala (It even looks nice: Scala Seam) ;-). AFAIK Scala is much better than Groovy. Another thing JBoss guys could do I just buy the company behind ZeroTurnaround, that really would give them an advantage.




                                  4) This forum is worse than the original jboss.com forums b/c the replier to a thread (non-originator) does not get emailed if there is a reply to their reply (like literally all other forums in existence).  Major oversight and people get left hanging when they need help.  How long will this last?



                                  I totally agree.



                                  5) Stateful vs. stateless architectures.  State replication in a JEE cluster.  Performance considerations.  2PC/XA distributed transactions.  I'd like to see a real case study on a real client's high-tx site (note the JBoss/Dell fantasy one).



                                  Me too.



                                  6) if you're going to be building simple CRUD apps, you might as well stick with RoR or .NET, not Seam.  Seam is fun to work with and it's interesting, but the learning curve is way too steep.  And how are you going to find/hire a Seam dev with experience nowadays anyway?  It's almost literally impossible.




                                  Forget about RoR, try AribaWeb  it is 100X better than RoR and Grails (and you can code in Groovy if you like), and I think it is what Seam should integrate with... it is either that, or reshape seam-gen and JSF 2.0 to work like that. I think Seam really needs to re-focus on its roots: Make JSF/JPA development as easy as possible, with zero turnaround, and for that, sadly, I think that EJBs and JSF XML based navigation are just dead weight preventing Seam from flying as high as it could.


                                  I really think that Seam has the potential to be better than Ariba, because Seam is standards based, and that really counts in many companies, and also means that more literature and training resource will be/are available, but it needs to make it really easy to work in the standard way, so far, it seems like the creators of the standard stuff just does not care about ease of use, it is like they believe they are going to be use just because they are standard, they are just recently realizing that if something is hard to use, it is just going to be ignored. Seam really simplified a lot stuff, but only for simple applications, when things start getting complicated, Seam looses a lot of its ability to effectively manage the complexity (Nested conversations for example, are just flawed and there does not seem to be an easy way out of that)





                                  • 14. Re: Seam in professional use
                                    Arbi Sookazian Master

                                    AribaWeb is very cool.  Never heard of it and it's been out since 1999.  that's pretty weird with all the googling and reading I do.



                                    AribaWeb has been a commercially deployed component of Ariba, Inc's network services (e.g. Ariba Supplier Network, Ariba Discovery) and On Demand Spend Management application suite since late 1999. The framework evolved steadily in dozens of releases over that time, and was first released as Open Source in May 2008.

                                    1 2 3 4 Previous Next