The Spring Framework programming model for Java gained a good amount of traction in recent years, adding some popular new tricks to the Java developer's bag. Now, Spring.NET is in release, bringing with it an aspect-oriented programming (AOP) library for tackling common jobs like transaction management, logging, caching and exception handling. AOP has been described as a method that allows programmers to modularize the way they deal with components that cut across system elements.
Spring.NET 1.1, released last week, is open-source software developed by SpringSource, formerly known as Interface21. The company's mainline offering is a Spring product for Java developers. Use of Spring has increased as Java developers have looked for 'lighter-weight' alternatives to the Enterprise Java Beans components architecture, especially for basic Web applications.
Working now with the ASP.NET Web application platform, Spring.NET supports Dependency Injection for pages, controls, modules and providers, while easing the creation of bi-directional data bindings. With Spring, dependencies are introduced by the framework, thus simplifying the structure of individual components.
The SpringSource offering seems poised for consideration by enterprise development teams, despite Microsoft's efforts to provide some similar framework elements via software and guidance kits.
It might as well be Spring
Modular design and a component-based architecture are keys to this framework, said Mark Pollack, principal consultant and lead of the Spring.NET project. He noted that the new Aspect Library provides 'out-of-box aspects' for exception handling.
"The new features are mostly around AOP," Pollack said. "AOP is a powerful technology, but it can be a little difficult for people to apply. We have tried to cover important scenarios up front, making it a matter of configuration, versus development for them to take advantage of [AOP]."
He noted that declarative transaction management in Spring.NET 1.1 delivers a consistent deployment model across different transaction APIs.
By straddling Java and .NET techniques, Spring.NET 1.1 effectively provides the best of both worlds, said Ricardo Pardini, lead developer at Mercado Eletronico S/A, a Latin American provider of B2B e-commerce solutions.
Mercado and his team are using SpringSource Spring.NET 1.1 as they renovate an e-commerce portal, and undergo a large migration from a COM middleware architecture.
"It allows us to use the powerful Microsoft distributed transactions declaratively, and to leverage .NET's Web Services without redundant code. This is not to mention the AOP feature," Pardini told SearchWinDevelopment.com in an e-mail.
By developers, for developers
Open source application frameworks such as this provide unique capabilities, said Michael Goulde, senior analyst, Forrester. In his words, they are "creations by developers, for developers."
Spring.NET gives developers working within the Microsoft .NET Framework environment the same productivity boost and rapid 'time to functionality' that Java developers have had in the past with the original Spring framework, he said.
"The fact that these projects are open source," according to Goulde, "makes them almost instantaneously responsive to developers evolving needs and requirements."
Certainly Microsoft, which has a different role as technology provider than its counterparts in the Java world, is always on the look-out for additions it can make to the .NET tool kit. Several of its Community Technology Previews targets include developer components somewhat along the lines of frameworks available from SpringSource and others. Parts of Microsoft's Enterprise Library, from the Patterns & Practices Group, have some similar objectives. The ASP.NET Model View Controller (MVC) Framework recently discussed by Microsoft ASP.NET guru Scott Guthrie and others also takes a somewhat similar tact.
Coming months will show whether upstart SpringSource has as good or better a gauge than the mighty Microsoft has on what developers want. For his part, end-user Ricardo Pardini of Mercado Eletronico, said Spring.NET is "much easier on new developers than Microsoft's Enterprise Library." It has a way of attracting adoption through clearly showing benefits, he said.
For his part, Spring.NET Project Lead Pollack is confident. "In terms of a brain trust I think we can be continually innovative in the space," he said.