zoukankan      html  css  js  c++  java
  • 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,现在这个类只有两个属性,等之后慢慢扩展完善  

     DomainBase

    数据访问基类接口 

    MyFrame.IDao.IDaoBase:封装了增删改查方法以及分页等

     IDaoBase

    数据访问实现基类

    MyFrame.Dao.DaoBase:需要继承IDaoBase,IDisposable

     DaoBase

    数据库访问上下文

    MyFrame.DataMapping.DataBaseContext

     DataBaseContext
     UserMap

    扩展帮助类

    MyFrame.Common.Helper:封装了一些常用的方法,我自己用起来比较顺手,增加自己的开发效率

     Helper

    分页控件

    我用得是PagedList,Nuget里搜索安装PagedList.MVC即可,然后自己封装了一下,封装得在DaoBase里SelectPageList()

    为了让这个控件扩展性更强,写了一个分部试图_PageList,定义了一个分页Model,

    为什么要自己写个而不是用它自己封装好的,因为后期页码可能需要跳转“首页”,”末页“等

     PageListModel
     _PageList

    分页css

     PageList

    怎么调用呢?跟调用分部试图方法一样,只是需要传进一个PageListModel

     Controller
     Index

    Autofac组件

    控制反转,类似于Ioc容器的组件,通过配置接口对应具体的实现类

    然后调用我们只需要调接口就行了,降低耦合性。

    组件Nuget里有自己下载安装就行

    在Globl.asax里配置

     View Code

    通过控制器里的构造方法,调用即可

     View Code

    其实配置接口对应哪个具体实体的关系,应该放到config文件比较好,这个后期再慢慢优化把。

    结尾

    这是一个初级版本,后期肯定要再好好完善,比如加入Transaction事务管理,排序,条件查询等等。

    大家如果有什么好的建议,尽管提,互相促进互相学习。

    转载请注明出处,谢谢!

    源代码下载地址:http://yun.baidu.com/share/link?shareid=2761504180&uk=2820969304

  • 相关阅读:
    通配符函数 MatchesMask 的使用
    WinAPI: GetComputerName 获取计算机名称
    TStringList 常用操作
    分割字符串 ExtractStrings
    磁盘类型 GetDriveType
    Delphi 的信息框相关函数
    Delphi 的运算符列表
    类型转换函数
    文件路径相关的字符串操作
    澳洲技术移民介绍
  • 原文地址:https://www.cnblogs.com/zxtceq/p/9104501.html
Copyright © 2011-2022 走看看