概述
spring.net是一个开源的业务层的框架,功能非常的强大,归结一下有3个功能:面向切面编程;IoC和DI;提供综合型的框架支持,本片博客主要说一下IoC和DI,和其提供的对MVC框架的支持。
IoC和DI
IoC,英文全称Inversion of Control,控制反转;DI,英文全称Dependency Injection,依赖注入。简而言之,IoC就是创建对象,DI就是创建对象的时候,进行初始化。
IoC和DI就相当于我们通常写的抽象工厂+反射,只不过比抽象工厂的功能强大,但是其思想是一样的,就是解耦。我们通过抽象工厂+反射,实现了上层和下层之间的解耦,当然,这其中有相应的中间层(接口)提供下层相应的类型保证,而spring.net提供的IoC和DI也是这样实现的,只不过,我们使用spring.net的框架时,我们不需要再自己写相应的抽象工厂了,不需要自己在进行维护这个类了,spring.net已经给我封装成了相应的dll组件,我们只需要引用相应的组件,然后进行相应的配置文件的配置就可以事项该功能。
提供MVC框架的支持
MVC框架可以说是UI层的一个框架,其Control类的功能就是接受请求,返回数据,其对于数据业务逻辑的处理是交给BLL层(业务逻辑层)进行处理的,我们通过spring.net提供的dll组件实现U层和B层的分离。
对于UI层不是MVC框架的类,我们再引入相应的dll,进行相应配置文件配置后,我们接下来的操作就是创建一个容器对象,然后给其相应的key就可以通过容器对象得到我们想要的对象,这个方式是针对于UI层没有架构的情况,而对于UI层使用了MVC架构的程序,我们是通过别的方式进行实现的,上面的概述中说了,spring.net提供了综合型框架的支持,所以,我们可以知道,spring.net也提供了相应的dll来和MVC框架进行相应的对接,这个过程的具体操作:在control类中定义相应的属性(IBLL接口类型),然后,通过配置文件的配置,实现,当然访问这个control类时,就初始化了相应的属性。
配置文件的处理
使用spring.net框架的时候,我们会在配置文件中书写大量的内容,如果这些内容仅仅在一个web.config中写的话,会非常的乱,此时,我们可以创建相应的xml文件,进行相应的配置,当然,这个需要进行相应得配置,如果我们使用这种方式的时候,我们需要注意,我们要对xml文件的属性做一些处理,将其弄到UI层,因为,我们的程序访问的配置文件是基于I层的。
总结
我们做一个程序,我们使用spring.net + M(EasyUI)VC + EF/NHibernate + T4这个框架,和一个不使用分层和任何架构的程序相比,在性能上,肯定是后者的效率高,因为代码执行的流程少,路径短,所以,非常的快,但是,为什么还是出现了上者的那种架构,并且很多人认为这种架构还非常好呢?
要想知道上面的答案,我们需要析一下,为什么出现了上面的两种情况,为什么呢?因为我们做的程序的类型不同,对于互联网系统,对于系统的要求的是执行的速度快,对于企业级业务系统(OA\ERP\管理系统等),对于系统的要求的是对于需求的变化能灵活的应对,ok,这样我们就清楚了,为什么有了那么多的框架,并且,现在仍有很多人致力于于框架的开发,以及相应优化的工作的原因了。
从上面的分析我们可以知道,对于程序来说,不是用了框架就好,不是不用框架就不好,而是要恰到好处的使用。