Spring.net Dependency Injection Framework Learning--Overview

Source: Internet
Author: User

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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.