.net erp(辦公oa)開發平臺架構概要說明之表單設計器

来源:http://www.cnblogs.com/chejiangyi/archive/2016/01/11/5120842.html
-Advertisement-
Play Games

.net erp(辦公oa)開發平臺架構概要說明之表單設計器介紹


背景:搭建一個適合公司erp業務的開發平臺。

 

架構概要圖

 

表單設計開發部署示例圖
 

 

表單設計開發部署示例說明
1)每個開發人員可以自己部署表單設計至本地一份(當然也可以共用一套開發環境,但是如果開發交叉功能也比較容易衝突和調試衝突,特別是服務經常調試產生衝突)。完成某個功能開發以後,通過項目一鍵發佈至測試環境進行集成測試。在集成測試ok後,一鍵發佈至線上開發環境。
2) 正式線上部署可以按照項目為單位建立負載均衡,按照項目為單位整體建立集群。單個web站點包含表單文件服務和表單代碼服務。表單文件服務為一些 css,js,html,圖片等的靜態文件。表單代碼服務為一些動態C#代碼服務,隨時編譯,隨時發佈,以http方式提供服務。表單文件可以通過js調 用這些http服務。

 

表單項目管理功能
圖:
 

說明:
表單設計按照項目的方式管理,表單文件服務和表單代碼服務及各自相應的編輯及文件。所以建立表單設計前,應該要先建立項目。
項目名稱是整個項目發佈,開發的唯一約定名稱,不得重覆。
若有公用的項目,則建立公用的項目,裡面可包含公用的js,公用的圖片,公用的css等。這個也是所有表單項目可公用的基礎前端框架。
發佈和撤銷服務按鈕:用於發佈當前的c#後端代碼成服務介面。若當前項目設置了負載均衡,相應的負載均衡節點會在2s-5s內自動更新服務。
發佈上線按鈕:用於發佈當前項目至另外一個項目環境。比如測試或線上環境。目前至支持全量發佈,未來可優化。
清除緩存按鈕:清理表單文件服務的靜態文件緩存。因為表單文件都是會在單個網站存儲靜態文件緩存,從而降低資料庫的壓力和靜態文件負載均衡實現。理論上靜態文件更新,本身相應項目的負載均衡節點也會在2s-5s內更新相應的緩存文件。

 

表單文件管理
列表圖
 

前端詳情圖
 

後端詳情圖
 

全屏編輯示例:
 

表單文件包含前端文件(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 車江毅

 

(此文只做階段性的總結,也許對同樣做流程引擎的人有些啟發,也歡迎交流。分散式相關架構可以參考本人其他文章)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • public partial class Form2 : Form { public Form2() { InitializeComponent(); } private Form1 jishiben; ...
  • 目 錄工業物聯網和集成系統解決方案的技術路線... 1前言... 1第一章 系統架構... 31.1 硬體構架圖... 31.2 組件構架圖... 4第二章 技術選型與介紹... 52.1 開發環境... 52.2 數據源... 52.3 數據採集... 52.4 數據上傳服務... 62.5 消息...
  • 在本文中,我們討論OOP中的熱點之一:抽象類。抽象類在各個編程語言中概念是一致的,但是C#稍微有些不一樣。本文中我們會通過代碼來實現抽象類,並一一進行解析。深入理解OOP(一):多態和繼承(初期綁定和編譯時多態)深入理解OOP(二):多態和繼承(繼承)深入理解OOP(三):多態和繼承(動態綁定和運行...
  • 今天系統的來記錄一下再vs2013下,使用ef6 codefirst功能,來操作SQL lite資料庫 本來我以為sqlite資料庫用的這麼多,ef6肯定支持,結果,使用過程中很多坑,現在我把具體的配置過程寫下,希望以後再配置,不會像我一樣,花1天去找解決方法 1.到此鏈接去下載相關的庫 http:...
  • 更新ing
  • 今天項目要求隨機從資料庫中隨機取出若幹條數據,放到首頁。那麼要如何隨機取出這個子集合呢?本人向到的方法如下:1、假設數據量很少,如我資料庫中只有10條數據,而我要求隨機取出8條。對於這種低數據量,大可以一次過全部取出放到父集合當中,然後隨機remove去兩條。 List lis...
  • oracle稱分析函數。與聚合函數相同,都是對行集合進行計算!但,由於group by的原因,每組只返回一個值。前者每組可以返回多個值。語法:函數名(列名) over(sql項)當over參數為null,即對所有行進行聚合計算例子: SELECT EmpID,DeptID,PostID, sum(P...
  • 快速建立原生(Native)的行動裝置應用程式: 程式代碼共用: 與 Visual Studio 整合: 確保第一時間更新: 原生的應用程式效能:
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...