1. 程式人生 > >PC軟體開發中BC/S設計架構的實現

PC軟體開發中BC/S設計架構的實現

    公司現有專案是C/S結構,客戶端採用Qt進行的開發,已經開發維護近10年,結構穩定成熟。現開發一個新的專案,主要的功能需求一致,只是展示方式需要重新設計實現。公司傾向於向B/S方向轉變,新專案直接採用B/S開發,所有功能模組都需要重新設計實現,週期比較長,成本比較大。在之前的專案中有過在Qt中嵌入html介面的經驗,所以想採用BC/S的模式進行開發是否可行,原本的server端保持不動,client端主體邏輯不動,只採用html展現UI介面。形成由html+C++結合實現Client,即BC/S架構。

架構示意圖


    我們的客戶端專案採用Qt實現,採用Qt中WebKit模組作為處理引擎,載入、解析、顯示前端頁面。Qt與前端的js進行互動,前端頁面只實現UI的展示、人機互動功能,業務邏輯處理交由C++進行處理。在整個處理過程中Qt與前端頁面互動是整個架構實現的關鍵,因為整個專案有近20個介面,共計有40餘個互動介面。所以針對Qt與前端通訊互動進行了封裝,形成了一個通訊庫(QtWeb)(後來發現這是一個很明智的選擇,後面專案的開發和持續迭代過程中互動能力上都沒有出現瓶頸)。

架構優缺點

優點:

1、開發速度快:在原有的系統基礎之上只進行了UI部分的調整,html開發UI介面速度比較快,後續介面調整的成本也相對低

2、UI設計更加美觀、多樣化:原本使用Qt開發介面,介面比較固定,實現一些特效比較麻煩。html對於UI設計更加多樣化,網上的例項也比較多

3、逐步向B/S過渡:可以在不影響專案進度的情況下,逐步向B/S架構過渡,減小轉變的陣痛

缺點:

1、執行效率相對低:採用Qt的WebKit引擎展示html時執行效率要比採用瀏覽器低,Qt5中採用了Chromium瀏覽器引擎,執行效率有所提高,但是對比Chromium瀏覽器還是存在差距。介面比較複雜或者資料量比較大時會出現卡頓情況。後續不斷的優化相信會解決掉

2、對前端設計有所要求:前端html中可以與Qt通訊是因為html中有一個Qt物件,通過此物件進行互動。但是前端使用框架之後,可能造成訪問不到這個物件導致無法通訊。只能在Qt載入的html中進行互動,所以前端需要做協議的中轉,都通過特定的頁面或js與Qt進行通訊

總結

BC/S架構是一個過渡的過程,還存在著一些不足,它應該算是對client設計的一個補充。在使用中根據實際的需求可以選擇全部採用html設計介面,也可以採用Qt/MFC和html混合使用。