C/S架構程序應用普遍,好比常見的QQ、微信、Outlook,還有手機上的各類APP都是C/S架構的。C指的是Client,即客戶端,S指的是Server,即服務端。java
常常聽到初學者爭論,是學C/S結構仍是學B/S結構?而筆者覺得,兩種架構都要學,不只要學,並且還要精通。至於用哪一種架構解決問題,那就要看工做須要了。在企業管理系統領域,C/S架構的系統佔有很是重要的地位,好比ERP、MES系統,C/S架構的居多。對企業而言,只要能提升操做效率,他們並不在乎是什麼架構。mysql
今天筆者就和你們分享一下如何開發一套穩健、高效的的C/S架構的系統。程序員
筆者認爲,一套成熟的C/S框架應該解決好如下核心問題:sql
服務器端功能定位數據庫
C/S中S指的是Server,而不是數據庫服務器。不少C/S架構的系統,都是直連服務器上的數據庫,這樣不只增長數據庫負擔,還存在安全風險。有的程序員爲了省事,直接將數據庫的帳號密碼以明文形式寫在了客戶端配置文件,這樣很不安全。因此,咱們的服務器端應該是一個Web服務器和數據庫服務器的組合體,客戶端經過Web服務器鏈接數據庫執行各類數據庫增刪改查的操做。Web服務器還可進行各類業務邏輯的運算。安全
客戶端技術架構選型服務器
客戶端選擇.NET仍是選擇Java呢?從開發效率上將,應當毫無疑問的選擇.NET的Win Form 或 WPF。對於初學者,建議選擇Win Form,易學,上手快,簡單的需求拖拉拽就能完成。若是有必定基礎,並且項目週期不是太緊張,能夠選擇WPF。雖然Win Form的UI界面不如WPF美觀,可是Win Form有不少第三方的UI組件,效果不比WPF差,還有些效果更炫更酷。微信
數據庫操做微信開發
管理信息系統,歸根結底就是對數據庫表的增刪改查,開發工做離不開對SQL語句的操做,因此框架要有一個SQL Helper,簡化這些操做。爲了提升安全性,應當避免客戶端直連數據庫,框架可考慮Web Service或RESTful API之類的解決方案。架構
文件上傳和下載
雖然數據庫容許存儲文件,可是畢竟數據庫不是文件服務器,不是用來存儲文件的,另外向數據庫中存儲文件會致使數據庫體積過大,影響後期運維,因此要求服務器端有一個Web服務器,能夠支持文件的上傳和下載。相比Socket或FTP,經過HTTP方式處理文件更容易。
應用程序框架
技術架構、數據庫、文件管理搞定後,接下來就要考慮應用層面的需求,好比用戶管理、用戶登陸、權限控制、日誌管理、站內消息、菜單管理、多窗體管理、基礎數據、表單定義、工做流等模塊。這些模塊,是每一套應用系統都必須具有且優先解決的基礎模塊,而後纔是如何開發業務模塊。既然你們都面臨這個問題,何不找一套現成的應用框架呢。在實際工做中,老闆並不關心技術問題,對他來講,他交給你的是一件事,若是在限定的時間內保質保量的完成纔是他關心的。因此,咱們要作的就是整合各類工具、框架,爲本身所用。
客戶端自動更新方案
估計你們都回答過C/S結構和B/S結構的優缺點,相比B/S架構,不少人都擔憂C/S架構會增長額外的運維工做量。早期的C/S系統這種問題很突出,一旦客戶端程序升級,須要IT管理員到每臺電腦上手動更新。而這種客戶端更新有成熟方案。
程序開發工做,從零開始,一行一行的壘代碼並非首選,選擇一套成熟的框架對項目很關鍵,用好了框架事半功倍。