现在的位置: 首页 > 综合 > 正文

IoC容器 – Spring.NET

2012年08月15日 ⁄ 综合 ⁄ 共 1595字 ⁄ 字号 评论关闭

1. 概述
  Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为基础,将Spring.Java的核心概念与思想移植到了.NET平台上。
  Spring.Core作为整个框架的基础,实现了依赖注入的功能。Spring.NET的大部分模块都要依赖或扩展该模块。Spring.Core的基础是IObjectFactory接口,该接口用一个简单而优雅的方式实现了工厂模式,使我们可以无需自行编写singleton类型和众多的服务定位器,并允许将对象配置及其依赖关系与具体的程序逻辑解耦。该模块中的IApplicationContext接口是IObjectFactory的扩展,增加了诸多企业级功能,包括使用资源文件进行文本本地化、事件传播和资源装载等等。
  Spring.Aop:使用这个模块实现方面编程。Spring的方面库(aspect library)提供了预先定义并容易使用的方面:事务,日志,执行监视,缓存,方法重试和异常处理。
  Spring.Data定义了一个抽象的数据访问层,可以跨越各种数据访问技术(从ADO.NET到各种ORM)进行数据访问。该模块包含一个ADO.NET的抽象层,减少了使用传统ADO.NET进行编码和事务管理时的工作量。
  Spring.Data.NHibernate使用此模块集成到Spring的声明式事务管理功能NHibernate的能容易地操作ADO.NET和NHibernate的混合在同一事务。 NHibernate的1.0用户将受益于易于使用的API来执行数据访问操作。
  Spring.Web使用此模块,以抽象方式编写ASP.NET Web应用程序时允许你有效地解决共同的棘手问题,如在ASP.NET数据绑定,验证和ASP.NET母板页、控件、模块、驱动配置。
  Spring.Web.Extensions 在写Asp.net web应用程序时使用这个模块提升抽象级别。如:数据邦定,验证和配置。
  Spring.Services:使用这个模块实现对象的分发通信技术。
  Spring.Testing.NUnit - 使用此模块进行整合NUnit的测试。

2. 依赖注入
  依赖对象(控制权)发生转变,由最初的类本身来管理依赖对象转变为IoC框架来管理这些对象,使得依赖脱离类本身的控制,从而实现松耦合。

3. 面向切面编程
  是OOP(面向对象编程)的一种延续形式。是通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术,它从一个不同于OOP的角度来看待程序的结构:OOP将应用程序分解为一系列表现为继承关系的对象;AOP 则把程序分解为一系列方面(aspects)或者关注点(concerns)。AOP将诸如事务管理等本来横向分布在多个对象中的关注点进行了模块化处理(这些关注点也常称为横切(crosscutting)关注点)。在Spring.NET中提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
  http://www.cnblogs.com/beliefbetrayal/archive/2012/02/03/2337522.html
  

 

引自:http://www.cnblogs.com/GoodHelper/archive/2009/11/20/SpringNet_Index.html

抱歉!评论已关闭.