欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
零基礎ASP.NET Core MVC插件式開(kāi)發(fā)

作者:sylla

一個(gè)項目隨著(zhù)業(yè)務(wù)模塊的不斷增加,系統會(huì )越來(lái)越龐大。如果參與開(kāi)發(fā)的人員越多,管理起來(lái)難度也很大。面對這樣的情況,首先想到的是模塊化插件式開(kāi)發(fā),根據業(yè)務(wù)模塊,拆分成各個(gè)獨立的插件,然后分配不同開(kāi)發(fā)人員開(kāi)發(fā),互相之間沒(méi)有依賴(lài)完全獨立。

這里介紹一種使用ASP.NET Core MVC 技術(shù)開(kāi)發(fā)Web后臺系統,使用插件式的方案。這個(gè)方案在項目中已經(jīng)使用效果覺(jué)得還不錯,這里把主要思想提取出來(lái),做個(gè)簡(jiǎn)單的demo分享下

一、創(chuàng )建主項目

這里使用的開(kāi)發(fā)工具是vs2019,ASP.NET Core 2.1。

創(chuàng )建一個(gè)ASP.NET Core MVC項目,項目結構如下圖1,完全是腳手架自動(dòng)創(chuàng )建好的標準項目

 

圖1

這里是一個(gè)簡(jiǎn)單的默認程序,在實(shí)際的項目中,特別是傳統信息管理web后臺系統,登錄,以及登錄之后的主框架,還有一些公共的模塊,可以在主項目里面做,不會(huì )隨業(yè)務(wù)而變動(dòng)的。然后各個(gè)具體業(yè)務(wù)模塊分成獨立的插件開(kāi)發(fā)。

這個(gè)主項目建立好之后,運行正常,如圖2

圖2

下面開(kāi)始做代碼部分添加,為了方便閱讀代碼以截圖提供,最后會(huì )附加完整的demo程序提供下載。

1、在Startup.cs類(lèi)里面增加如下代碼圖3,具體作用看注釋?zhuān)@里就不再贅述。

圖3

這里是把插件程序注冊到主程序里面,核心就是使用了ApplicationParts

2、Startup.cs類(lèi)里面還有一個(gè)地方要修改,增加一個(gè)Areas區域的路由映射,圖4


圖4

增加這個(gè)的具體原因等會(huì )看插件項目的說(shuō)明

3、還有為了演示能否訪(fǎng)問(wèn)到插件,這里增加兩個(gè)插件的超鏈接,具體到業(yè)務(wù)中,菜單肯定是數據庫動(dòng)態(tài)維護的。

修改Views/Shared/_Layout.cshtml代碼如下 圖5

圖5

二、創(chuàng )建插件項目

插件項目也是一個(gè)標準的ASP.NET Core MVC 項目。我這里為了演示,創(chuàng )建了兩個(gè)獨立的插件項目。如下圖6,圖7

 

圖6

 

圖7

插件項目說(shuō)明,插件是根據業(yè)務(wù)模塊劃分的,還有為了防止注冊到主項目之后路由命名的沖突,插件項目就使用MVC自帶的區塊Areas功能來(lái)存放。這里就是前面主項目要增加Areas路由映射的原因。然后刪除腳手架默認創(chuàng )建的外層控制器和視圖文件,因為主項目也有這樣同名的控制器路由,這些不刪除,到時(shí)候注冊到主項目,會(huì )出現重復路由錯誤。

插件項目增加各自的Areas,新建控制器如圖8,新建對應試圖如圖9。這里就添加幾個(gè)模擬數據。

 

圖8

圖9

到這里,把插件項目發(fā)布出來(lái)的xxx.dll和xxx.Views.dll,放到主項目里面去就可以運行了。

但是作為插件開(kāi)發(fā)者,每次需要把文件發(fā)布放到主項目去才能運行,對開(kāi)發(fā)調試都是不方便,因為插件開(kāi)發(fā)者可能就沒(méi)有主項目的權限,主項目是統一管理的。分配一個(gè)插件還每次都附帶一個(gè)主項目也比較繁瑣。

想到這里就可以反過(guò)來(lái)把主程序dll注冊到插件項目里面,這樣就可以在插件項目里面vs直接運行調試起來(lái)。

以插件1為例,Startup.cs類(lèi)里面增加如下代碼,圖10

圖10

這樣把主程序的dll提供,比如這個(gè)演示demo主程序就需要這兩個(gè)(Agile.WebPlatform.Main.dll與Agile.WebPlatform.Main.Views.dll)把他們放到插件項目的運行目錄。vs直接運行插件項目,就可以正常啟動(dòng)了。各種開(kāi)發(fā)調試完全不受其他影響。

插件里面直接啟動(dòng)調試圖11

圖11

運行效果如下 圖12

圖12

點(diǎn)擊插件1 顯示如下圖13

 

圖13

注意!這里雖然可以看到插件2,但點(diǎn)擊插件2是會(huì )提示找不到路由的,只能調試各自插件的內容。

開(kāi)發(fā)調試其他插件類(lèi)似,提供主項目的dll,各個(gè)插件項目完全可以獨立開(kāi)發(fā)自己的業(yè)務(wù)模塊,然后運行調試。

三、發(fā)布

最后,只要把插件項目的發(fā)布文件放到主項目的發(fā)布文件里面,使用主項目來(lái)運行,整個(gè)系統所有的插件都能正常使用了。這樣就做到了開(kāi)發(fā)調試獨立,最后交付插件自己的dll,放到主項目的發(fā)布里面就可以了。

如下圖14,是最后發(fā)布的程序

圖14

使用命令運行主項目,或者宿主到iis也一樣,如圖15,命令行運行

圖15

瀏覽器打開(kāi)訪(fǎng)問(wèn),如圖16

圖16

點(diǎn)擊插件1,顯示如圖17

 

圖17

點(diǎn)擊插件2,顯示如圖18

 

圖18

希望你看了之后有點(diǎn)收獲,代碼程序下面附件提供

demo程序


●編號337,輸入編號直達本文

●輸入m獲取文章目錄

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
DevText設計思考(求NHibernate Asp.net mvc牛人)
ASP.NET MVC(二)
ASP.NET Core MVC+Quartz實(shí)現定時(shí)任務(wù)可視化管理頁(yè)面
我來(lái)告訴你:VS2019開(kāi)發(fā)ASP.NET Core 3.0 Web項目,修改視圖后,刷新瀏覽器看不到修改后的效果怎么處理
十步教你ASP.NET MVC2項目升級MVC 3
開(kāi)源:Taurus.MVC 框架
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久