背景:搭建一個適合公司erp業務的開發平臺。css
架構概要圖:html
表單設計開發部署示例圖
前端
表單設計開發部署示例說明
1)每一個開發人員能夠本身部署表單設計至本地一份(固然也能夠共用一套開發環境,可是若是開發交叉功能也比較容易衝突和調試衝突,特別是服務常常調試產生衝突)。完成某個功能開發之後,經過項目一鍵發佈至測試環境進行集成測試。在集成測試ok後,一鍵發佈至線上開發環境。
2) 正式線上部署能夠按照項目爲單位創建負載均衡,按照項目爲單位總體創建集羣。單個web站點包含表單文件服務和表單代碼服務。表單文件服務爲一些 css,js,html,圖片等的靜態文件。表單代碼服務爲一些動態C#代碼服務,隨時編譯,隨時發佈,以http方式提供服務。表單文件能夠經過js調 用這些http服務。jquery
表單項目管理功能
圖:
web
說明:
表單設計按照項目的方式管理,表單文件服務和表單代碼服務及各自相應的編輯及文件。因此創建表單設計前,應該要先創建項目。
項目名稱是整個項目發佈,開發的惟一約定名稱,不得重複。
如有公用的項目,則創建公用的項目,裏面可包含公用的js,公用的圖片,公用的css等。這個也是全部表單項目可公用的基礎前端框架。
發佈和撤銷服務按鈕:用於發佈當前的c#後端代碼成服務接口。若當前項目設置了負載均衡,相應的負載均衡節點會在2s-5s內自動更新服務。
發佈上線按鈕:用於發佈當前項目至另一個項目環境。好比測試或線上環境。目前至支持全量發佈,將來可優化。
清除緩存按鈕:清理表單文件服務的靜態文件緩存。由於表單文件都是會在單個網站存儲靜態文件緩存,從而下降數據庫的壓力和靜態文件負載均衡實現。理論上靜態文件更新,自己相應項目的負載均衡節點也會在2s-5s內更新相應的緩存文件。數據庫
表單文件管理
列表圖
c#
前端詳情圖
後端
後端詳情圖
跨域
全屏編輯示例:
緩存
表單文件包含前端文件(css,js,html,圖片等靜態文件)和後端文件(.cs 的c#後端代碼文件)這兩種文件,相應的不一樣類型文件會造成相應的不一樣服務。
前端文件相關介紹
前端文件包含(css,js,html,圖片等靜態文件),其中能夠經過上傳附件的方式如(jquery框架.js文件),也可經過編輯文本的方式提交。會根據不一樣的後綴進行解析輸出,同時支持跨域訪問。
歷史版本:默認根據文件名保留歷史版本,故也可恢復使用歷史版本。
內部方式按鈕:不使用站點緩存文件訪問,直接訪問數據庫輸出文件。
外部方式按鈕:會使用站點緩存文件訪問輸出文件。
調試預覽按鈕:能夠打開新的頁面進行當前編輯效果的實時調試,一鍵刷新,所見即所得。
(編輯器控件,參考http://runjs.cn/code)
後端文件相關介紹
後端文件包含.cs c#代碼文件;c#後端文件分爲接口文件和公用代碼文件兩種類型。
接口文件:會自動公開該文件的類的方法爲接口,支持http訪問。js便可調用。
公用代碼文件:該類默認爲static靜態類及靜態方法。可被其餘類訪問。
第三方程序集的支持:第三方程序集放到站點的BuildsAssemblys文件下面,便可被其餘類庫所調用。(目前不支持第三方程序集的自動發佈,正式發佈要手工拷貝到線上)
快速編譯:根據本地的cs文件緩存,快速編譯。
從新編譯:從新下載當前項目全部的cs文件至本地,從新編譯。
提交併發佈:先從新編譯->將當前內容保存到數據庫(非草稿保存)->發佈當前服務到所在站點(不會發布到負載均衡節點)。
代碼調試:目前僅支持接口經過模擬http的方式調試,方便接口調試。
其餘介紹:
保存草稿:編輯器默認在進行編輯後每10s保存一次草稿到數據庫。
備註說明:
我的更傾向於絕對定位形式的表單設計器,相似ccflow。可是由於公司的緣由,決定使用常規頁面設計的方式。而頁面展示形式由於多變,普通的頁面表單設計器不能知足。
由於人手,成本,不開源等緣由,目前僅爲粗糙之做,未作很細性能考慮,僅考慮架構擴展和平行性能擴展。
by 車江毅
(此文只作階段性的總結,也許對一樣作流程引擎的人有些啓發,也歡迎交流。分佈式相關架構能夠參考本人其餘文章)