Skip to content
Spring Framework for .NET
C# Rich Text Format HTML Smalltalk XSLT ASP Other
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.nuget convert to new csproj Sep 17, 2018
build-support create netstandard2.0 targets Sep 30, 2018
dev-support convert packages.config files to project.json Nov 11, 2016
doc SPRNET-1444 - revert commits on this issue to return DefaultIsolation… Mar 21, 2015
examples #164 add working metadata caching Oct 21, 2018
lib convert to FakeItEasy Sep 22, 2018
nuget-packages SPRNET-1508 convenience batch file to push all nupkgs to nuget May 9, 2012
src enable netstandard build for Spring.Messaging.Nms Sep 7, 2019
templates/vsnet-2008 convert packages.config files to project.json Nov 11, 2016
test enable netstandard build for Spring.Messaging.Nms Sep 7, 2019
.gitignore change benchmarks to run both full framework and core Oct 14, 2018
BreakingChanges.txt remove obsolete library support Oct 6, 2018
Build-ci.cmd update ci-invoked build entry point to run database-dependent integra… Jan 17, 2015
Build.cmd fix project file nowarn flags in release mode, fix build cmd platform… Feb 23, 2014
CopyLibToBinHelpers.include -rework build scripts to pull all dependencies from current.bin.dir a… Apr 18, 2015
Local.testsettings fixing broken build; reworked build script so that VS2008 (.NET 2.0) … May 30, 2011 Hint for build in VS Jan 21, 2019
Spring.Net.sln add basic benchmark project Oct 14, 2018
Spring.Net.sln.DotSettings #164 add working metadata caching Oct 21, 2018
Spring.Net.sln.GhostDoc.xml remove 2010 from sln and csproj names Oct 1, 2018 enable netstandard build for Spring.Messaging.Nms Sep 7, 2019
Spring.include create netstandard2.0 targets Sep 30, 2018
appveyor.yml convert to new csproj Sep 17, 2018
build-release-all.cmd update metadata and build scripts to reflect 2.0.1-GA Apr 11, 2015
changelog.txt fixes #155 replace Quartz 2 integration with Quartz 3 integration Oct 7, 2018
common-project.include convert to new csproj Sep 17, 2018
copy-files-to-package-dir.cmd update NANT config settings to support builds on both x86 and x64 pro… Feb 23, 2014
license.txt Initial import! May 30, 2008
package-nuget-only.cmd add convenience cmd script to create nuget packages from existing bui… Nov 27, 2012
powershell-invoker.cmd SPRNET-1414 Mar 26, 2011
s3-nightly-delete-old-files.ps1 SPRNET-1414 Mar 25, 2011
s3-nightly-upload.ps1 SPRNET-1414 Mar 25, 2011



The 3.0.0 release of Spring.NET contains

  • A full featured Inversion of Control container
  • An Aspect Oriented Programming framework
  • Expression Language for lightweight scripting
  • UI-agnostic validation framework
  • ASP.NET Framework
    • Dependency Injection for pages and user controls, bi-directional data binding, and more.
  • ASP.NET MVC and ASP.NET WebAPI Framework
    • Dependency Injection for MVC (includin WebAPI).
  • Declarative transaction management abstraction
    • Declarative transaction management via use of common XML configuration and attributes across different transaction APIs
  • ADO.NET framework
    • Simplifies use of ADO.NET. DAO support classes and integration with Spring's declarative transaction management functionality
  • Portable Service Abstractions
    • Export plain .NET objects via .NET Remoting, Web Service or .NET Serviced Component and create client side proxies based on endpoint URL and service interface.
  • NHibernate Integation
    • NHibernate 5 integration to simplify use of NHibernate and participate in Spring's declarative transaction management functionality.
  • ASP.NET AJAX Integration
    • Exporter to expose plain object on which Dependency Injection and AOP have been applied to JavaScript.
  • NUnit and MSTest integration
    • Provides Dependency Injection of test cases and Spring container loading and caching. . Data access and transaction management features aid with integration testing.
  • WCF integration
    • Provides Dependency Injection and applicatin of AOP advice to WCF services
  • Quartz integration
    • Configure Quartz jobs using dependency injection and Spring's transactional support to persist job details
  • MSMQ integration
    • Simplifies the use MSMQ by providing helper classes for message sending and receiving. Integrates with Spring's transaction management features.
  • NMS integration
    • Simplifies the use of NMS by providing helper classes for message sending and receiving.
  • TIBCO EMS integration
    • Simplifies the use of TIBCO EMS by providing helper classes for message sending and receiving.
  • NVelocity integration
    • Simplifies the use of configuring NVelocity

Spring.NET is a port of the Java based Spring Framework. In turn, the Java/J2EE Spring Framework is based on code published in "Expert One-on-One J2EE Design and Development" by Rod Johnson (Wrox, 2002).


Spring.NET 3.0.0 supports .NET 4.5.2 and .NET Standard 2.0 and later.



Release contents:

  • "src" contains the C# source files for the framework
  • "test" contains the C# source files for Spring.NET's test suite
  • "bin" contains various Spring.NET distribution dll files
  • "lib/Net" contains shared third-party libraries needed for building the framework
  • "lib/NHibernate3" contains NHibernate 3.3 dlls
  • "doc" contains reference documentation, MSDN-style API help, and the Spring.NET xsd.
  • "examples" contains sample applications.
  • "build-support" contains additonal applications need to build using NAnt as some convenience VS.NET solution files.
  • "dev-support" contains 'developer support' tools and code, such as solution templates for VS.NET

debug build is done using /DEBUG:full and release build using /DEBUG:pdbonly flags.

The VS.NET solution for the framework and examples are provided.

Latest info is available at the public website:

The Spring Framework is released under the terms of the Apache Software License (see license.txt).


The "bin" directory contains the following distinct dll files for use in applications. Dependencies are those other than on the .NET BCL.

  • Spring.Core (~765 KB)

    • Contents: Inversion of control container. Collection classes.
    • Dependencies: Common.Logging
  • Spring.Aop (~150 KB)

    • Contents: Abstract Oriented Programming Framework.
    • Dependencies: Spring.Core, Common.Logging
  • Spring.Data (~320 KB)

    • Contents: Transaction and ADO.NET Framework.
    • Dependencies: Spring.Core, Spring.Aop
  • Spring.Data.NHibernate5 (~90 KB)

    • Contents: NHibernate 5.x integration
    • Dependencies: Spring.Core, Spring.Aop, Spring.Data, NHibernate
  • Spring.Services (~70 KB)

    • Contents: Web Services, Remoting, and Enterprise Component based services.
    • Dependencies: Spring.Core, Spring.Aop
  • Spring.Web (~165 KB)

    • Contents: ASP.NET based Web Application Framework.
    • Dependencies: Spring.Core, Spring.Aop
  • Spring.Web.Extensions (~8 KB)

    • Contents: ASP.NET AJAX Integartion
    • Dependencies: Spring.Core, Spring.Aop, System.Web.Extensions
  • Spring.Web.Mvc5 (~8 KB)

    • Contents: ASP.NET MVC5 and WebAPI Integartion
    • Dependencies: Spring.Core, Spring.Web
  • Spring.Testing.NUnit (~24 KB)

    • Contents: NUnit Integration
    • Dependencies: Spring.Core, Spring.Data, NUnit
  • Spring.Testing.Microsoft (~24 KB)

    • Contents: MSTest Integration
    • Dependencies: Spring.Core, Spring.Data, MSTest
  • Spring.Messaging (~65 KB)

    • Contents: MSMQ Integration
    • Dependencies: Spring.Core, Spring.Data, System.Messaging
  • Spring.Messaging.Nms (~100 KB)

    • Contents: NMS Integration
    • Dependencies: Spring.Core, Spring.Data, Apache NMS
  • Spring.Scheduling.Quartz3 (~44 KB)

    • Contents: Quartz32.x Integration
    • Dependencies: Spring.Core, Spring.Data, Quartz
  • Spring.Template.Velocity (~44 KB)

    • Contents: NVelocity Integration
    • Dependencies: Spring.Core, NVelocity


Documentation can be found in the "docs" directory:

  • The Spring reference documentation

Documented sample applications can be found in "examples":

  • IoCQuickStart.MovieFinder - A simple example demonstrating basic IoC container behavior.
  • IoCQuickStart.AppContext - Show use of various IApplicationContext features.
  • IoCQuickStart.EventRegistry - Show use of loosely coupled eventing features.
  • AopQuickStart - Show use of AOP features.
  • CachingQuickStart - Show use of Caching abstraction.
  • SpringAir - Show use of Spring.Web features.
  • Calculator - Show use of Spring.Services features.
  • WebQuickStart - Show step by step usage of Spring.Web features.
  • Web.Extensions.Example - Show ASP.NET AJAX integartion.
  • DataQuickStart - Show use of Spring.Data data access features.
  • TxQuickStart - Show use of Spring's transaction features.
  • Data.NHibernate.Northwind - Show use of Spring's NHibernate features.
  • WCFQuickStart - Show use of DI and AOP with WCF
  • NMSQuickStart - Sample application using NMS
  • MSMQ QuickStart - Sample application using MSMQ
  • Quartz Example - Scheduling using Quartz
  • Mvc5QuickStart - Show the configuration of the ASP.NET MVC 5 support

7. How to build


Visual Studio 2017 is required to open and build the solution. The free community version of Visual Studio should suffice.

For the first time you need to execute Build.cmd which will generate GenCommonAssemblyInfo.cs file required for builds.


Build scripts are delivered with the download package.

To build the source and run the unit tests type

build test

If you want to run the build to create strongly signed assemblies you can generate a key file by executing the following command (assuming that sn.exe is properly on your search path):

sn -k Spring.Net.snk

You need to place the Spring.NET.snk file into the root folder of the source tree. All builds are strongly named using this key file when executing the following nant command:


InnovaSys Document X! is used to generate the SDK documentation.

8. Support

The user forums at are available for you to submit questions, support requests, and interact with other Spring.NET users.

Bug and issue tracking can be found at

A Fisheye repository browser is located at

To get the sources, fork us on github at

We are always happy to receive your feedback on the forums. If you think you found a bug, have an improvement suggestion or feature request, please submit a ticket in JIRA (see link above).

A word on bug reports: If at all possible, try to download one of the nightly snapshots at and see, if this bug has already been fixed. If the problem still persists, don't forget to mention the version of Spring.NET you are using (check the file versions of Spring.NET dlls), the .NET version you are running on and a description how to reproduce the problem. Ideally attach some sample code reproducing the problem to the JIRA ticket.

9. Acknowledgements

InnovaSys Document X!

InnovSys has kindly provided a license to generate the SDK documentation and supporting utilities for integration with Visual Studio.

You can’t perform that action at this time.