日韩性视频-久久久蜜桃-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)框架的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 在线免费成人网 | 痴女扩张宫交脱垂重口小说 | 91小视频在线观看 | 亚洲欧美一区二区三区在线 | 成人观看视频 | 欧美少妇一区二区三区 | 激情高潮呻吟抽搐喷水 | 中文字幕精品视频在线观看 | 日本不卡一二 | 樱花av在线| 欧美精品日韩精品 | 久久中文字幕电影 | 国产看黄网站 | 亚洲国产成人精品激情在线 | 波多在线视频 | 99国产精品99久久久久久 | 神马午夜场 | 伊人国产在线 | 久久aⅴ国产欧美74aaa | 欧美aaaaaa| 国产精品一线二线三线 | 久久两性视频 | 精品一区二区无码 | 蜜桃av噜噜一区二区三区小说 | 成年人在线视频免费观看 | 亚洲aⅴ乱码精品成人区 | 善良的老师伦理bd中字 | 日韩精品伦理 | 亚洲熟妇无码一区二区三区 | 奇米影视一区二区 | 亚洲黄a | 国产免费无遮挡 | 国产美女永久无遮挡 | 日本美女性生活视频 | 九九九九热 | 日本免费www | 一区二区三区精品在线观看 | 可以免费看的av网站 | 免费成人美女女 | 国产在线观看免费高清 | 国产无人区码熟妇毛片多 | 伊人久久青青草 | www.狠狠| 亚洲一区二区三区四区在线播放 | 不卡中文 | 黑人vs亚洲人在线播放 | 国产成人久久久 | 这里只有精品在线观看 | 成年人的天堂 | a∨色狠狠一区二区三区 | 天天操夜夜干 | 久久久久毛片 | 在线亚洲成人 | 欧美精品久久99 | 粉嫩av一区二区三区天美传媒 | 亚洲午夜一区二区三区 | 正在播放国产精品 | 日韩乱码人妻无码中文字幕 | 在线免费观看a视频 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 色婷婷18| 亚洲18在线看污www麻豆 | 日韩免| 色噜| 国产成人精品亚洲日本在线观看 | 亚洲午夜精品久久久久久app | 我想看一级黄色片 | 一级v片 | 日韩无码专区 | 天堂资源中文在线 | 波多野结衣视频网址 | 久久久最新| 天天色综合av | 成人性生交大片免费看vrv66 | 亚洲春色在线观看 | 热热色国产 | 中文无码一区二区三区在线观看 | 国产经典一区 | 精品一区二区三区蜜桃 | 日本黄a| 夜夜爽av | 国产一区二区中文字幕 | 亚洲最大福利视频 | 欧美另类视频在线观看 | 亚洲欧美一区二区三区在线 | 午夜激情福利在线 | 九一国产在线观看 | 久久99精品久久久久久琪琪 | 奇米影视一区二区三区 | 国产激情成人 | 美女被娇喘流出白 | 国产精久久久 | 欧美日韩另类在线 | 欧美14sex性hd摘花 | 操三八男人的天堂 | 欧美激情一区二区三区免费观看 | 天天爽夜夜爽夜夜爽 | av在线官网 | 国产femdom调教7777 |