選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
3 分鐘閱讀時間 (529 個字)

擁抱開源 - AspNetBoilerplate(ABP) 框架簡介

Abplogo

身為一個軟體工程師一定都碰過開源軟體 (Open Source),從大家耳熟能詳的平台 Github 到前端熱門三大框架 Angular, React, Vue,或是微軟推出的跨平台後端框架 .Net Core,今天要跟大家介紹的是建立在 .Net 技術基礎上的開源框架 ASP.NET Boilerplate Project (ASP.NET樣板項目) ,簡稱 Abp。

在最近的一個專案中我們身為顧問方協助客戶導入了這個擁有豐沛社群資源的 Abp 框架,為什麼會選擇它? 因為該專案時程非常趕,希望能夠快速開發,同時客戶希望能幫助團隊建立起良好的開發習慣、減少技術債,以利後續維護工作。

而 Abp 特性剛好符合需求,這個框架採用了領域驅動設計(Domain-Driven Design, DDD) 讓開發能趨於最佳的實踐,讓系統開發過程中能實踐 SOLID 精神,最終系統也能有 Clean Architecture 的風味。


 Abp (ASP.NET Boilerplate Project)

 習慣取代配置

在開發過程中使用"最小化或零設定"的方式實踐通用的應用程式.

在 .Net MVC 的時代就常強調"習慣取代配置"的特性,Abp 更是大大的強化了這個設計,撰寫符合的命名習慣(convention) 就能享有以下許多好處,減少了許多 Routine 的程式撰寫工作

  • 自動對服務進行相依性注入(DI)的註冊
  • 通過命名習慣將應用程式服務公開為 HTTP API
  • 為實體(Entity)提供預設 Repository.
  • 根據 Web 請求或應用程式服務方法管理工作單元(UnitOfWork),自動處理交易(Transaction)
  • 為實體(Entity)發佈建立,更新和刪除事件
以下唯一個 Service 的撰寫範例,一旦符合命名規範,繼承特定基底類別,就能擁有自動 DI、驗證、紀錄稽核資訊、處理交易......等等功能

 橫切關注點 & 不重造輪子

保持原始碼整潔,專注於您自己的業務邏輯

不要浪費時間一次又一次地實作通用的應用程式需求

透過橫切關注點,Abp 將我們在開發上各層常用到的功能分離出來,而這些 Abp 所提供的完善通用基礎設施都是來自於熱門的第三方套件,使我們不僅能不重造輪子也能使用習慣的套件,專注於開發業務需求,功能如下:

  • 認證與授權(Authorization)
  • 資料庫連接、交易管理(Unit Of Work)
  • 異常處理(Exception Handling)
  • 驗證(Validation)
  • 紀錄(Logging)
  • 稽核日誌(Audit Logging)
  • 快取(Caching)
  • 多租戶相關(Multi Tenancy & Feature Management)
  • 依賴注入(Dependency Injection)
  • ......

 結語

以上粗略地介紹了 Abp 框架,之後的文章中我們將針對功能面或架構面更進一步的講解,敬請期待~

心靈成長-"原子習慣"摘要分享 #後篇
Git config includeif

相關文章

 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2024/04/19, 週五

Captcha 圖像