Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/spring-projects/spring-net

Spring Framework for .NET
https://github.com/spring-projects/spring-net

Last synced: 29 days ago
JSON representation

Spring Framework for .NET

Awesome Lists containing this project

README

        

[![Build](https://github.com/spring-projects/spring-net/actions/workflows/ci.yml/badge.svg)](https://github.com/spring-projects/spring-net/actions/workflows/ci.yml)

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.