簡(jiǎn)介
我們總是對(duì)不同的需求開(kāi)發(fā)不同的應(yīng)用。但至少在某些層面上,一次又一次地重復(fù)實(shí)現(xiàn)通用的和類(lèi)似的功能。如:授權(quán),驗(yàn)證,異常處理,日志,本地化,數(shù)據(jù)庫(kù)連接管理,設(shè)置管理,審核日志等功能。所以我們創(chuàng)建架構(gòu)和最佳實(shí)踐,如分層和模塊架構(gòu),DDD,依賴注入等,并嘗試開(kāi)發(fā)應(yīng)用時(shí)基于一些約定。
由于所有這些是非常耗時(shí)而且很難單獨(dú)創(chuàng)建并可適用于每個(gè)項(xiàng)目,許多公司創(chuàng)建自己的框架,他們用自己的框架能快速開(kāi)發(fā)新應(yīng)用而且不出錯(cuò)。但不是所有的公司都是幸運(yùn)的,大部分公司沒(méi)有時(shí)間,預(yù)算和團(tuán)隊(duì)來(lái)開(kāi)發(fā)好的框架。他們甚至都沒(méi)有可能創(chuàng)建一個(gè)框架,因?yàn)榫帉?xiě)文檔,培訓(xùn)開(kāi)發(fā)人員和維護(hù)框架都是非常困難的。
ASP.NET Boilerplate (ABP) 是一個(gè)開(kāi)源并且有豐富文檔的應(yīng)用框架,開(kāi)發(fā)宗旨是:“為所有公司,所有開(kāi)發(fā)人員,開(kāi)發(fā)出一個(gè)通用框架!”,而且不只是一個(gè)框架,同時(shí)提供一個(gè)強(qiáng)大的基于DDD的構(gòu)架模型和最佳實(shí)踐。
讓我們從一個(gè)簡(jiǎn)單的類(lèi)來(lái)體會(huì)一下ABP帶來(lái)的便利:
public class TaskAppService:ApplicationService,ITaskAppService { private readonly IRepository<Task> _taskRepository; public TaskAppService(IRepository<Task> taskRepository) { _taskRepository = taskRepository; } [AbpAuthorize(MyPermissions.UpdatingTasks)]