Spring.net Dependency Injection Framework Learning--spring.net Introduction overview
Spring.net is an application framework designed to assist developers in creating enterprise-class. NET Applications. It provides many aspects of functionality, such as dependency injection, aspect-oriented programming (AOP), data access abstraction, and ASP. Based on the Java version of the Spring Framework, spring.net ported the core concepts and ideas of Spring.java to the. NET Platform.
Enterprise applications are typically composed of multiple physical layers, and each physical layer is often divided into functional layers. There is a need for collaboration between different levels, for example, the business service layer typically needs to use objects from the data access layer to implement a use case. Regardless of how the application is built, it ultimately manifests itself as a series of collaborative objects that together form the complete application. So we say that objects in the application have dependencies on each other.
. NET platform provides a rich set of capabilities for building applications, from very basic primitive types and base class libraries (and the methods of defining new classes) to well-functioning application servers and web frameworks. But the. NET platform itself does not provide any way to manage the underlying application modules and combine them into a collaborative whole, relying only on architects or developers to create (a series of) applications. Admittedly, there are many design patterns available for the design of business systems, and we can use these patterns to combine classes or objects into a complete application that works. Models such as factories, abstract factories, Builder, decorations and service Locator have been widely accepted and adopted in today's software development industry (which may be why these patterns were first trained as models). These patterns are very good, but they are just some of the best programming methods that have been named, and in the introduction of these patterns, you will generally explain what they are used for, the best places to apply them, what problems they can solve, and so on. We can find these patterns from a number of books and wikis, then read them carefully and then implement them in our own applications.
Spring.net's IOC container solves the problem of how to synthesize applications into classes, objects, and service groups in enterprise applications. IOC containers are very orthodox (by: formalized, the implication is that these methods are stereotyped and tested by the industry for many years) to combine disparate components into complete applications. The Spring.net framework is the best programming method that has been tested for years by countless applications in the industry and has been trained as a design pattern, and in fact these patterns have become the code of our architecture and development, and through spring.net we can integrate them directly into our own applications. It's really a good thing that many organizations and agencies have developed strong, well-maintained applications with the spring framework.
Spring.net Module composition
The Spring.net framework includes a number of functions, which are well organized into a series of modules, and the core modules are composed as shown.
Spring.core -------As the basis of the whole framework, it realizes the function of dependency injection. Most modules of spring.net depend on or extend the module
SPRING.AOP -provides aspect-oriented programming (AOP) support for business Objects
spring.data --Use this module to achieve higher efficiency and write data consistency in ADO access functionality. Network and perform declarative transaction management.
Spring.Data.NHibernate using this module with Spring's declarative transaction management integration NHibernate functionality allows easy mixing of ADO. The net and nhibernate operations are in the same transaction. NHibernate 1.0 users will benefit from the ease of use API to perform data access operations.
spring.messaging uses this module to improve the abstraction level with Microsoft MSMQ interacting with those queued message middleware
Spring.Messaging.NMS --improve the level of abstraction when interacting with Apache using this module ACTIVEMQ messages those queued middleware (NMS)
Spring.Messaging.EMS --Use this module to improve abstraction levels and TIBCO interactions when those queued Enterprise message Service (EMS) message middleware
spring.web --when writing an ASP. NET WEB application, this module can improve the level of abstraction, which can effectively solve common problems in ASP, such as data binding, validation and ASP. /module/provider configuration.
SPRING.WEB.MVC --Use this module to integrate the functionality of the Spring.core and SPRING.AOP modules into an ASP. NET MVC 2 project.
Spring.Web.Mvc3 --Use this module to integrate the functionality of the Spring.core and SPRING.AOP modules into an ASP. NET MVC 3 project.
Spring.Web.Extensions when writing an ASP. NET WEB application, this module can be used to improve the level of abstraction (abstraction), enabling you to effectively address common problems in ASP., such as data binding, validation, and ASP. Control/module/provider configuration.
Services --Use this module to adjust pure CLR objects so that they can be used with specific distributed communication technologies such as. NET remoting,enterprise Services and ASMX Web services. These services can be configured through dependency injection and are "decorated" by applying AOP.
Spring.Testing.NUnit --Use this NUnit module for integration testing.
Spring.Testing.MSTest------ Use this module to perform integration testing with MSTest
Spring.Scheduling.Quartz --Use this module to support interaction with the Quartz.net Job scheduler infrastructure.
The Spring.core module also includes the following additional features
- Expression language-provides efficient query and operation object graphs at run time.
- Validation framework-A powerful user-interface agnostic framework for creating complex validation rules for business objects in a programmatic or declarative manner.
- Data binding framework-the UI agnostic framework for performing data binding.
- Dynamic reflection-Provides a high-performance reflection API
- Threads-provides additional concurrency (concurrency) abstractions, such as locks?? Memory, semaphore, and thread local storage.
- Resource abstraction (Resource abstraction)-Provides a common interface for processing polymorphic (polymorphic) and protocol-independent inputstream from files and URLs.
Spring.net Documentation
Detailed description: Here are spring.net1.3.2 version of the document download
Spring-net-reference.zip
Spring.net Source Download
Official website: http://www.springframework.net/
GitHub Address: Https://github.com/spring-projects/spring-net
You can see the latest version of spring.net1.3.2 and the old version below
Here i download the spring.ent-1.3.1 version (not the latest)
Catalogue Introduction
Spring Main Core Module code
Spring.net compiling a generated dynamic library file
Spring.net dynamic library files frequently used in development
Common.Logging.dll (necessary)
Spring.Core.dll (necessary)
Spring.Data.dll
Spring.Aop.dll (optional)
Spring.Data.NHibernate21.dll
Spring.Web.dll
Spring.net Dependency Injection Framework Learning--Overview