簡(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è)快速示例

讓我們從一個(gè)簡(jiǎn)單的類(lèi)來(lái)體會(huì)一下ABP帶來(lái)的便利:

大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)

public class TaskAppService:ApplicationService,ITaskAppService
{    private readonly IRepository<Task> _taskRepository;    public TaskAppService(IRepository<Task> taskRepository)
    {
        _taskRepository = taskRepository;
    }

    [AbpAuthorize(MyPermissions.UpdatingTasks)]