infrastructural support for developing enterprise .NET applications.
It allows you to remove incidental complexity when
base class libraries makes best practices, such as test driven
development, easy practices. Spring.NET is created,
supported and sustained by SpringSource.
The design of Spring.NET
is based on
the Java version of the Spring Framework, which has shown real-world
benefits and is used in thousands of enterprise applications world
wide. Spring .NET is not a quick port from the Java version,
rather a 'spiritual port' based on following proven
and design patterns in that are not tied to a particular
The breath of
functionality in Spring .NET spans application
tiers which allows you to treat it as a ‘one stop
shop’ but that is not
.NET is not an
all-or-nothing solution. You
can use the functionality in its modules independently.
Spring.NET consists of
the following modules. Click on the module name for more
– Use this module to configure your application using
– Use this module to perform Aspect-Oriented
Programming (AOP). AOP
common functionality that can then be declaratively applied across your
in a targeted manner. An aspect
provides predefined easy to use aspects for transactions, logging,
caching, method retry, and exception handling.
– Use this module to achieve greater efficiency
and consistency in writing data access functionality in ADO.NET and to
declarative transaction management.
– Use this module to integrate
NHibernate with Spring’s declarative transaction management
functionality allowing easy mixing of ADO.NET and NHibernate
operations within the same transaction. NHibernate
1.0 users will benefit from ease
of use APIs to perform data access operations.
– Use this module to raise the level of
abstraction when writing ASP.NET web applications allowing you to
common pain-points in ASP.NET such as data binding, validation, and
– Use this module to easily expose a
plain .NET object (PONO), that is one that doesn't have any attributes
special base classes, as a web service, configured via dependency
'decorated' by applying AOP, and then exposed to client side java
– Use this module to adapt plain .NET
objects so they can be used with a specific distributed communication
technology, such as .NET Remoting, Enterprise Services, ASMX Web
Services, and WCF services. These
services can be configured via
dependency injection and ‘decorated’ by applying
Spring.Testing.NUnit - Use this module
to perform integration testing with NUnit.
Spring.Testing.Microsoft - Use this module
to perform integration testing with Microsoft test framework (MSTEST).
- Use this module to increase your productivity creating Microsoft
Message Queue (MSMQ) applications that adhere to architectural best
- Use this module to increase your productivity creating Apache
ActiveMQ applications that adhere to architectural best practices.
- Use this module to increase your productivity creating TIBCO EMS
applications that adhere to architectural best practices.
- Provides integration with the Quartz.NET job scheduler providing
declarative configuration of Quartz jobs, schedulers, and triggers as
well as several convenience classes to increase productivity when
creating job scheduling applications.
- Helper classes to configure a NVelocity template engine in a
Spring based application.
Additional Functionality in Spring.Core
The Spring.Core module also includes the
features the you may find useful in their own right.
Language - provides efficient querying and manipulation of an
object graphs at runtime.
Framework - a robust UI agnostic framework for creating
validation rules for business objects either programmatically or
- Data binding Framework - a UI agnostic
framework for performing data binding.
- Dynamic Reflection - provides a high
performance reflection API.
- provides additional concurrency abstractions such as Latch, Semaphore
and Thread Local Storage.
abstraction - provides a common interface to treat the
a file and from a URL in a polymorphic and protocol-independent