THE SPRING.NET FRAMEWORK
http://www.springframework.net/
INTRODUCTION
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).
SUPPORTED .NET FRAMEWORK VERSIONS
Spring.NET 3.0.0 supports .NET 4.6.2 and .NET Standard 2.0 and later.
KNOWN ISSUES
## RELEASE INFO
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
* `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: http://www.springframework.net/
The Spring Framework is released under the terms of the Apache Software License (see license.txt).
## DISTRIBUTION DLLs
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) [![NuGet](http://img.shields.io/nuget/v/Spring.Core.svg)](https://www.nuget.org/packages/Spring.Core/) [![Downloads](https://img.shields.io/nuget/dt/Spring.Core)](#)
* Contents: Inversion of control container. Collection classes.
* Dependencies: Common.Logging
* __Spring.Aop__ (~150 KB) [![NuGet](http://img.shields.io/nuget/v/Spring.Aop.svg)](https://www.nuget.org/packages/Spring.Aop/) [![Downloads](https://img.shields.io/nuget/dt/Spring.Aop)](#)
* Contents: Abstract Oriented Programming Framework.
* Dependencies: Spring.Core, Common.Logging
* __Spring.Data__ (~320 KB) [![NuGet](http://img.shields.io/nuget/v/Spring.Data.svg)](https://www.nuget.org/packages/Spring.Data/) [![Downloads](https://img.shields.io/nuget/dt/Spring.Data)](#)
* Contents: Transaction and ADO.NET Framework.
* Dependencies: Spring.Core, Spring.Aop
* __Spring.Data.NHibernate5__ (~90 KB) [![NuGet](http://img.shields.io/nuget/v/Spring.Data.NHibernate5.svg)](https://www.nuget.org/packages/Spring.Data.NHibernate5/) [![Downloads](https://img.shields.io/nuget/dt/Spring.Data.NHibernate5)](#)
* Contents: NHibernate 5.x integration
* Dependencies: Spring.Core, Spring.Aop, Spring.Data, NHibernate
* __Spring.Services__ (~70 KB) [![NuGet](http://img.shields.io/nuget/v/Spring.Services.svg)](https://www.nuget.org/packages/Spring.Services/) [![Downloads](https://img.shields.io/nuget/dt/Spring.Services)](#)
* Contents: Web Services, Remoting, and Enterprise Component based services.
* Dependencies: Spring.Core, Spring.Aop
* __Spring.Web__ (~165 KB) [![NuGet](http://img.shields.io/nuget/v/Spring.Web.svg)](https://www.nuget.org/packages/Spring.Web/) [![Downloads](https://img.shields.io/nuget/dt/Spring.Web)](#)
* Contents: ASP.NET based Web Application Framework.
* Dependencies: Spring.Core, Spring.Aop
* __Spring.Web.Extensions__ (~8 KB) [![NuGet](http://img.shields.io/nuget/v/Spring.Web.Extensions.svg)](https://www.nuget.org/packages/Spring.Web.Extensions/) [![Downloads](https://img.shields.io/nuget/dt/Spring.Web.Extensions)](#)
* Contents: ASP.NET AJAX Integartion
* Dependencies: Spring.Core, Spring.Aop, System.Web.Extensions
* __Spring.Web.Mvc5__ (~8 KB) [![NuGet](http://img.shields.io/nuget/v/Spring.Web.Mvc5.svg)](https://www.nuget.org/packages/Spring.Web.Mvc5/) [![Downloads](https://img.shields.io/nuget/dt/Spring.Web.Mvc5)](#)
* Contents: ASP.NET MVC5 and WebAPI Integartion
* Dependencies: Spring.Core, Spring.Web
* __Spring.Testing.NUnit__ (~24 KB) [![NuGet](http://img.shields.io/nuget/v/Spring.Testing.NUnit.svg)](https://www.nuget.org/packages/Spring.Testing.NUnit/) [![Downloads](https://img.shields.io/nuget/dt/Spring.Testing.NUnit)](#)
* Contents: NUnit Integration
* Dependencies: Spring.Core, Spring.Data, NUnit
* __Spring.Testing.Microsoft__ (~24 KB) [![NuGet](http://img.shields.io/nuget/v/Spring.Testing.Microsoft.svg)](https://www.nuget.org/packages/Spring.Testing.Microsoft/) [![Downloads](https://img.shields.io/nuget/dt/Spring.Testing.Microsoft)](#)
* Contents: MSTest Integration
* Dependencies: Spring.Core, Spring.Data, MSTest
* __Spring.Messaging__ (~65 KB) [![NuGet](http://img.shields.io/nuget/v/Spring.Messaging.svg)](https://www.nuget.org/packages/Spring.Messaging/) [![Downloads](https://img.shields.io/nuget/dt/Spring.Messaging)](#)
* Contents: MSMQ Integration
* Dependencies: Spring.Core, Spring.Data, System.Messaging
* __Spring.Messaging.Nms__ (~100 KB) [![NuGet](http://img.shields.io/nuget/v/Spring.Messaging.Nms.svg)](https://www.nuget.org/packages/Spring.Messaging.Nms/) [![Downloads](https://img.shields.io/nuget/dt/Spring.Messaging.Nms)](#)
* Contents: NMS Integration
* Dependencies: Spring.Core, Spring.Data, Apache NMS
* __Spring.Scheduling.Quartz3__ (~44 KB) [![NuGet](http://img.shields.io/nuget/v/Spring.Scheduling.Quartz3.svg)](https://www.nuget.org/packages/Spring.Scheduling.Quartz3/) [![Downloads](https://img.shields.io/nuget/dt/Spring.Scheduling.Quartz3)](#)
* Contents: Quartz32.x Integration
* Dependencies: Spring.Core, Spring.Data, Quartz
* __Spring.Template.Velocity__ (~44 KB) [![NuGet](http://img.shields.io/nuget/v/Spring.Template.Velocity.svg)](https://www.nuget.org/packages/Spring.Template.Velocity/) [![Downloads](https://img.shields.io/nuget/dt/Spring.Template.Velocity)](#)
* Contents: NVelocity Integration
* Dependencies: Spring.Core, NVelocity
## WHERE TO START?
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
## How to build
VS.NET
------
Visual Studio 2022 is required to open and build the solution. The free community version of Visual Studio should suffice.
## Acknowledgements
InnovaSys Document X!
---------------------
InnovSys has kindly provided a license to generate the SDK documentation and supporting utilities for
integration with Visual Studio.