Wednesday, February 23, 2005 - Posts

Spring.NET 0.6: second release candidate

Last week a colleague [thanks Fred!] pointed me to the announcement that the second release candidate of Spring.NET 0.6 has been made available for download.

Spring.NET, a .NET application framework, is a port of the Java based Spring Framework. Spring for Java contains a lot of functionality and features, many more than Spring.NET currently offers. The initial release of Spring.NET contains a full featured Inversion of Control container. Subsequent releases will contain support for Aspect Oriented Programming (AOP), ASP.NET, Remoting, and data access. The Spring.Core library is the most fundamental part of the framework, and provides the Inversion of Control features allowing you to manage object container functionality. Most of the libraries in the Spring.NET distribution depend upon and extend the functionality provided by this core library. The basic concept here is provided by the IObjectFactory interface (and attendant implementations), that provides a simple yet elegant factory pattern removing the need for programmatic singletons and numerous service locator stubs, allowing you to decouple the configuration and specification of dependencies from your actual program logic. An extension to the IObjectFactory, the IApplicationContext is also located here and and adds more enterprise-centric features such as text localization using resource files, event-propagation, and resource-loading. More in-depth documentation to Spring.NET's features is available here.

The second release candidate of Spring.NET 0.6 is both a feature enhancement and bug fix release. Among the new features in this release are:

  • Custom configuration section handler to create hierarchical application contexts
  • Extensible protocol handler to resolve URIs to an InputStream for IResources. Emdedded resource, .NET configuration file, and http(s) protocols supported.
  • Threading utilities such as Semaphore
  • Object Pooling API
  • Object Navigation API
  • Loosely coupled event model
  • Added ContextRegistry to simplify global access to application context
  • Support for configuration of 'read-only' collection properties.

Important changes and bugfixes include:

  • Removed old custom configuration handler ApplicationContextHandler. Use new ContextHandler instead.
  • Schema changes: object attribute 'class' changed to 'type' and <map> element changed to <dictionary>
  • Packaging changes: Spring.Context.dll and Spring.Collections.dll were removed and their classes placed in Spring.Core.dll
  • Updated user documentation and added new example programs
  • Improved localization support to return resource objects and apply resources to object
  • Replaced IDisposableObject with standard .NET IDisposable
  • Fixed registration of abstract IObjectPostProcessors and IObjectFactoryPostProcessor
  • Fixed DTD validation of custom configuration section
  • Fixed parsing of CDATA sections

See the changelog for details.

Check also out the other on-line references for Spring.NET:

with 3 Comments