ASP.NET樣板項目ABP框架的特性總結
來源:易賢網(wǎng) 閱讀:2090 次 日期:2016-07-14 17:14:00
溫馨提示:易賢網(wǎng)小編為您整理了“ASP.NET樣板項目ABP框架的特性總結”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了ASP.NET樣板項目ABP框架的特性總結,ABP框架基于ASP.NET框架,用于開發(fā)Web應用程序,需要的朋友可以參考下

ABP是“ASP.NET Boilerplate Project (ASP.NET樣板項目)”的簡稱。

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

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

ABP的官方網(wǎng)站:http://www.aspnetboilerplate.com

ABP在Github上的開源項目:https://github.com/aspnetboilerplate

ASP.NET Boilerplate采用了以下技術:

多語言/本地化支持

多租戶支持(每個租戶的數(shù)據(jù)自動隔離,業(yè)務模塊開發(fā)者不需要在保存和查詢數(shù)據(jù)時寫相應代碼)

軟刪除支持(繼承相應的基類或實現(xiàn)相應接口,會自動實現(xiàn)軟刪除)

統(tǒng)一的異常處理(應用層幾乎不需要處理自己寫異常處理代碼)

數(shù)據(jù)有效性驗證(Asp.NET MVC只能做到Action方法的參數(shù)驗證,ABP實現(xiàn)了Application層方法的參數(shù)有效性驗證)

日志記錄(自動記錄程序異常)

模塊化開發(fā)(每個模塊有獨立的EF DbContext,可單獨指定數(shù)據(jù)庫)

Repository倉儲模式(已實現(xiàn)了Entity Framework、NHibernate、MangoDB、內存數(shù)據(jù)庫)

Unit Of Work工作單元模式(為應用層和倉儲層的方法自動實現(xiàn)數(shù)據(jù)庫事務)

EventBus實現(xiàn)領域事件(Domain Events)

DLL嵌入資源管理

通過Application Services自動創(chuàng)建Web Api層(不需要寫ApiController層了)

自動創(chuàng)建Javascript 的代理層來更方便使用Web Api

封裝一些Javascript 函數(shù),更方便地使用ajax、消息框、通知組件、忙狀態(tài)的遮罩層等等

ABP是什么?

ABP是為新的現(xiàn)代Web應用程序使用最佳實踐和使用最流行工具的一個起點??勺鳛橐话阌猛镜膽贸绦虻幕A框架或項目模板。它的功能包括:

服務器端:

基于最新的.NET技術 (目前是ASP.NET MVC 5、Web API 2、C# 5.0,在ASP.NET 5正式發(fā)布后會升級)

實現(xiàn)領域驅動設計(實體、倉儲、領域服務、領域事件、應用服務、數(shù)據(jù)傳輸對象,工作單元等等)

實現(xiàn)分層體系結構(領域層,應用層,展現(xiàn)層和基礎設施層)

提供了一個基礎架構來開發(fā)可重用可配置的模塊集成一些最流行的開源框架/庫,也許有些是你正在使用的。

提供了一個基礎架構讓我們很方便地使用依賴注入(使用Castle Windsor作為依賴注入的容器)

提供Repository倉儲模式支持不同的ORM(已實現(xiàn)Entity Framework 、NHibernate、MangoDb和內存數(shù)據(jù)庫)

支持并實現(xiàn)數(shù)據(jù)庫遷移(EF 的 Code first)

模塊化開發(fā)(每個模塊有獨立的EF DbContext,可單獨指定數(shù)據(jù)庫)

包括一個簡單的和靈活的多語言/本地化系統(tǒng)

包括一個 EventBus來實現(xiàn)服務器端全局的領域事件

統(tǒng)一的異常處理(應用層幾乎不需要處理自己寫異常處理代碼)

數(shù)據(jù)有效性驗證(Asp.NET MVC只能做到Action方法的參數(shù)驗證,ABP實現(xiàn)了Application層方法的參數(shù)有效性驗證)

通過Application Services自動創(chuàng)建Web Api層(不需要寫ApiController層了)

提供基類和幫助類讓我們方便地實現(xiàn)一些常見的任務

使用“約定優(yōu)于配置原則”

客戶端:

Bootstrap、Less、AngularJs、jQuery、Modernizr和其他JS庫: jQuery.validate、jQuery.form、jQuery.blockUI、json2等

為單頁面應用程序(AngularJs、Durandaljs)和多頁面應用程序(Bootstrap+Jquery)提供了項目模板。

自動創(chuàng)建Javascript 的代理層來更方便使用Web Api

封裝一些Javascript 函數(shù),更方便地使用ajax、消息框、通知組件、忙狀態(tài)的遮罩層等等

ABP不是什么?

ABP 提供了一個應用程序開發(fā)模型用于最佳實踐。它擁有基礎類、接口和工具使我們容易建立起可維護的大規(guī)模的應用程序。

然而:

它不是RAD工具之一,RAD工具的目的是無需編碼創(chuàng)建應用程序。相反,ABP提供了一種編碼的最佳實踐。

它不是一個代碼生成工具。在運行時雖然它有一些特性構建動態(tài)代碼,但它不能生成代碼。

它不是一個一體化的框架。相反,它使用流行的工具/庫來完成特定的任務(例如用EF做ORM,用Log4Net做日志記錄,使得Castle Windsor作為賴注入容器, AngularJs 用于SPA 框架)。

就我使用了ABP幾個月的經(jīng)驗來看,雖然ABP不是RAD,但是用它開發(fā)項目絕對比傳統(tǒng)三層架構要快很多。

雖然ABP不是代碼生成工具,但因為有了它,使我們項目的代碼更簡潔規(guī)范,這有利于使用代碼生成工具。

我自己使用VS2013的Scaffolder+T4開發(fā)的代碼生成器,可根據(jù)領域對象的UML類圖自動生成全部前后端代碼和數(shù)據(jù)庫,簡單的CURD模塊幾乎不需要編寫代碼,有復雜業(yè)務邏輯的模塊主要補充領域層代碼即可。這樣就能把時間多花在領域模型的設計上,減少寫代碼的時間。

更多信息請查看技術文章
易賢網(wǎng)手機網(wǎng)站地址:ASP.NET樣板項目ABP框架的特性總結

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權所有:易賢網(wǎng)