构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(61)-如何使用框架来开发?...
?
前言:
有些園友經(jīng)常問(wèn)如何正確快速開(kāi)發(fā),但是我告訴你沒(méi)有什么幫助文檔比自己動(dòng)手做更加實(shí)在,不用代碼生成器
這一節(jié)專(zhuān)門(mén)抽了些時(shí)間來(lái)非常非常詳細(xì)演示這個(gè)框架的數(shù)據(jù)流,廢話不多說(shuō),現(xiàn)在開(kāi)始!下面看一張圖,看看數(shù)據(jù)如何到前端的就完全明白了!
?
只看紅色部分,這是典型的三層模式。其實(shí)這張圖只是對(duì)我們過(guò)去的一個(gè)回顧而已!DAL獲取數(shù)據(jù)庫(kù)數(shù)據(jù),交給業(yè)務(wù)層處理邏輯后交付控制器序列化給前端
從用戶(hù)請(qǐng)求(View)——>控制器(Controller)——>業(yè)務(wù)處理(BLL)——>(數(shù)據(jù)訪問(wèn))DAL——最后得到數(shù)據(jù)
?
-------------------------------------------------------------------------丑陋的分割線----------------------------------------------------------------------------
目錄
上面只是一個(gè)開(kāi)篇,下面讓我們來(lái)快速進(jìn)入主題吧!大致分以下5步完成:(其實(shí)純看手速,手速快的5分鐘就可以運(yùn)行了)
——————————————————————————
——————————————————————————
1.約定
其實(shí)在寫(xiě)完了權(quán)限的時(shí)候,我發(fā)現(xiàn)了很多重復(fù)性編碼的東西,所以隨便寫(xiě)了個(gè)代碼生成器,在每次使用代碼生成器的時(shí)候發(fā)現(xiàn)了,代碼生成器生成的代碼很多都是一樣的,所以使用了T4重構(gòu)了重復(fù)部分。
這都是在實(shí)際過(guò)程中去摸索完善的過(guò)程,沒(méi)有任何架構(gòu)師,一開(kāi)始能對(duì)一個(gè)默生的項(xiàng)目提出最好的架構(gòu),只有不斷的重構(gòu)完善,最后才能使框架的維護(hù)成本降低!
假如我們是一個(gè)大型的應(yīng)用系統(tǒng),里面包含的很多業(yè)務(wù)模塊,比如財(cái)務(wù)管理,人力資源,銷(xiāo)售,生產(chǎn),工作流,那么我是這樣分的,也是一種約定
一個(gè)好的系統(tǒng)他們是可以被拆分和組合的,所以我這樣分模塊,一個(gè)子模塊包含了BLL,DAL,IBLL,IDAL你也可以分文件夾,那都是一樣的
以一個(gè)樣例的模塊來(lái)演示Sample(Spl),所以我們必須有如下的約定:
數(shù)據(jù)庫(kù)表前綴: Spl_?
類(lèi)庫(kù)的名稱(chēng): ? ?Apps.Spl.XXX
控制器區(qū)域: ? ?Spl
Models文件夾:Spl
(雖然不是必須執(zhí)行,但是這也是編碼規(guī)范)
2.建立類(lèi)庫(kù)與區(qū)域
分別復(fù)制來(lái)源于Apps.Base下的所有T4到Apps.Spl對(duì)應(yīng)的BLL,DAL,IDAL,IBLL層
并修改T4的內(nèi)容的usingName前綴為Spl。(為數(shù)據(jù)表的約定的前綴)
類(lèi)庫(kù):(如果你的項(xiàng)目是以文件夾而不是類(lèi)庫(kù)分類(lèi)的那么不需要執(zhí)行這一步)
區(qū)域:
并修改路由規(guī)則為如下(多語(yǔ)言的正則表達(dá)式)
?View Code3.類(lèi)庫(kù)引用
(如果你的項(xiàng)目是以文件夾而不是類(lèi)庫(kù)分類(lèi)的那么不需要執(zhí)行這一步)
為了類(lèi)庫(kù)的引用,我們先建立兩張表,只有表有了T4才能生成,生成后會(huì)報(bào)錯(cuò),報(bào)錯(cuò)之后有助于我們對(duì)庫(kù)的引用,OK
我這里建立兩張表:表的數(shù)據(jù)來(lái)源于SQL2012的示例數(shù)據(jù)庫(kù)AdventureWorks2012大家可以通過(guò)百度找到下載地址
表結(jié)構(gòu)我是自己建的,比較簡(jiǎn)單,你可以隨便建立你的表!
?提取數(shù)據(jù)的語(yǔ)句(如果感興趣可以看看) ?建表語(yǔ)句(如果感興趣可以看看)這是一個(gè)產(chǎn)品與類(lèi)別關(guān)系的表!沒(méi)啥
根據(jù)報(bào)錯(cuò)信息我們將要分別引用類(lèi)庫(kù),類(lèi)庫(kù)需要引用關(guān)系如下圖所示
只看紅色框框內(nèi)即可,白色為系統(tǒng)原有的類(lèi)庫(kù),別看好像很復(fù)雜,手速快的其實(shí)就一分鐘的事情而已!
千萬(wàn)別忘記注入。在App.Core下的UnityDependencyResolver類(lèi)庫(kù)
4.代碼生成
新建2個(gè)控制器。ProductController與ProductCategoryController
最后進(jìn)入收尾工作,接下來(lái)的事情由代碼生成器生成!生成代碼后復(fù)制進(jìn)Controller與View就可以
?
5.運(yùn)行
運(yùn)行系統(tǒng),最后設(shè)置好權(quán)限和模塊
最后刷新一下系統(tǒng)。杠杠的
總結(jié)
文章很長(zhǎng),但是很詳細(xì),看完對(duì)框架認(rèn)知度至少提高200%。
主要幾步來(lái)完成。新建類(lèi)庫(kù)---->數(shù)據(jù)庫(kù)表---->生成代碼---->直接運(yùn)行。速度快的其實(shí)只需5分鐘,毫無(wú)難度可言
幾乎沒(méi)有寫(xiě)一行代碼就能實(shí)現(xiàn)界面的展示,如果把代碼生成器努力優(yōu)化將能支持多表聯(lián)合查詢(xún),支持復(fù)合實(shí)際的開(kāi)發(fā)業(yè)務(wù),那么編碼速度的提升是質(zhì)的提升
謝謝大家。
下一節(jié)將演示如何添加除生成之外的功能!如何使用代碼來(lái)做其它事
轉(zhuǎn)載于:https://www.cnblogs.com/syg1/p/5551882.html
總結(jié)
以上是生活随笔為你收集整理的构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(61)-如何使用框架来开发?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 安卓开发:关于适配的问题
- 下一篇: ASP.NET Core 中文文档 第四