Asp.net MVC 搭建属于自己的框架(一)
网址:https://www.cnblogs.com/sggx/p/4555255.html
为什么要自己搭框架?
大家伙别急,让我慢慢地告诉你!大家有没有这种感觉,从一家跳槽到另一家公司,公司的框架往往是不相同的,这样你必须就得摒弃原来的,学习新的框架。
问题是你用习惯了一种框架,比如封装的扩展方法、工厂模式、实体映射等等,你用得很爽,但是跳槽到新的公司,又得学习他们公司的框架,往往你在这上面
要花费不少时间。
所以我才有了搭建自己的框架的想法,我的框架用到了EntityFramework6.0+Asp.NET MVC4+Autofac等,下面是我的框架结构:
MyFrame.Domain 实体模型层
MyFrame.DataMapping 数据映射层:映射实体类和数据库表关系,数据库上下文存放在该层
MyFrame.IDao 数据访问接口层
MyFrame.Dao 数据访问层
MyFrame.IService 业务逻辑接口层
MyFrame.Service 业务逻辑层
MyFrame.Common 通用扩展层
MyFrame.Web UI层
层与层之间的引用关系
Domain(最低层)=》每个层调用;IDao=>Dao,Service; IService=>Service ; IDao,IService=>Web
实体基类
MyFrame.Domain.DomainBase:实体基类,实体类都需要继承DomainBase,现在这个类只有两个属性,等之后慢慢扩展完善
数据访问基类接口
MyFrame.IDao.IDaoBase:封装了增删改查方法以及分页等
数据访问实现基类
MyFrame.Dao.DaoBase:需要继承IDaoBase,IDisposable
数据库访问上下文
MyFrame.DataMapping.DataBaseContext
扩展帮助类
MyFrame.Common.Helper:封装了一些常用的方法,我自己用起来比较顺手,增加自己的开发效率
分页控件
我用得是PagedList,Nuget里搜索安装PagedList.MVC即可,然后自己封装了一下,封装得在DaoBase里SelectPageList()
为了让这个控件扩展性更强,写了一个分部试图_PageList,定义了一个分页Model,
为什么要自己写个而不是用它自己封装好的,因为后期页码可能需要跳转“首页”,”末页“等
分页css
怎么调用呢?跟调用分部试图方法一样,只是需要传进一个PageListModel
Autofac组件
控制反转,类似于Ioc容器的组件,通过配置接口对应具体的实现类
然后调用我们只需要调接口就行了,降低耦合性。
组件Nuget里有自己下载安装就行
在Globl.asax里配置
通过控制器里的构造方法,调用即可
其实配置接口对应哪个具体实体的关系,应该放到config文件比较好,这个后期再慢慢优化把。
结尾
这是一个初级版本,后期肯定要再好好完善,比如加入Transaction事务管理,排序,条件查询等等。
大家如果有什么好的建议,尽管提,互相促进互相学习。
转载请注明出处,谢谢!
源代码下载地址:http://yun.baidu.com/share/link?shareid=2761504180&uk=2820969304