一個瀏覽器搞定前後端開發的低代碼框架正式開放源碼啦!

  本來想盡量做完美一點再開放,但個人能力實在有限,無法專注於實現內置分佈式數據庫,所以想借助社區的力量來驗證與推進。

一、框架設計目標:

簡單:能有更多的時間專注於業務領域;

靈活:不能有任何限制,能夠靈活擴展;

快速:能夠儘可能快的開發應用系統;

二、框架整體結構:

  左圖爲整體結構,右圖爲每個應用節點的組件結構:

目前關係數據庫支持Postgresql, NoSql支持Cassandra or ScyllaDB

三、技術原理淺析:

模型驅動:

  框架將應用系統所涉及的數據結構、業務邏輯、用戶界面等抽象爲各類型的模型,通過組合模型形成完整的應用系統。

虛擬代碼:

  框架內的服務模型與視圖模型的相關代碼皆爲虛擬代碼(類似於僞代碼),在保存發佈模型時都會經過轉換編譯爲運行時代碼,視圖模型的代碼由IDE的TypeScript執行轉換,服務模型的代碼由後端的Roslyn轉換。

服務容器:

  編譯好的服務組件類似於插件統一由AppContainer子進程加載調用,並且支持單獨調試與熱更新。

四、工程結構說明:

appbox.clr

  服務端C#工程,主要包括:

  • appbox.Core: 基礎項目,包含模型定義、模型對應的數據結構、表達式定義、自定義序列化、緩存等;
  • appbox.Server: 服務端基礎項目,主要包括通訊協議與存儲api;
  • appbox.Design: IDE設計支持項目,主要處理前端IDE的各類命令;
  • appbox.Store: 存儲項目,支持內置數據庫及第三方數據庫;
  • appbox.Host: 服務端主項目,引用上述項目,主要包含WebHost與前端通訊;
  • appbox.AppContainer: 服務端運行時的服務子進程,管理各服務模型的實例,通過共享內存與appbox.Host主進程通訊。

appbox.dev

  前端Web IDE工程,用於設計與發佈各類模型。npm run build後複製到服務端wwwroot/dev目錄下,通過瀏覽器訪問服務端地址http://ip:port/dev進入。

appbox.app

  前端應用工程,npm run build後複製到服務端wwwroot/app目錄下,通過瀏覽器訪問http://ip:port進入開發好的應用界面。

相關編譯及詳細說明文檔將陸續在源碼README內說明。

Enjoy coding! Enjoy your life!

  差點忘了GitHub地址:github.com/enjoycode,別忘了點個星啊!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章