為什麼要使用ABP框架

為什麼要使用ABP框架

我們近幾年陸續開發了一些Web應用和桌面應用,需求或簡單或複雜,實現或優雅或醜陋。一個基本的事實是:我們只是積累了一些經驗或提高了對.NET的熟悉程度。

  隨著軟件開發經驗的不斷增加,我們發現其實很多工作都是重複機械的,而且隨著軟件複雜度的不斷提升,以往依靠經驗來完成一些簡單的增刪改查的做法已經行不通了。特別是用戶的要求越來越高,希望添加的功能越來多,目前這種開發模式,已經捉襟見肘。我很難想像如何在現有的模式下進行多系統的持續集成並添加一些新的特性。

  開發一個系統時,我們不可避免的會使用各種框架。數據持久層實現、日誌、ASP.NET MVC、IOC以及自動映射等。一個高質量的軟件系統往往還有全局容錯,消息隊列等組件。

  把上述這些組件組合到一起的時候,其複雜度會急劇上升。一般個人和小團隊的技術水平,很難設計出一個均衡協調的框架。對於傳統的所謂三層架構,我也是很持懷疑態度的。(月薪15k的程序員搞的三層架構,我也仔細讀過,也是問題多多,並不能解釋為什麼要使用三層)。

  其實,我們無非是希望在編程的時候,把大部分的注意力全部集中到業務實現上。不要過多的考慮基礎的軟件結構上的種種問題。應該有一個框框或者一種範式來提供基本的服務,如日誌、容錯和AOP,DI等。

   稍微正規一點的公司經過多年沈淀都形成了自己的內部軟件框架,他們在開發軟件的時候並不是從一片空白開始的。而是從一個非常牢固的基礎平台上開始構建的。這樣大大提高了開發速度,而且一種架構往往也決定了分工協作的模式。我們目前之所以無法分工協作,根本原因也是缺少一套成熟穩定的基礎開發架構和工作流程。

   目前.NET上有不少開源框架。比如Apworks和ABP。其中Apworks是中國人寫的一套開源框架。它是一個全功能的,不僅可以寫分佈式應用,也可以寫桌面應用。ABP的全稱是Asp.net boilerplate project(asp.net樣板工程)。是github上非常活躍的一個開源項目。它並沒有使用任何新的技術,只是由兩名架構師將asp.net開發中常用的一些工具整合到了一起,並且部分實現了DDD的概念。是一個開箱即用的框架,可以作為asp.net分佈式應用的一個良好起點。

  使用框架當然有代價,你必須受到框架強API的侵入,抑或要使用他的方言。而且這個框架想要吃透,也要付出很大的學習成本。但是好處也是顯而易見的。業界頂尖的架構師已經為你搭建好了一套基礎架構,很好的回應了關於一個軟件系統應該如何設計,如何規劃的問題,並且提供了一套最佳實踐和範例。

   學習雖然要付出成本,但是經過漫長的跋涉,我們從一無所知已經站到了工業級開發的門檻上。基於這個框架,我們可以很好的來劃分任務,進行單元測試等。大大降低了軟件出現BUG的機率。

   不能因為我們是業餘開發人員,就止步不前,要積極擁抱新的技術趨勢。不斷鞏固提升自己的基礎知識。革命尚未成功,諸君努力!

2016-07-28 置頂文章 

ABP (ASP.NET Boilerplate) 應用程式開發框架 新手教學 No.0 全篇索引

PS5