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