濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > ASP.NET樣板項(xiàng)目ABP框架的特性總結(jié)

ASP.NET樣板項(xiàng)目ABP框架的特性總結(jié)

熱門標(biāo)簽:網(wǎng)絡(luò)電話外呼系統(tǒng)上海 聯(lián)通官網(wǎng)400電話辦理 400電話辦理怎么樣 百應(yīng)電話機(jī)器人外呼系統(tǒng) 蘇州如何辦理400電話 外呼電話機(jī)器人成本 西寧呼叫中心外呼系統(tǒng)線路商 臨沂智能電話機(jī)器人加盟 地圖標(biāo)注軟件免費(fèi)下載

ABP是“ASP.NET Boilerplate Project (ASP.NET樣板項(xiàng)目)”的簡(jiǎn)稱。

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

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

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

ABP在Github上的開源項(xiàng)目:https://github.com/aspnetboilerplate
ASP.NET Boilerplate采用了以下技術(shù):

  • 多語(yǔ)言/本地化支持
  • 多租戶支持(每個(gè)租戶的數(shù)據(jù)自動(dòng)隔離,業(yè)務(wù)模塊開發(fā)者不需要在保存和查詢數(shù)據(jù)時(shí)寫相應(yīng)代碼)
  • 軟刪除支持(繼承相應(yīng)的基類或?qū)崿F(xiàn)相應(yīng)接口,會(huì)自動(dòng)實(shí)現(xiàn)軟刪除)
  • 統(tǒng)一的異常處理(應(yīng)用層幾乎不需要處理自己寫異常處理代碼)
  • 數(shù)據(jù)有效性驗(yàn)證(Asp.NET MVC只能做到Action方法的參數(shù)驗(yàn)證,ABP實(shí)現(xiàn)了Application層方法的參數(shù)有效性驗(yàn)證)
  • 日志記錄(自動(dòng)記錄程序異常)
  • 模塊化開發(fā)(每個(gè)模塊有獨(dú)立的EF DbContext,可單獨(dú)指定數(shù)據(jù)庫(kù))
  • Repository倉(cāng)儲(chǔ)模式(已實(shí)現(xiàn)了Entity Framework、NHibernate、MangoDB、內(nèi)存數(shù)據(jù)庫(kù))
  • Unit Of Work工作單元模式(為應(yīng)用層和倉(cāng)儲(chǔ)層的方法自動(dòng)實(shí)現(xiàn)數(shù)據(jù)庫(kù)事務(wù))
  • EventBus實(shí)現(xiàn)領(lǐng)域事件(Domain Events)
  • DLL嵌入資源管理
  • 通過(guò)Application Services自動(dòng)創(chuàng)建Web Api層(不需要寫ApiController層了)
  • 自動(dòng)創(chuàng)建Javascript 的代理層來(lái)更方便使用Web Api
  • 封裝一些Javascript 函數(shù),更方便地使用ajax、消息框、通知組件、忙狀態(tài)的遮罩層等等

ABP是什么?
ABP是為新的現(xiàn)代Web應(yīng)用程序使用最佳實(shí)踐和使用最流行工具的一個(gè)起點(diǎn)??勺鳛橐话阌猛镜膽?yīng)用程序的基礎(chǔ)框架或項(xiàng)目模板。它的功能包括:

服務(wù)器端:

  • 基于最新的.NET技術(shù) (目前是ASP.NET MVC 5、Web API 2、C# 5.0,在ASP.NET 5正式發(fā)布后會(huì)升級(jí))
  • 實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(實(shí)體、倉(cāng)儲(chǔ)、領(lǐng)域服務(wù)、領(lǐng)域事件、應(yīng)用服務(wù)、數(shù)據(jù)傳輸對(duì)象,工作單元等等)
  • 實(shí)現(xiàn)分層體系結(jié)構(gòu)(領(lǐng)域?qū)?,?yīng)用層,展現(xiàn)層和基礎(chǔ)設(shè)施層)
  • 提供了一個(gè)基礎(chǔ)架構(gòu)來(lái)開發(fā)可重用可配置的模塊
  • 集成一些最流行的開源框架/庫(kù),也許有些是你正在使用的。
  • 提供了一個(gè)基礎(chǔ)架構(gòu)讓我們很方便地使用依賴注入(使用Castle Windsor作為依賴注入的容器)
  • 提供Repository倉(cāng)儲(chǔ)模式支持不同的ORM(已實(shí)現(xiàn)Entity Framework 、NHibernate、MangoDb和內(nèi)存數(shù)據(jù)庫(kù))
  • 支持并實(shí)現(xiàn)數(shù)據(jù)庫(kù)遷移(EF 的 Code first)
  • 模塊化開發(fā)(每個(gè)模塊有獨(dú)立的EF DbContext,可單獨(dú)指定數(shù)據(jù)庫(kù))
  • 包括一個(gè)簡(jiǎn)單的和靈活的多語(yǔ)言/本地化系統(tǒng)
  • 包括一個(gè) EventBus來(lái)實(shí)現(xiàn)服務(wù)器端全局的領(lǐng)域事件
  • 統(tǒng)一的異常處理(應(yīng)用層幾乎不需要處理自己寫異常處理代碼)
  • 數(shù)據(jù)有效性驗(yàn)證(Asp.NET MVC只能做到Action方法的參數(shù)驗(yàn)證,ABP實(shí)現(xiàn)了Application層方法的參數(shù)有效性驗(yàn)證)
  • 通過(guò)Application Services自動(dòng)創(chuàng)建Web Api層(不需要寫ApiController層了)
  • 提供基類和幫助類讓我們方便地實(shí)現(xiàn)一些常見的任務(wù)
  • 使用“約定優(yōu)于配置原則”

客戶端:

  • Bootstrap、Less、AngularJs、jQuery、Modernizr和其他JS庫(kù): jQuery.validate、jQuery.form、jQuery.blockUI、json2等
  • 為單頁(yè)面應(yīng)用程序(AngularJs、Durandaljs)和多頁(yè)面應(yīng)用程序(Bootstrap+Jquery)提供了項(xiàng)目模板。
  • 自動(dòng)創(chuàng)建Javascript 的代理層來(lái)更方便使用Web Api
  • 封裝一些Javascript 函數(shù),更方便地使用ajax、消息框、通知組件、忙狀態(tài)的遮罩層等等

 

 

ABP不是什么?
ABP 提供了一個(gè)應(yīng)用程序開發(fā)模型用于最佳實(shí)踐。它擁有基礎(chǔ)類、接口和工具使我們?nèi)菀捉⑵鹂删S護(hù)的大規(guī)模的應(yīng)用程序。

然而:

  • 它不是RAD工具之一,RAD工具的目的是無(wú)需編碼創(chuàng)建應(yīng)用程序。相反,ABP提供了一種編碼的最佳實(shí)踐。
  • 它不是一個(gè)代碼生成工具。在運(yùn)行時(shí)雖然它有一些特性構(gòu)建動(dòng)態(tài)代碼,但它不能生成代碼。
  • 它不是一個(gè)一體化的框架。相反,它使用流行的工具/庫(kù)來(lái)完成特定的任務(wù)(例如用EF做ORM,用Log4Net做日志記錄,使得Castle Windsor作為賴注入容器, AngularJs 用于SPA 框架)。

 就我使用了ABP幾個(gè)月的經(jīng)驗(yàn)來(lái)看,雖然ABP不是RAD,但是用它開發(fā)項(xiàng)目絕對(duì)比傳統(tǒng)三層架構(gòu)要快很多。

雖然ABP不是代碼生成工具,但因?yàn)橛辛怂?,使我們?xiàng)目的代碼更簡(jiǎn)潔規(guī)范,這有利于使用代碼生成工具。

我自己使用VS2013的Scaffolder+T4開發(fā)的代碼生成器,可根據(jù)領(lǐng)域?qū)ο蟮腢ML類圖自動(dòng)生成全部前后端代碼和數(shù)據(jù)庫(kù),簡(jiǎn)單的CURD模塊幾乎不需要編寫代碼,有復(fù)雜業(yè)務(wù)邏輯的模塊主要補(bǔ)充領(lǐng)域?qū)哟a即可。這樣就能把時(shí)間多花在領(lǐng)域模型的設(shè)計(jì)上,減少寫代碼的時(shí)間。

 

您可能感興趣的文章:
  • 解析ABP框架中的數(shù)據(jù)傳輸對(duì)象與應(yīng)用服務(wù)
  • ABP框架中的日志功能完全解析
  • 詳解ABP框架的參數(shù)有效性驗(yàn)證和權(quán)限驗(yàn)證
  • 詳解ABP框架中領(lǐng)域?qū)拥念I(lǐng)域事件Domain events
  • 解析ABP框架中的事務(wù)處理和工作單元
  • 詳解ABP框架中的數(shù)據(jù)過(guò)濾器與數(shù)據(jù)傳輸對(duì)象的使用
  • 解析ABP框架領(lǐng)域?qū)又械膶?shí)體類與倉(cāng)儲(chǔ)類
  • 詳解ABP框架中Session功能的使用方法
  • 詳解ABP框架中的日志管理和設(shè)置管理的基本配置
  • ABP框架的基礎(chǔ)配置及依賴注入講解
  • ABP框架的體系結(jié)構(gòu)及模塊系統(tǒng)講解
  • 基于ASP.NET MVC的ABP框架入門學(xué)習(xí)教程
  • ABP框架中導(dǎo)航菜單的使用及JavaScript API獲取菜單的方法

標(biāo)簽:中衛(wèi) 慶陽(yáng) 清遠(yuǎn) 聊城 臨夏 甘肅 海西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET樣板項(xiàng)目ABP框架的特性總結(jié)》,本文關(guān)鍵詞  ASP.NET,樣板,項(xiàng)目,ABP,框架,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP.NET樣板項(xiàng)目ABP框架的特性總結(jié)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于ASP.NET樣板項(xiàng)目ABP框架的特性總結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    馆陶县| 疏附县| 邯郸市| 桂平市| 岢岚县| 册亨县| 鱼台县| 赤水市| 田林县| 双峰县| 潜江市| 安徽省| 张家口市| 阜平县| 华池县| 壤塘县| 合肥市| 托克逊县| 兰考县| 岑巩县| 育儿| 宜州市| 新沂市| 商水县| 陇川县| 永胜县| 安康市| 佛坪县| 巴马| 交口县| 稷山县| 闽清县| 沈阳市| 任丘市| 周至县| 夏邑县| 邮箱| 武城县| 华坪县| 虹口区| 湖南省|