干貨!請碼住——點此領取免費開源框架


何為框架

框架(Framework)是整個或部分系統的可重用設計,表現為一組抽象構件及構件實例間交互的方法; 框架是可被應用開發者定制的應用骨架。


 

擁有一套企業級開發框架有哪些好處?

對於一個軟件公司或者互聯網公司來說,開發成本是一個公司非常巨大的成本。而對於一個創業的軟件公司來說,開發成本在前期幾乎是全部的成本。而約定一個統一的框架和技術體系,對於一個開發團隊來說,能夠減少很多成本和少走很多彎路。

擁有一套統一的優秀的企業級開發框架意味着有如下好處:

  • 意味着統一了主體的技術體系,可以最大限度的減少后續的開發、維護、擴展成本。
  • 意味着擁有了一套成熟的解決方案。
  • 意味着保障了代碼的穩定性、延續性和可持續開發,而不是代碼全家桶。很多初創團隊的產品的初始代碼來自於五湖四海(各自成員的前公司的代碼段或技術積累),當開發到一定程度,隨着人員的交替,維護和擴展幾乎不在可能。一份好的代碼是一個產品的根本,否則后續的產品開發都將無從下手。 這里分享一下世上最爛代碼的結果:史上最爛代碼。
  • 極大的提高了產品的生產效率。
  • 建立有效的開發、知識、體系積累。軟件開發是一種知識活動,因此知識的聚集和積累是至關重要的。框架能夠采用一種結構化的方式對某個特定的業務領域進行描述,也就是將這個領域相關的技術以代碼、文檔、模型等方式固化下來。
  • 減少重復開發。簡單的說,大大提高了代碼的復用性。畢竟每次打仗都要臨陣磨槍,耽誤時間不說,質量和速度都沒法保障。
  • 有利於提高團隊水平。框架往往有相應的規范、約定、設計模式、理念、技術點,通過框架的源代碼既可以輸出開發和技術理念,提高團隊成員的水平,又可以規范代碼,而且可以降低程序員之間溝通以及日后維護的成本。
  • 提高軟件質量。
  • 提高企業的競爭能力,包括降低成本、提高質量、改善客戶滿意程度、控制進度等方面。
  • 有利於團隊多人協作和分工合作。架構師專注於設計框架、組件、領域模型等;軟件開發人員專注於業務邏輯,以及業務的更深程度的分析和挖掘;前端人員更專注前端交互(前后端分離)體驗。 
    當然,任何事物都需要多方面權衡,我們也要看到一些問題。比如前期需要付出培養成本,框架的理念以及先進性會限制團隊的理念和先進性等等,但是對於企業和創業團隊來說,持續的成本控制是第一位的。 
    這里奉送中小團隊一句箴言——你可以沒有自己的框架,但是一定要有統一的技術體系。

 

選擇一套框架有哪些注意事項?

  • 框架相對成熟、穩健
  • 框架使用先進的理念和技術
  • 框架有很高的擴展性
  • 框架一直在迭代升級和完善
  • 框架能減少開發人員的代碼開發量,讓開發人員更專注於業務邏輯
  • 框架結構合理,並且符合相關標准和規范

 

Magicodes.Admin框架

為此,我們團隊幾經周折,基於ABP和ASP.NET Zero的基礎上打磨出了Magicodes.Admin框架。 
在這個過程中,我們走了很多彎路,也經歷過了小米加步槍,比如設計過 Magicodes.NET 框架,Magicodes.WeiChat框架,最終我們決定站在巨人的肩膀上。創業團隊缺衣少食,人丁單薄,站在巨人的肩膀上會讓我們更快騰飛。因此,最終我們推出了Magicodes.Admin框架。 
Magicodes.Admin,是一套高效率、易擴展、基礎設施強大、代碼生成完備、理念和技術先進的敏捷開發框架,同時也是一套分布式、跨平台、多終端(包括Android、IOS、H5、小程序)支持的統一開發框架和解決方案。

擁抱開源一直是我們團隊的核心理念之一。 因此,相關框架我們均已開源。 
團隊框架地址:https://gitee.com/xl_wenqiang/Magicodes.Admin.Core 
團隊組件庫地址:https://github.com/xin-lai/


 

框架理念、套件

  • 通用權限
  • 多租戶
  • 版本
  • 組織機構
  • 多語言
  • 審計日志(操作審計和數據審計)
  • 緩存
  • 日志
  • 設置管理器
  • 短信服務(Magicodes.Sms)
  • 支付(Magicodes.Pay,微信、支付寶)
  • 微信SDK(Magicodes.WeChat.SDK)
  • 小程序SDK(Magicodes.WeChat.SDK)
  • 通用異常處理
  • 領域驅動
  • 依賴注入
  • 接口權限以及授權
  • 在線接口文檔(Magicodes.SwaggerUI+Swagger UI)
  • 數據驗證
  • 調度任務(Quartz)
  • 后台任務(Hangfire)
  • 數據篩選器(租戶篩選器、軟刪除、是否激活)
  • 跨平台(目前基於.NET Core 2.1)
  • 通知系統
  • 即時消息(SignalR)
  • ORM和數據遷移(Entity Framework Core)
  • 通用導入導出(Magicodes.ExporterAndImporter)
  • 通用存儲(Magicodes.Storage,支持本地存儲和阿里雲存儲)
  • 全國行政區域抓取和初始化(Magicodes.Districts)
  • 移動端統一開發解決方案和模板(Angular+Ionic)
  • 前后端分離
  • 后台前端解決方案和UI(Angular、primeng、bootstrap)
  • 簡單CMS
  • 移動端通用接口(登陸注冊找回密碼等)
  • 郵件服務
  • 移動端多語言支持
  • 交易流水以及多國貨幣支持
  • 大量后台UI組件(除了常用組件,還支持Tree Table、圖片展示、文件批量上傳、枚舉下拉、關聯項下拉、審計)
  • 單元測試(后台服務、移動端服務)
  • 代碼生成(后台服務、后台UI功能、多語言定義、權限定義、移動端服務)
  • 一鍵部署(后台服務、前台服務、后台前端)
  • 接口調用代碼生成(nswag,后台前端和移動端前端)
  • 升級工具
  • 配套項目/產品開發流程(https://gitee.com/xl_wenqiang/xinlai_devprocess

加群 85318032 獲取最新動態和文檔。

 

迭代記錄

https://gitee.com/xl_wenqiang/Magicodes.Admin.Core/commits/master

 

生成客戶端

好馬得有好鞍。我們傾力打造了配套的生成客戶端。


 

最后

本框架我們一直在不斷地迭代、開發、更新,並且在我們的項目中不斷實踐,整套解決方案均已走通,只是部分項目代碼我們需要重構后才能提取到框架之中,我們非常樂意和大家分享框架以及相關技術細節和經驗,如果您在使用過程中出現問題,請先閱讀相關文檔並且確保環境安裝正確之后再和我們溝通。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM