This section of the website is for our designers and programmers to share their views on website design, software development or anything else they find interesting, informative or amusing !
Spring vs Seam: A Developers Perspective - by A. Mahmood, Senior Developer
14th October 2008

Java Enterprise Edition when it was initially launched offered a new era for Enterprise Development. Many developers flocked to it, only to find a fine concept but a very seriously flawed implementation. Developing EJB2 applications became the stuff of nightmares with it's complex XML based deployment descriptors.

As a result many developers dropped the EJB model for enterprise development, and focused instead on using a combination of Tomcat, Hibernate and Spring as their technological foundation.

Spring was a very fine framework, that was based on the familiar Model-View-Controller architecture. With it's declarative dependency injection model(or IoC if you prefer), with integrated support for Job Scheduling, Email Support, Hibernate and configurable view rendering it was able to deliver a complete technology stack for enterprise developers.

Work however continued on EJB3 with the folks developing the new specification acutely aware of the shortcomings of the previous specification. Helped by the addition of annotations support into Java 1.5, the new specification could do away with the need for XML descriptors (almost). This made EJB3 a lot less painful, but still did not provide a compelling technology stack for enterprise developers that the Spring based solutions provided.

Enter the Seam project (from the folks that brought us the excellent Hibernate). This new project aims to bind together EJB3/JSF/JPA in a new technology stack. You don't have to use Seam with EJB, but since it integrates with JBoss so well there is no compelling reason not to (unless you are seriously short on resources and don't need the enterprise features that JBoss provdes).

Seam also makes use of dependency injection, and provides some of the features of AOP (aspect oriented programming) that Spring provides. But where it excels is in being able to really make JSF (java server faces) a practicle development option. If JSF is supplemented with Richfaces then one gets an excellent Ajax development envrionment as well.

With Seam the developers have really hit the sweet spot on a number of development issues. The JSF lifecycle model is very rich compared to what Spring has to offer, furthermore with Seam's integration of EL (expression language), annotation based specification (JPA, as well as Seam specific), unit testing via TestNG, the stack is really quite compelling. The only things it really lacks are greater support for AOP.

If you are developer starting a new project, you should seriously consider giving Seam a go. I know I shall !!

 
Is Microsoft Silverlight a Flash Killer? by A. Mahmood, Senior Developer
16th April 2008

Having worked with Flash developing Rich Internet Applications for a number of years, I have been impressed with Flash technology but exasperated with the toolset. Most of my projects comprise dosens of Flash movies and hundreds of classes that deliver complex E-Learning experiences. So on more than one ocassion I wished to have something like Visual Studio or Eclipse to develop with rather than the meagre project and file management capabilities offered by the Flash IDE.

I came in touch with Silverlight 1.1 some months ago, but quite frankly I wasn't going to go from ActionScript 2 to the nightmare that is JavaScript programming, so I thought I would wait until somebody came up with the obvious next step which was to use managed C# and .NET 3.5 as the core programming language for Silverlight. I did not have to wait long, Silverlight 2 Beta 1 arrived a couple of weeks ago and I downloaded it and began to write some simple Silverlight applications.

My first impressions are that Adobe has a serious problem on their hands, in Silverlight Microsoft have introduced a fantastic piece of technology. The GUI design tool (Expression Blend 2.5) has a long way to go before it matches the Flash IDE for layout and animation, but that is a simple enough fix and no doubt over the next couple of releases this product is going to improve in leaps and bounds. As a developer having a strongly typed language like C# is a boon, I can now write high quality code libraries. Furthermore, I can write libraries that can be loaded on demand and then present user interface elements from those libraries. I can easily interact with web services, and have all the API's and tools to create high quality Rich Internet Applications that can be hosted on Linux/Apache or Windows.

Microsoft have already released versions of Silverlight for Macintosh and are promising a version for Linux. An open source version called Moonlight is also under development. Penetration of the Silverlight plugin is an issue at present, but I am sure with over 90% of the desktops in the world running Windows that will not be an issue for too long.

This leaves two people with severe problems, Adobe for the Flash product and Sun for Java applets. In this dilemma is also an opportunity for these two companies to co-operate. If Adobe were to add Java as a programming language for Flash, create native controls as the folks at Eclipse have done with SWT, delivered it with a minimal Java Runtime that would run reasonably fast. then I would seriously consider going back to Flash. My server code is already Java anyway, I have no intention of moving everything to Windows, but Silverlight for the front end is simply too great a technology not to use.

 
 
Copyright © 2008 Black Cat Design. All rights reserved.
The services displayed on this site are a general description and do not form a contract.