Welcome to the home of Spring.NET.

Led and sustained by SpringSource, a division of VMware, Spring.NET is an open source application framework that makes building  enterprise .NET applications easier.   

Providing components based on proven design patterns that can be integrated into all tiers of your application architecture, Spring helps increase development productivity and improve application quality and performance.  

Please read the overview for additional information.

Commercial support and training are available through SpringSource.

ANNOUNCEMENT: SpringSource is pleased to offer public training for Spring.NET. Current training dates are:

During this four-day bootcamp you learn how to use the Spring.NET Framework to create well-designed, testable business applications in an agile manner. See the syllabus for detailed course information

Refer to the SpringSource University Training Page for more information on SpringSource training offerings or to contact us. 

ANNOUNCEMENT:  

Dear Spring Community,

We are pleased to announce that the first milestone release of the Spring GemFire 1.0 project is now available for both Java and .NET!

Download it now: Spring GemFire for Java | Spring GemFire for .NET

The Spring AMQP project aims to make it easier to build Spring-powered highly scalable applications using GemFire as distributed data management platform.

To learn more about the project, visit the Spring GemFire Homepage. There you will find links to the Reference Manual, Forum, Issue Tracker, and more.  

The features in 1.0.0 M1 for .NET include
  • Spring FactoryObjects to enable dependency injection style configuration of GemFire infrastructure classes such as Cache, Region, Interests, etc.
  • Exception translation to Spring's portable Data Access exception hierarchy for GemFire exceptions. 
  • Console based 'shell' sample application to allow for ad-hoc interaction with the data grid.
Note the Java version has additional features.  The feature set for Spring GemFire for .NET M2 is on the issue tracker.

Looking forward to your feedback on the forum or in the issue tracker.

[2010-8-3]
ANNOUNCEMENT:  

Dear Spring Community,

We are pleased to announce that the first milestone release of the Spring AMQP 1.0 project is now available for both Java and .NET!

Download it now: Spring AMQP for Java | Spring AMQP for .NET

The Spring AMQP project aims to simplify the development of AMQP based applications with a POCO centric programming model.  It also aims to provide portability across AMQP implementations such as RabbitMQ and Apache Qpid.  

If you are familiar with Spring's existing messaging support for ActiveMQ, MSMQ, or TIBCO EMS Spring AMQP should be easy to pick up.

To learn more about the project, visit the Spring AMQP Homepage. There you will find links to the Reference Manual, Forum, Issue Tracker, and more.  

The features in 1.0.0 M1 include
  • An AMQP implementation agnostic Message API for use across multiple implementations (RabbitMQ and Qpid)
  • A POCO based programming model promoted through the use of MessageConverters and POCO based message handlers. 
  • AmqpTemplate - with specific vendor subclasses - to simplify synchronous publishing and consuming of messages.
  • A MessageListenerContainer for asynchronous multilthreaded message consumption.
  • A ConnectionFactory abstraction manages a single connection to the broker and an experimental implementation that supports a cache of Channels
  • JSON MessageConverter
  • Administration API that mirrors functionality in rabbitmqctl.
  • ErlangTemplate - to facilitate easy calling of Erlang functions from .NET
  • Two example applications
  • Reference and API documentation
Apache Qpid support is minimal in M1 and was used to vet the Messaging abstractions.

Looking forward to your feedback on the forum or in the issue tracker.

[2010-7-16]
UPCOMING NEW RELEASES:  With SpringSource's aquisition of Gemstone and Rabbit Technologies we have started open source projects to provide integration of data grid and AMQP messaging functionality with Spring.NET.

If you would like to participate in the development of these open-source projects, please reach out.  Note, the range of products to integrate is not limited to Gemstone/RabbitMQ. 

The Spring AMQP project aims to provide portability across AMQP specifications and vendor implementations such as RabbitMQ and QPid.

If you are familiar with Spring.NET's support for ActiveMQ, MSMQ, or TIBCO EMS you should feel right at home.  

Features include
  • A POCO based programming model promoted through the use of MessageConverters and POCO based message handlers.
  • AmqpTemplate - with specific vendor subclasses - to simplify synchronous publishing and consuming of messages.
  • A MessageListenerContainer for asynchronous multilthreaded message consumption.
  • Low level resource management of connections/channels and integration with Spring's declarative tranasaction management are also provided.
  • Management API for the RabbitMQ broker to programmatically create, update, delete, and query broker configuration and information such as exchanges, queues, users, vhosts, data rates, etc.

The planned release date of Spring AMQP Milestone 1 is July 9th.  

You can view the code in the repostory here.  We will be moving to GIT shortly.

More news to come on Spring.NET integration with Gemstone products such as Gemfire and SQLFabric.


[2010-6-24]
USER GROUP:

Mathias Kluba, Florent Dugué & David Coppet spoke at the French Spring User Group about Spring.NET.  Slides and information are available here (in French)

 [2010-6-22]
CODE CAMP:  Milan Negovan spoke at the NYC Code Camp on Real-World Inversion of Control and Dependency Injection with WebForms.  Slides available here.

[2010-3-6]
PODCAST:

The Connected Show #24, Peter Laudati interviews Mark Pollack to discuss Spring.NET, Dependency Injection, Aspect-Oriented Programming and more.
[2010-2-10]
INTERVIEW:

InfoQ's Ryan Slobojan interviews Mark Pollack on Spring.NET 1.3 and future directions for the framework.
[2010-2-11]
USER GROUP MEETING:  Milan Negovan spoke at the Long Island .NET Users Group on Inversion of Control and Dependency Injection with Spring.NET.  Code available here.

[2010-1-8]
FEATURED BLOG:  Erich Eichinger has posted several interesting blog articles on AOP, Application Monitoring and code based configuration of DI/AOP with Spring.NET.  

Here is a 'sneak peak' of the code based configuration using the classic MovieFinder example. A variation on this DI configuration style will be part of the Spring.NET 2.0 release.

[Configuration]
public class MovieFinderConfiguration
{
public virtual IMovieFinder MovieFinder()
{
return new MovieFinder();
}

public virtual IMovieLister MovieLister()
{
return new MovieLister( MovieFinder() )
}
}

As close to what you would have written in 'normal' code to configure the two objects.  Note, this code is external to your code, just like XML files are external to your code, therefore non-invasive.

This approach is taken from the Spring JavaConfig project, based on an idea from Rod Johnson.  This approach has matured and is included an a DI configuration option in the Spring Java 3.0 release. (blog, docs)

Please see Erich's blog for more details.


[2010-1-8]
ANNOUNCEMENT:

Dear Spring Community,

We are pleased to announce that Spring .NET 1.3.0 is now available.  

Download | SupportDocumentationCommunity

This release contains the following new major features:
  • Micosoft Test Framework integration - Integration test classes to support MSTest in addition to NUnit.
  • TIBCO EMS integration - Helper classes to increase your productivity developing messaging based applications with TIBCO EMS.
  • NVelocity integration - Helper classes to configure a NVelocity template engine in a Spring based application
  • VS.NET Solution Templates - VS.NET 2008 based solution templates to get you up and running quickly creating Spring based applications.
  • DI support for Enterprise Service Components
Other notable new features:
Please refer to the changelog for additional details.

Looking forward to a quick 1.3.1 release and then Spring.NET 2.0. Please register your feature suggestions in JIRA.

Check out Erich Eichingers's blog for a preview of code based configuration (no XML).

Happy Holidays!

[2009-12-17]
ARTICLE:  Milan Negovan has written an article entitled "Real-World Inversion of Control and Dependency Injection with WebForms"  using Spring.NET.  Check it out!

[2009-11-21]
PROJECT NEWS: The Spring.NET 1.3 GA release is scheduled for December 15th 2009.  Thanks for your patience.

[2009-11-21]
PROJECT INFRASTRUCTURE UPDATED:  Bamboo is now being used as the Spring.NET Continuous Integration Server.  There is integration between Bamboo, JIRA, and  Fisheye allowing you to navigate between the various views of the projects easily.

[2009-11-04]
FEATURED BLOG:   Tom Farnbauer blogged about his recent release of Recoil 1.1.0, a fluent interface extension for Spring.NET

[2009-10-10]
UPCOMING EVENT:   "Inversion of Control (IoC) and Dependency Injection for ASP.NET" by Milan Negovan at the Fairfield/Westchester .NET User Group on 10/1/2009.  Click here for more info.

[2009-9-29]
FEATURED BLOG:   Erich Eichinger blogged about some of the features of the new Spring.NET 1.3 RC.

[2009-08-07]
ANNOUNCEMENT:

Dear Spring Community,

We are pleased to announce that Spring .NET 1.3.0 RC1 is now available.  

Download | SupportDocumentationCommunity

This release contains the following new major features:
  • Micosoft Test Framework integration - Integration test classes to support MSTest in addition to NUnit.
  • TIBCO EMS integration - Helper classes to increase your productivity developing messaging based applications with TIBCO EMS.
  • NVelocity integration - Helper classes to configure a NVelocity template engine in a Spring based application
  • VS.NET Solution Templates - VS.NET 2008 based solution templates to get you up and running quickly creating Spring based applications.
  • DI support for Enterprise Service Components
Other notable new features:
This release includes approximately 100  bug fixes and enhancements since the 1.2.0 release. 

Please refer to the changelog for additional details.


Enjoy!

[2009-8-3]
RELEASE NEWS:

Spring.NET 1.3 RC1 is planned to be released on July 29th followed by a GA release on August 10th.

The release will contain all bug fixes that were scheduled for the 1.2.1 release as well as new features to support TIBCO messaging and integration testing support with Microsoft's testing framework. A few other new features such as NVelocity integration will also be included.

As most of the changs are derivative of existing features no milestone release is planned. Thanks for your patience is waiting for this release.

Please raise or vote for JIRA issues that you want to see included.

[2009-7-21]
CASE STUDY:

CMA Logo

Credit Market Analysis Makes Major Productivity Gains With Spring.NET

“Spring.NET has removed 30% of our development time, by providing the communication infrastructure between the layers of our software – and that 30% can now be focused on new features or speed to market.”

“With Spring.NET the cycle to find and fix a problem has been dramatically shortened. We used to take a week to resolve issues, now we can turn a solution around in a day.” 

“We are using Spring.NET to differentiate our software in the market.”

~Mike Krolnik, CTO, Credit Market Analysis

READ THE COMPLETE CASE STUDY


[2009-6-1]
FEATURED BLOG:

Eric Lemes has written parts two and three of his blog serires covering declarative transaction management, ADO.NET data access, and web service exporters. (In Portuguese).

Check it out Part II and Part III!

[2009-4-8]
FEATURED BLOG:

Eric Lemes has written part one of a multi-part tutorial on dependency injection using Spring.NET in Portuguese.

Check it out here!

[2009-3-16]
ANNOUNCEMENT:

We are pleased to announce Spring Extensions; a new venture by SpringSource to encourage and support quality community contributed extensions to the Spring projects and programming model.

Spring Extensions hosts three .NET projects led by members of the Spring.NET community

Spring db40 for .NET

The purpose of this extension is to allow users of the popular db4o object database on the .NET platform to make use of Spring's powerful data access features, just like they can already do using ADO and NHibernate.

Lead: Dirk Lowers

Spring Integration for .NET

Spring Integration for .NET provides an extension of the Spring programming model to support the well-known Enterprise Integration Patterns while building on the Spring Framework's existing support for enterprise integration. It enables simple messaging within Spring-based applications and integrates with external systems via simple adapters. Those adapters provide a higher-level of abstraction over Spring's support for remoting, messaging, and scheduling. Spring Integration's primary goal is to provide a simple model for building enterprise integration solutions while maintaining the separation of concerns that is essential for producing maintainable, testable code.

The Spring Integration for .NET project will use the design and code base of the Spring Integration for Java project as a basis, adapting the code as need to support .NET idioms and move in the direction to take advantage of .NET only features such as Lambda expressions and extension methods.

Lead: Andreas Döhring


Spring Threading

This project is based on a .NET port of the JSR-166 Java library for concurrency. We're making every attempt the bring the library over as-is while making it easy to use for both .NET developers and Java developers coming to .NET.

Lead: Griffin Caprio

Thanks to each leads for their hard work.  Follow the links for additional project information.

[2009-1-20]
PODCAST:

A collection of podcasts hosted by SkillsMatter from Russ Miles, senior consultant for SpringSource in the UK, on Spring.NET can be found here
[2008-12-5]
ARTICLE:

SearchWinDevelopment.com has an article discussing the growing popularity of open-source Java frameworks finding there way into the .NET ecosystem, in particular Spring for .NET.

Read the article by Yuval Shavit here.

[2008-12-5]