Rob Windsor on WCF with REST, JSON and RSS
WCF is not just for SOAP based services and can be used with popular protocols like RSS, REST and JSON. Join Rob Windsor as he introduces WCF 3.5 and its new native support for non-SOAP services.
Tracking change and innovation in the enterprise software development community
Posted by Bryan Clauser on Nov 26, 2007 07:43 AM
This past week Matt Raible gave a presentation (PDF 1, 2) at ApacheCon comparing Java Web Frameworks. This is a follow up to a presentation he gave a few years ago. The list of Java Web Frameworks covered in the 2 PDFs:
The new talk targets a slightly different list of technologies as a result of the changing development landscape:The presentation itself consists of a smackdown between a short list of web frameworks using criteria such as:
Ajax Support: Is it built-in and easy to use?
Bookmark-ability: Can users bookmark pages and return to them easily?
Validation: How easy is it to use and does it support client-side (JavaScript) validation?
Testability: How easy is it to test Controllers out of container?
Community and Support: Can you get questions answered quickly (and respectfully)?
Raible finds stong points as well as weak points in all of the web frameworks. Some statistic are shown pointing to Struts and JSF leading the Job trends, but Raible shows that there are a number of web frameworks making their mark in the job market.
Noting that it is the developers responsibility to choose the right web framework for the project Raible give important factors to take into consideration when choosing a web framework:
What type of Application are you building?
Ease of Development / Is full-stack an option?
Technical Features
As expected Raible's review of web frameworks generated a lively debate. Seam creator Gavin King commented:
What I think is most interesting about this list is simply how different each of these frameworks is from each other. A couple of years ago, any list of the top web frameworks would have featured a bunch of metoo-ish action-style-MVC frameworks, with maybe one or two component-style-MVC frameworks thrown in.
Adobe's James Ward disagreed with Raible's initial assessment of Flex and countered:
Now we could debate these pros and cons all day. But really it depends on what you are building. What I find most interesting is how these frameworks relate to building Rich Internet Applications. That helps narrow it down a bit since very content-centric applications differ greatly from RIAs. But what is a RIA? I’ve taken a stab at defining RIA.
Based on those characteristics I can tell you more definitively how Flex compares as an RIA framework.
Raible states that the futre is bright because of all of the competition there is in the area of web frameworks. Considering half the web frameworks found in this presentation were not even around when he did in original presentation he is correct.
Introducing application infrastructure virtualization and WebSphere Virtual Enterprise
Hibernate without Database Bottlenecks
WebSphere Virtual Enterprise 3 minute demo
Spring App Platform, Java Concurrency/Multicore, Eclipse Mylyn and more @ QCon SF Nov 19-21
2 (hopefully constructive) comments: - I seriously miss Ext.JS or [insert your new favourite javascript widget library here] plus DWR combo as a valid future approach - that pink stuff is horror :) Otherwise, thanks for your work!
I agree that doing a comparison of SOFEA/SOUI frameworks would be very cool. However, none of the widget library+data interchange library approaches offer an "Application Download" feature - so it may be difficult (at this time) to develop a true SOFEA application (as described in Life above the Service Tier) with them.
The "counted" link above should be to this blog: http://www.jamesward.org/wordpress/2007/11/15/matt-raible-comparing-jvm-web-frameworks/ -James
I’m a bit surprised that Spring Web Flow was not mentioned.
In my experience, SWF has never been advertised as a web framework - but rather as a optional solution for those applications that need page flows. Since it integrates with JSF, Spring MVC and Struts1/2 - it doesn't seem like it should stand on its own as a competitor.
WingS is one of the most complete and powerful MVC for Java. http://wingsframework.org/cms/ It is missed.
WingS is one of the most complete and powerful MVC for Java. I like how you provide no foundation for this statement. ;-) Care to elaborate? In particular, please provide an example of where tried another web framework (Struts 1.x doesn't count) and then switched to WingS. Please include specific use cases on why it's better and why the other framework failed.
I would like to see ItsNat included in your list someday. I know ItsNat is the new kid on the block but someday... :) Good presentation, good job.
I don't know if I would go so far to say "SWF has never been advertised as a web framework". Certainly, by its very definition Spring Web Flow is a Java web application controller framework. However, Matt is correct in summarizing Spring Web Flow 1.0's overall position in the market. Spring Web Flow 1.0 is used today within existing web frameworks Spring MVC, Struts, and JSF for handling navigation and state management concerns, typically in web applications with non-trivial view navigation rules. In this capacity, flows run happily alongside "plain" controllers such as stateless MVC Controllers or Struts Actions, freeing you from HTTP Session state management concerns and nasty if/else logic to figure out where you are so you can determine where to go next. I should add, however, even in this complementary capacity, I do know of organizations that use Spring Web Flow to power the control flow of entire applications, favoring externalized flow definition exclusively. Orbitz Worldwide, for example, uses SWF to power their stateless search/shop site functionality and their linear trip booking processes. They did this because they wanted one consistent way of defining control flow that could scale as their application grew in complexity, and felt the externalized flow definition language offered by Spring Web Flow met that requirement better than anything else they evaluated. Spring Web Flow 2.0, the next major release of the framework, will formally evolve the project's positioning. There is a desire in our community to have a single MVC framework capable of handling both stateless and stateful control flow--the same desire Orbitz had. The Spring Web Flow runtime is being evolved to provide the ideal foundation for that unified MVC framework. In addition, JavaServerFaces is being integrated as another supported view technology via the Spring Faces project. Now, this doesn't mean everyone developing Spring web applications will be going off and defining XML flow definitions in the future. The Spring Web Flow 2.0 engine will run Spring 2.5 @Controllers, externalized XML flow definitions, and Java-based @Flows, initially: all using the same runtime underneath (which means one central runtime to hook in security management, exception handling, persistence context management, monitoring, tooling, and other features) The basic idea is this: provide one unified, next-generation MVC runtime with several natural programming models for defining and engineering control flow - from stateless operations on REST resources to stateful conversations - with support for all major view technologies, including JSF. You can read more about this vision here. Keith SpringSource Principal Lead, Spring Web Flow http://www.springframework.org
Note also that there are major enhancements in Spring MVC (a very popular web framework) in the recently released Spring Framework 2.5. The most important enhancement is a new annotation-based controller programming model, which can greatly reduce the amount of configuration required, and minimizes the need to depend on concrete inheritance. The classpath scanning feature of Spring 2.5 means that controller classes annotated with @Controller can be automatically detected by Spring, meaning that no XML or other external configuration is required to specify request mappings or identify controllers. This builds on the new annotation-based configuration options that Spring 2.5 offers overall. As Keith pointed out, the Spring Web Flow and MVC models are converging. Ultimately everything will run on a Web Flow-based runtime under the covers, but the Spring MVC @Controller model will be fully supported, providing a smooth upgrade path.
Actually, Grails uses SWF internally to provide conversations. It also gives a nice convention-based approach to using SWF.
WCF is not just for SOAP based services and can be used with popular protocols like RSS, REST and JSON. Join Rob Windsor as he introduces WCF 3.5 and its new native support for non-SOAP services.
Christophe Coenraets discusses Flex 3, Flex Builder, AIR, BlazeDS, Adobe and open source, integrating Flex with existing applications, and integrating RIAs with search engines and browsers.
Danijel Arsenovski attempts to dispel some of the myths around refactoring and how it applies to .NET developers.
In this presentation, recorded at QCon San Francisco, CORBA guru Steve Vinoski explains REST from the view of someone who comes to SOA from a traditional, RPC-oriented background.
Feature teams are key to scaling agility for large teams. In an excerpt from "Scaling Lean and Agile Development," Larman & Vodde show how feature teams resolve traditional problems & raise new issues
Billy Newport talks about virtualization, eXtreme Transaction Processing (XTP) and WebSphere Virtual Enterprise. He discusses hardware, hypervisor, JVM, application and data virtualization.
While virtualization provides many benefits, security can not be a forgotten concept in its application.
This session is specifically aimed at traditionally trained project managers who are new to Agile, and who would like to be able to relate the PMI's best practices to their Agile equivalents.
11 comments
Reply