本系统提供一个对ASP.NET MVC 系统架构,遵循面向接口式编程,所有业务调用均直接使用接口,实例创建全部交由IOC创建。 采用StructureMap 作为IOC框架,以构造方式注入。 ORM实现的是Entity framework 6的方式并进行了部分封装,日后会对ADO.NET 和 NHIBERNATE进行引入。 本示例设计**来源于 tystudio ,和MVC开源项目ABP的**并加了一些自己的改进。 DOC文件中还有另外一个已经正式使用中的的项目结构截图。 使用过程中涉及到的工具: VS版本为 2015 professional RC , 数据库为 SQLSERVER 2008 R2 , 源代码工具为github,也可以试用 SVN绑定github的https地址,或 使用SSH进行获取 开源代码存放于github中 地址为:https://github.com/guochangshan/Jiaheng.House2.Vote 注意: 本示例着重构建了项目结构也部分实现,前台MVC部分截至目前由于时间原因并未做太多改动。 编译没有问题,启动前台可能会报错。 10个工程功能介绍 Jiaheng.House2.Vote.DTO,主要放我们ViewModel,分离View和Entity Framework,降低代码耦合度,接下来将引入 DTO框架来实现ViewModel与DataModel直接转换问题。 Jiaheng.House2.Vote.Services,业务逻辑层所有的业务逻辑都放在这一工程,通过StructureMap实现对Repository的注入。 Jiaheng.House2.Vote.Tools,项目通用工具类,加密,字符串处理,线程处理,缓存类等。 Jiaheng.House2.Vote.Repositories,如名字这里放置所有Repository,数据库持久层,只有这一层去和Model层打交道。 Jiaheng.House2.Vote.Entities,Entity Framework 的数据实体存放位置。 Jiaheng.House2.Vote.Ado.Net,ADO.NET访问数据方法的封装类。 Jiaheng.House2.Vote.NHibernate,NH的配置管理类,暂未实现涉及。 Jiaheng.House2.Vote.StructureMap,这里放置的StructureMap的配置与管理。 Jiaheng.House2.Vote.WebUI工程,UI层,Controller和View都在这一层。 Solution Items 需要引入的DLLS和一些项目相关文件。 一些说明: 本示例具体实现的内容比较少,主要是一个公司面试需求需要在几天内提交,再加上本人时间安排原因,主要重点放在项目结构设计、框架应用、数据库表设计等。 如果觉得系统还可以,请大家推荐分享一下,让更多的学习MVC的朋友看到,本人也会不断完善该项目,谢谢。