Today DZone releases the Seam UI Refcard, written by Jacob Orshalick, author of Seam Framework: Experience the Evolution of Java EE. I talked to Jacob about Seam, what problems the technology solves, and where you can find out more about the framework.
Click here to download your free Seam UI Refcard now!
James Sugrue: Could you please introduce yourself?
Jacob Orshalick: My name is Jacob Orshalick and I am a consultant for Focus IT Solutions. I have been developing software for over 7 years and have worked in a variety of industries including retail, financial, media, and telecommunications.
Sugrue: What is your association with Seam?
Orshalick:I am a committer to the Seam framework project and co-author of the recently released "Seam Framework: Experience the Evolution of Java EE".
Sugrue: What exactly is Seam?
Orshalick: In a nutshell, Seam is an integration framework that simplifies web development by integrating Java EE technologies into a unified full-stack solution.
Sugrue: What problems does the technology solve?
Orshalick: The goal of any developer when developing an application is solving business problems. This is what keeps us employed. Often technology hurdles, including the stateless web and the complexity of integration,
impede our progress. Seam tackles these complexities and hides them from the developer through a unified programming model placing the focus back on solving business problems. This allows us to respond quickly to business needs.
As an integration framework, Seam makes it simple to develop web applications with transactional services, security, data persistence, AJAX, business rules and process management, messaging, and so much more. Just check out the reference documentation to see how many technologies are made available to you when using Seam. This gives us a wide variety of tools in our toolbox, so to speak.
Now we have a variety of technology options made available to us for solving a problem, and the ability to respond quickly with a solution by breaking down technology barriers. Seam helps us to take a huge step
Sugrue: What are the competitors to Seam, and how do they compare?
Orshalick: There are a number of competitors in the web framework arena but with a variety of programming models many centered around a stateless architecture. The closest competitor with Seam would be Spring Web Flow, given its similar stateful approach to web development through management of a set of contexts.
While Spring Web Flow is a compelling option for those familiar with Spring, it can be a bit restrictive with its state management by forcing each stateful multi-page interaction with a user into a page flow. Seam
allows you to create contexts spanning pages with unrestrained navigation.
In addition, although there have been great strides in Spring to reduce XML through annotations, Spring Web Flow can feel a bit XML heavy. Seam minimizes the amount of XML through conventions and annotation support.
In addition, if using existing Spring components is of concern, Seam provides direct integration with Spring making it simple to reuse existing Spring components.
Sugrue: What is your main tip for using Seam?
Orshalick: The programming model of Seam is centered around contexts and state. To get your start, I would highly recommend learning the conversation model as it really defines the underpinnings of so much of what Seam provides. In addition, this gives you a head start on what's to come in the Java EE space as the conversation model of Seam is being standardized in JSR-299. Keep an eye on this specification as it is poised to revolutionize Java EE web development.
Sugrue: Which IDE do you recommend for developing Seam applications?
Orshalick: I recommend JBoss Tools as it provides built-in support for Seam and plugs directly into Eclipse which most Java developers are very familiar with already.
Sugrue: How did you find writing the Refcard?
Orshalick: I would certainly recommend it to others. It's a fun way to create something that contributes back to the community and being an avid Seam user, I find the Refcard useful for my own development on a daily basis.
Sugrue: Where you recommend going to find out more about Seam?
Some great sites for finding out more are:
- Seam Framework Project: http://seamframework.org
- Seam Reference Documentation: http://seamframework.org/Documentation
- JBoss Tools Project: http://www.jboss.org/tools
- Web Beans (JSR-299): http://www.seamframework.org/WebBeans
You can also check out my book which was just released and covers the latest and greatest features of Seam as well as an introduction to Web Beans (JSR-299):
Seam Framework: Experience the Evolution of Java EE: http://books.dzone.com/books/seam-framework