很少搞ASP.net,之前用过动软ASP.net代码生成工具,生成工厂模式(数据访问层)来开发一个公司门户网站,感觉还挺方便,适合中小型项目。最近准备开发一个稍微大型少少的项目,考虑到系统的可维护性和可扩展性,决定采用IBatis.Net + Castle 框架开发。
简单介绍一下IBatis.Net:
IBatis.Net(持久层),说起持久层就会想起J2EE的Hibernate和.Net的NHibernate这两个优秀的框架,具备丰富的数据操作方法和数据约束机制,大大地提高了开发效率。可惜对存储过程的调用支持不太好,缓存机制有差异。而IBatis.Net,则提供了一种更为灵活的方便的可控的方式去实现类ORM的解决方案。可以自己来控制SQL语句以配置文件的方式写在XML中,这样做有好处在于,我们可以更灵活地根据自己的需求,编写更具性能、功能优势的SQL语句,但它的缺点同样明显,我们还是需要管理和编写SQL语句,这样我们的工作量就变大了,现在只能编写模板生成更灵活的SQL语句来减少工作量。两者之间可以说有好有不好,选择它还得看需求!
简单介绍一下Castle
在J2EE搞过Spring,当发现.Net中有Castle和Spring.Net这两个对象控制框架时,感到很高兴!ASP.net越来越显得更规范,更有实力了。Spring和Spring.Net我在这里就不多讲了,至于Castle嘛,我看中它的Windsor Container。Windsor Container在Castle中的地位举足轻重,相信有很多朋友都是通过它才开始学习Castle的,Windsor Container以其良好的设计,简洁的配置很快赢得了开发者的口碑。Windsor Container就是Castle的一个IOC容器,它构建于MicroKernel之上,能检测类和类使用的参数,检测类型和类型之间工作依赖性,并提供服务或者发生错误时提供预警的机制。传说中的IOC(控制反转或者叫依赖注入)就是由这个容器实现的,消除调用者和被调用者之间的依赖关系,实现最大限度地适应需求变化,以及良好的设计,简洁的配置相信也是很多朋友通过它学习Castle的原因。使用Castle依赖注入的形式有三种,分别为构造子注入(Constructor Injection)、设值方法注入(Setter Injection)和接口注入(Interface Injection)。
下回将介绍简单的IBatis.Net + Castle项目开发