天天看點

Asp.net MVC 搭建屬于自己的架構(一)

網址:https://www.cnblogs.com/sggx/p/4555255.html

為什麼要自己搭架構?

  大家夥别急,讓我慢慢地告訴你!大家有沒有這種感覺,從一家跳槽到另一家公司,公司的架構往往是不相同的,這樣你必須就得摒棄原來的,學習新的架構。

問題是你用習慣了一種架構,比如封裝的擴充方法、工廠模式、實體映射等等,你用得很爽,但是跳槽到新的公司,又得學習他們公司的架構,往往你在這上面

要花費不少時間。

是以我才有了搭建自己的架構的想法,我的架構用到了EntityFramework6.0+Asp.NET MVC4+Autofac等,下面是我的架構結構:

Asp.net MVC 搭建屬于自己的架構(一)

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