日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

什么是ASP.NET Boilerplate Project(ABP)框架

發布時間:2023/12/10 asp.net 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是ASP.NET Boilerplate Project(ABP)框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用.NET技術進行開發已經多年,偶爾一次網絡上搜索.NET開發框架,看到了ABP這個框架,引起了我極大的興趣,于是決定對該框架進行深入學習和研究,并將過程全部記錄如下,對自己也是一次學習和總結,同時后繼我也會分享出來,幫到更多.NET開發者在項目開發中能獨擋一面,自己搭建框架,提升開發能力和系統架構水平,為今后的職業發展起到助推作用。

一、?什么是ABP框架?

ABP框架全稱為“ASP.NET Boilerplate Project”,中文翻譯為“ ASP.NET樣板項目”,誕生的主要目的就是為了讓.NET程序員“秒變”架構師,將.NET企業級項目的主流開發技術、最先進的架構整合起來,讓.NET工程師能夠更快的開發出更好的項目。

ABP官方網站:http://www.aspnetboilerplate.com/ (這個十分重要,開發項目需從官網生成框架源碼,從而在VS中載入框架項目的sln文件)

ABP GitHub源碼地址:https://github.com/aspnetboilerplate

ASP.NET Boilerplate是一個用最佳實踐和流行技術開發現代WEB應用程序的新起點,它旨在成為一個通用的WEB應用程序框架和項目模板。

ASP.NET Boilerplate 基于DDD的經典分層架構思想,實現了眾多DDD的概念(但沒有實現所有DDD的概念)。

框架所包含技術如下:

1、 .NET MVC 5、Web API 2、C# 5.0。

2、領域驅動設計,如實體、倉儲、領域服務、領域事件、應用服務、數據傳輸對象、工作單元等。

3、分層體系結構:基礎設施層 -> 領域層 -> 應用層 -> 展現層。

4、提供一個基礎架構來開發可重用可配置的模塊。

5、集成現今主流流行的前端開發框架(Bootstrap、Less、AngularJs、jQuery、Modernizr、jQuery.validate、jQuery.form、jQuery.blockUI、json2等)。

6、提供一個基礎架構實現IOC(依賴注入,主要采用Castle Windsor)。

7、支持并實現數據遷移,這里主要采用Entity Framework。

8、模塊化開發,每個模塊可單獨指定數據庫,擁有獨立的EF DbContext。

9、包含一個簡單靈活的多語言/本地系統。

10、通過EventBus實現服務端全局領域事件。

11、統一異常處理,應用層不需要自己寫異常處理代碼。

12、提供針對Application層方法的參數有效性認證。

13、通過Application Service創建Web API層,無需編寫ApiController。

14、提供基類幫助用戶實現一些常見任務。

15、約定優于配置。

16、Zero模塊提供身份驗證、授權管理、用戶&角色管理、系統設置存取管理、審計日志。

ASP.NET ZERO 是 利用ABP框架搭建的模板項目,它會提供預建的頁面及強大的基礎設施架構。利用它提供的基礎框架代碼能讓你快速的開發你的應用層。

使用說明:

1、先編譯成功,Nuget下載ABP的依賴dll

2、在建立一個名為AbpZeroTemplate的數據庫,并修改web.config里的連接字符串

3、選擇MyCompanyName.AbpZeroTemplate.Web為啟動項,F5運行,此時會自動生成數據庫表結構

4、VS菜單:工具->Nuget 程序包管理器->程序包管理器控制臺

默認項目里選擇:MyCompanyName.AbpZeroTemplate.EntityFramework

PM>update-database 回車

5、再次F5運行即可進入登錄,初始帳號:admin 密碼:123qwe

6、關于重命名查找:namespace MyCompanyName. 替換為:namespace ABC.

?

?

?

其中,ABP的體系結構圖如下:

?

一個簡單的解決方案,大致包含5個項目,每一層可以用一個或多個程序集來實現。

?

1、領域層(Domain)

領域層就是業務層,是一個項目的核心,所有業務規則都應該在領域層實現。

實體(Entity)實體代表業務領域的數據和操作,在實踐中,通過用來映射成數據庫表。

倉儲(Repository)倉儲用來操作數據庫進行數據存取。倉儲接口在領域層定義,而倉儲的實現類應該寫在基礎設施層。

領域服務(Domain service)當處理的業務規則跨越兩個(及以上)實體時,應該寫在領域服務方法里面。

領域事件(Domain Event)在領域層某些特定情況發生時可以觸發領域事件,并且在相應地方捕獲并處理它們。

工作單元(Unit of Work)工作單元是一種設計模式,用于維護一個由已經被修改(如增加、刪除和更新等)的業務對象組成的列表。它負責協調這些業務對象的持久化工作及并發問題。

2、應用層(Application)

應用層提供一些應用服務(Application Services)方法供展現層調用。一個應用服務方法接收一個DTO(數據傳輸對象)作為輸入參數,使用這個輸入參數執行特定的領域層操作,并根據需要可返回另一個DTO。在展現層到領域層之間,不應該接收或返回實體(Entity)對象,應該進行DTO映射。一個應用服務方法通常被認為是一個工作單元(Unit of Work)。用戶輸入參數的驗證工作也應該在應用層實現。ABP提供了一個基礎架構讓我們很容易地實現輸入參數有效性驗證。建議使用一種像AutoMapper這樣的工具來進行實體與DTO之間的映射。

3、基礎設施層(Infrastructure)

當在領域層中為定義了倉儲接口,應該在基礎設施層中實現這些接口。可以使用ORM工具,例如EntityFramework或NHibernate。ABP的基類已經提供了對這兩種ORM工具的支持。數據庫遷移也被用于這一層。

4、Web與展現層(Web&Presentation)

Web層使用ASP.NET MVC和Web API來實現。可分別用于多頁面應用程序(MPA)和單頁面應用程序(SPA)。在SPA中,所有資源被一次加載到客戶端瀏覽器中(或者先只加載核心資源,其他資源懶加載),然后通過AJAX調用服務端WebApi接口獲取數據,再根據數據生成HTML代碼。不會整個頁面刷新。現在已經有很多SPA的JS框架,例如: AngularJs、 DurandalJs、BackboneJs、EmberJs。 ABP可以使用任何類似的前端框架,但是ABP提供了一些幫助類,讓我們更方便地使用AngularJs和DurandalJs。

在經典的多頁面應用(MPA)中,客戶端向服務器端發出請求,服務器端代碼(ASP.NET MVC控制器)從數據庫獲得數據,并且使用Razor視圖生成HTML。這些被生成后的HTML頁面被發送回客戶端顯示。每顯示一個新的頁面都會整頁刷新。

SPA和MPA涉及到完全不同的體系結構,也有不同的應用場景。一個管理后臺適合用SPA,博客就更適合用MPA,因為它更利于被搜索引擎抓取。

SignalR是一種從服務器到客戶端發送推送通知的完美工具。它能給用戶提供豐富的實時的體驗。

已經有很多客戶端的Javascript框架或庫,JQuery是其中最流行的,并且它有成千上萬免費的插件。使用Bootstrap可以讓我們更輕松地完成寫Html和CSS的工作。

ABP也實現了根據Web API接口自動創建 Javascript的代碼函數,來簡化JS對Web Api的調用。還有把服務器端的菜單、語言、設置等生成到JS端。(但是在我自己的項目中,我是把這些自動生成功能關閉的,因為必要性不是很大,而這些又會比較影響性能)。

ABP會自動處理服務器端返回的異常,并以友好的界面提示用戶。

5、其他層:

ABP使用Castle Windsor為整個程序框架提供依賴注入的功能。使用Log4Net日志記錄組件,提供給其他各層調用以進行日志記錄。

總結

以上是生活随笔為你收集整理的什么是ASP.NET Boilerplate Project(ABP)框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲97视频 | 肉嫁高柳家 高清 | 成人免费xxxxx在线视频 | 国模大胆一区二区三区 | 色婷婷伊人 | 国产精品91视频 | 国产传媒一区二区三区 | 日韩欧美国产另类 | 一区二区啪啪啪 | 国产一级做a爰片久久毛片男 | 午夜视频在线免费 | 日韩专区中文字幕 | 五月伊人网 | 久久精品无码一区二区三区毛片 | 成人h片在线观看 | 2020国产精品 | 337p亚洲欧洲色噜噜噜 | 久久精品99久久久久久久久 | 日本久久久久久久久久 | 黄色免费网站在线看 | 婷婷狠狠 | 波多野结衣免费在线视频 | 国产一区二区三区福利 | 国产人人插| 日韩伊人 | 天天操天天爱天天干 | 在线视频观看免费 | 亚洲日本精品 | 伊人成人22 | 日韩精品一卡 | 黑人又大又粗又长 | 一区二区日韩精品 | 日本三级中文字幕 | 污视频免费在线观看 | 国产熟妇一区二区三区四区 | 四虎5151久久欧美毛片 | 亚洲欧美一区二区三区孕妇 | 久久久久久久爱 | 日本在线视频免费观看 | 老鸭窝久久 | 欧美性色网站 | 欧美激情va永久在线播放 | 亚洲经典在线观看 | 一级片观看 | 成人国产 | 欧美一区二区三区在线免费观看 | 尤物精品| 九色91 | 成片免费观看视频大全 | 欧美成人精品欧美一级 | 在线观看成人 | 毛茸茸多毛bbb毛多视频 | av黄色天堂 | 热久久中文 | 手机在线免费av | 99久久精品久久久久久清纯 | 亚洲av乱码一区二区 | 日韩欧美一区二区视频 | 精品人妻中文无码av在线 | 人妻巨大乳hd免费看 | 男人靠女人免费视频网站 | 精品人妻无码一区二区三区蜜桃一 | 日韩一级完整毛片 | 91精品日韩 | 国产av无码专区亚洲精品 | 久久这里只有精品久久 | 国产高清一区二区三区四区 | 国产精品爽爽 | 欧美黄色高清视频 | 黄色毛毛片| 国产成人午夜精品无码区久久 | 超级碰在线视频 | 国产+高潮+白浆+无码 | 欧美一区二区久久久 | 欧美影院在线观看 | 中文在线观看免费视频 | 99re这里有精品 | 国产xxx| 九九热精品视频在线 | 性――交――性――乱a | 日韩精品成人av | 香蕉久久精品日日躁夜夜躁 | 日韩不卡一二三 | 男人私人影院 | 欧美理论在线观看 | 久久国产经典视频 | 日本不卡视频 | 欧美视频一区二区 | 麻豆国产精品一区 | 伊人久久免费 | 午夜少妇| 国产欧美一区二 | 涩涩视频在线观看免费 | 国产aaa大片 | 黄色精品网站 | 亚洲精品一区二区三区在线 | 奇米影视网| 91人人视频 | 国产成人一区二区三区小说 |