本系统提供一个对默认的DOTNET MVC扩展的ASP.NET三层架构,使用了StructureMap和Enterprise Library进行依赖注入和异常日志记录处理,面向接口编程在本系统得到了充分的体现。
GIT@OSC项目地址:http://git.oschina.net/tystudio/tystudiomvcdemo
下面是对本系统各个模块实现的详细文章:
- 扩展ASP.NET MVC三层框架并使用StructureMap实现依赖注入1-Model层的实现
- 扩展ASP.NET MVC三层框架并使用StructureMap实现依赖注入2-Repository层的实现
- 扩展ASP.NET MVC三层框架并使用StructureMap实现依赖注入3-Service层的实现
- 扩展ASP.NET MVC三层框架并使用StructureMap实现依赖注入4-Controller和View的实现
- 扩展ASP.NET MVC三层框架并使用StructureMap实现依赖注入5-StructureMap的配置与实现
- 扩展ASP.NET MVC三层框架并使用Enterprise Library实现异常与日志记录(6)
本系统基于ASP.NET MVC4,使用了StructureMap实现依赖注入,Enterprise Library实现异常和日志的处理。相应的第三方DLL放在了Commons工程中,数据库使用开源Northwind数据库,Logging和Northwind数据库备份也放到了Commons工程中。
下面看一下最终我们这个框架的完整结构:
9个工程功能介绍
- TYStudioDemo.Commons工程重要放一些公共的类,和一些工具方法。
- TYStudioDemo.DTO工程,主要放我们ViewModel,分离View和Entity Framework,降低代码耦合度。
- TYStudioDemo.Interfaces工程,统一管理整个框架的接口,所有的接口都在这一工程。
- TYStudioDemo.Membership工程,是我们的权限管理模块,可以参考天屹的MVC4 Simplemembership些列文章。
- TYStudioDemo.Models工程,这里没有其他的只有Entity Framework,Models层。
- TYStudioDemo.Repositories工程,如名字这里放置所有Repository,数据库持久层,只有这一层去和Model层打交道。
- TYStudioDemo.Services工程,业务逻辑层所有的业务逻辑都放在这一工程,通过StructureMap实现对Repository的注入,同时异常处理Service也在这里一层,使用Enterprise Library进行异常的日志记录。
- TYStudioDemo.StructureMap工程,这里放置的StructureMap的配置与管理。
- TYStudioDemo.WebUI工程,UI层,Controller和View都在这一层。
一些说明:
因为是Demo,所以没有写成一个完整的系统,只对Supplier一个表进行了操作,当然考虑到事务的问题,天屹在SupplierService的Create方法中模拟添加了Product表的内容,对本系统中的事务处理做了注释说明。
如果觉得系统还可以,请大家推荐分享一下,让更多的学习MVC的朋友看到,谢谢。
如果有什么问题,不明白的地方,欢迎来到TYStudio,留下你的问题,我们一起解决他们。