1. 程式人生 > >Asp.net MVC 搭建屬於自己的框架(一)

Asp.net MVC 搭建屬於自己的框架(一)

C4D pagedlist del tran 6.0 ext 才有 應該 frame

網址: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

Asp.net MVC 搭建屬於自己的框架(一)