C-S架構(gòu)的服務(wù)器客戶端模版

Summary
一個基于中小型提煉的C-S開發(fā)框架,覆蓋電腦端,web端,手機(jī)端的全平臺系統(tǒng)模版,在大多數(shù)的一對多的系統(tǒng)設(shè)計(jì)中會包含一些常用的重復(fù)的功能代碼, 比如網(wǎng)絡(luò)通信機(jī)制,客戶端版本控制,賬戶控制管理,密碼修改,公告管理,服務(wù)器配置,各種常用窗口等等,而且大多數(shù)的中小型系統(tǒng)只是需要到簡單的權(quán)限管理即可。
本框架包含了四種客戶端的模式,第一種常用的winform客戶端,第二種為wpf客戶端,第三種為asp.net mvc模式, 第四種為安卓平臺的客戶端,也就是說你可以在winform和wpf客戶端上選擇一種模式,然后您的系統(tǒng)提供一些功能(諸如報(bào)表查看)到asp.net上去, 然后提供一個手機(jī)端使用的Android App,如果服務(wù)器假設(shè)在云端,所有的人都可以隨時隨地的進(jìn)行交互,數(shù)據(jù)流通,所有的賬戶模型都是統(tǒng)一的, 瀏覽器還方便一些只需要查看報(bào)表用戶的人員不需要在部署客戶端了。當(dāng)然,客戶端可以提供更加強(qiáng)大的功能。
A CS development framework based on small-to-medium sized refining, covering computer-side, web-side, and mobile-side full-platform system templates, will include some commonly used repetitive function codes, such as network communication mechanisms, in most one-to-many system designs. Client version control, account control management, password modification, announcement management, server configuration, various common windows, etc., and most small and medium-sized systems just need simple rights management.
?This framework contains four client-side modes, the first commonly used winform client, the second is the wpf client, the third is the asp.net mvc mode, and the fourth is the client of the Android platform. You can choose a mode on winform and wpf clients, then your system provides some functions (such as report viewing) to asp.net, and then provide an Android app for mobile phone use, if the server is assumed in the cloud, all People can interact with anytime, anywhere, data flow, all account models are unified, the browser is also convenient for some people who only need to view the report users do not need to deploy the client. Of course, the client can provide more powerful features.
Features included
一個簡單的賬戶管理功能,包含了賬戶注冊,密碼修改,客戶端登錄賬戶記錄,賬戶注銷,賬戶包含了一些基礎(chǔ)信息
一個簡單的客戶端登錄控制功能,可以手動控制允許哪些客戶端進(jìn)行登錄,只需要打開窗口配置一下即可
一個簡單的公告管理功能,允許有權(quán)限的賬戶針對公告進(jìn)行更改,未來將支持公告更改記錄
一個簡單的意見反饋功能,允許客戶端反饋軟件的意見或是BUG,方便開發(fā)人員更改
一個簡單的右下角消息框彈出功能,在公告更改和新發(fā)消息的時候可以自由控制
一個簡單的版本日志提示窗口,在新版本更新后就會自動提示顯示
一個簡單的角色管理器功能,對每個角色可以配置任意數(shù)量的賬戶名
服務(wù)器端的配置實(shí)時保存,以防止服務(wù)器電腦突然關(guān)機(jī),斷電造成的數(shù)據(jù)丟失問題
一個完善的網(wǎng)絡(luò)通信框架,包含一對多控制的tcp網(wǎng)絡(luò)(服務(wù)器對客戶端進(jìn)行控制,并方便的群發(fā)數(shù)據(jù)),單獨(dú)請求數(shù)據(jù)的同步網(wǎng)絡(luò),udp網(wǎng)絡(luò)
完善的自動升級的部署機(jī)制,服務(wù)器部署新版本后,所有客戶端都將一鍵自動更新
客戶端提供開發(fā)人員遠(yuǎn)程更新服務(wù)器程序的能力,方便開發(fā)人員的操作
完善的日志記錄功能,所有的網(wǎng)絡(luò)功能和文件功能都提供了日志記錄,所有客戶端的異常都會發(fā)送至服務(wù)器記錄,客戶端也可以非常方便的查看所有的日志信息,您也可以很方便的將其他信息記錄到日志中
一個簡單的局域網(wǎng)聊天功能,用于所有的在線賬戶進(jìn)行聊天的功能,所有的消息做了一定的緩存
提供了一個文件共享平臺,大多數(shù)的軟件系統(tǒng)都會共享一些特殊的文件資料,允許方便的下載,管理,上傳
提供所有賬戶自身的頭像功能,未來還將支持多賬戶同步
提供一個簡單的開發(fā)中心,允許客戶端實(shí)時監(jiān)視服務(wù)器程序的對象內(nèi)存使用情況
客戶端提供了一個統(tǒng)一的配置中心,可以用來配置服務(wù)器各種參數(shù)。
Wpf版本的客戶端程序額外提供了一個主題顏色設(shè)置的功能
Environment
IDE: Visual Studio 2017
winform 服務(wù)器:.NET Framework 3.5
winform 客戶端:.NET Framework 3.5
wpf客戶端:.NET Framework 4.5
asp.net mvc服務(wù)器:.NET Framework 4.5
Getting Started
重新生成?CommonLibrary?項(xiàng)目
請確認(rèn)?ClientsLibrary?項(xiàng)目文件?UserClient.cs?的類?UserClient?的屬性?ServerIp?是否為127.0.0.1,如果不是,請修改
重新生成?ClientsLibrary?項(xiàng)目
重新生成?軟件系統(tǒng)服務(wù)端模版?并運(yùn)行該exe
選擇一個你想調(diào)試的客戶端版本程序,例如winform就啟動?軟件系統(tǒng)客戶端模版?項(xiàng)目
輸入一個默認(rèn)的賬戶admin,密碼123456
接下來就可以體驗(yàn)所有的功能了
安卓端的程序在文件夾AndroidTemplate中,請使用Android Studio打開該文件夾,并修改連接的服務(wù)器地址。(該模版還在完善中...)
Quick Experience
如果覺得下載源代碼比較麻煩,又想快速體驗(yàn)客戶端功能,那就點(diǎn)擊軟件自動更新.exe下載程序,放置到任意位置,推薦桌面,雙擊安裝程序,輸入默認(rèn)的賬戶密碼即可體驗(yàn)完整的最新版本的客戶端,當(dāng)服務(wù)器的客戶端版本更新時,你再打開本程序時也會自動升級。然后桌面的?軟件自動更新.exe?就可以刪除了。此處目前僅僅體驗(yàn)wpf程序。
至于卸載軟件,只要刪除桌面的快捷方式和安裝目錄的文件即可,其他位置不會有任何的文件殘留。
Secondary Development
基于本模版可以方便的進(jìn)行二次開發(fā),具體可以開發(fā)示例如下(如下是我個人的實(shí)踐經(jīng)驗(yàn),歡迎補(bǔ)充):
基于現(xiàn)場監(jiān)視控制的上位機(jī)系統(tǒng),可方便實(shí)現(xiàn)一對多的同步監(jiān)視
用于部門人員的項(xiàng)目管理系統(tǒng)
用于設(shè)備資料檔案管理的設(shè)備管理系統(tǒng)
用于管理備品備件的ERP系統(tǒng)
多客戶端之間需要進(jìn)行復(fù)雜數(shù)據(jù)交互的系統(tǒng)
二次開發(fā)時需要特別注意的是在項(xiàng)目?CommonLibrary?->?UserSystem.cs?中的參數(shù)需要根據(jù)實(shí)際全部修改,注意事項(xiàng)已在文件里說明。
Contribute
如果你也喜歡這個項(xiàng)目,可以點(diǎn)擊右上角的star或是fork,如果發(fā)現(xiàn)了一些BUG或是需要更改的地方也可以直接發(fā)起pull request,當(dāng)然也可以聯(lián)系技術(shù)支持QQ群來聯(lián)系我本人,或是發(fā)送郵件,具體參考下面。
Contact
技術(shù)支持QQ群:592132877
Disclaimer
使用了json.net組件
Wpf模版使用了一個開源項(xiàng)目,https://github.com/ButchersBoy/MaterialDesignInXamlToolkit
文件共享功能的圖標(biāo)來源免費(fèi)文件圖標(biāo)
HslCommunication.dll??
本C-S項(xiàng)目的核心組件,該組件功能提供了一些基礎(chǔ)功能類和整個C-S項(xiàng)目的網(wǎng)絡(luò)支持,除此之外,該組件提供了訪問三菱PLC,西門子PLC,歐姆龍PLC,Modbus的數(shù)據(jù)功能。關(guān)于這個庫的項(xiàng)目介紹地址如下:
http://www.cnblogs.com/dathlin/p/7703805.html
在Nuget控制臺輸入下面的指令即可安裝,或者使用VS2017的Nuget包管理器來方便的下載組件,如果不清楚怎么使用NuGet可以參考網(wǎng)上教程。
關(guān)于該庫的急速體驗(yàn)Demo程序下載地址:
HslCommunicationDemo.zip
Install-Package HslCommunication
整個系統(tǒng)的架構(gòu)設(shè)計(jì)如下
核心架構(gòu)的設(shè)計(jì)機(jī)制

系統(tǒng)的登錄設(shè)計(jì)
狀態(tài)檢查,檢測服務(wù)器的維護(hù)狀態(tài)設(shè)置,如果處于維護(hù)中,則顯示不能登錄系統(tǒng)原因。
賬戶檢查,服務(wù)器對登錄賬戶全面檢查,用戶名是否存在,密碼是否正確,是否允許登錄,并對登錄ip,時間,頻次進(jìn)行記錄。
版本檢查,服務(wù)器返回最新的版本號,客戶端檢測后根據(jù)自己的需求選擇是否啟動更新程序。
參數(shù)下載,上述所有檢查通過以后,進(jìn)行運(yùn)行數(shù)據(jù)的初始化,比如將公告數(shù)據(jù)傳送到客戶端,您也可以添加自己的數(shù)據(jù)。采用json數(shù)據(jù)進(jìn)行封裝,客戶端解析的時候請參照示例。
上述所有檢測通過之后,啟動客戶端的主界面程序。但凡有一項(xiàng)檢測失敗,或者參數(shù)下載失敗,均不允許登錄,并且提示相關(guān)錯誤。

系統(tǒng)的權(quán)限角色模型設(shè)計(jì)

系統(tǒng)的異常處理模型設(shè)計(jì)

系統(tǒng)的賬戶頭像設(shè)計(jì)

系統(tǒng)的其他工具設(shè)計(jì)

一個基于此模版的示例項(xiàng)目設(shè)計(jì)模型

服務(wù)器端程序界面如下:

下述服務(wù)器端的功能說明均來自服務(wù)器的菜單點(diǎn)擊
服務(wù)器端的版本控制,更新新的版本號,按照實(shí)際需求來更新您的版本號,門牌為【設(shè)置】-【版本控制】

服務(wù)器端的維護(hù)狀態(tài)控制,比如系統(tǒng)維護(hù)階段,不允許所有客戶端登錄,門牌為【設(shè)置】-【維護(hù)切換】

消息群發(fā),您也可以在代碼中自動觸發(fā)群發(fā),代碼參考此處的手動群發(fā),門牌為【設(shè)置】-【消息發(fā)送】

賬戶管理,客戶端的界面和這個一致,該管理屬于底層的json數(shù)據(jù)管理,任意更改數(shù)據(jù),門牌為【設(shè)置】-【賬戶管理】

關(guān)于本系統(tǒng),框架版本號以本github發(fā)布的版本號為準(zhǔn),門牌為【關(guān)于】-【關(guān)于軟件】

一鍵斷開,如遇到緊急情況,或是切換維護(hù)之前,可以選擇強(qiáng)制關(guān)閉所有的客戶端。門牌為【設(shè)置】-【一鍵斷開】
客戶端的程序界面
登錄窗口

登錄主界面(此處點(diǎn)擊了關(guān)于菜單)

更改公告,此處沒有設(shè)置權(quán)限過濾,門牌為【管理員】-【更改公告】

日志查看,本系統(tǒng)集成了非常實(shí)用的日志功能,所有的網(wǎng)絡(luò)組件均支持日志的記錄,方便調(diào)試。門牌為【管理員】-【日志查看】

遠(yuǎn)程更新,成功部署本系統(tǒng)后,支持遠(yuǎn)程客戶端的版本更新,此功能應(yīng)開發(fā)人員擁有。門牌為【管理員】-【遠(yuǎn)程更新】

密碼更改,當(dāng)賬戶需要更改密碼時,需要對密碼進(jìn)行驗(yàn)證。門牌為【設(shè)置】-【修改密碼】

更新日志,當(dāng)客戶端更新了新的版本后,初次運(yùn)行程序時就會自動彈出如下窗口,具體的更新內(nèi)容應(yīng)該寫入到文件中。手動門牌為【關(guān)于】-【更新日志】

反饋意見,人性化的軟件允許用戶支持提交修改建議,功能使用反饋等。門牌為【關(guān)于】-【意見反饋】

快速注冊賬號,支持管理員快速注冊賬號,該界面允許更改。門牌為【管理員】-【注冊賬號】

共享文件,本系統(tǒng)支持一個小型的文件共享,包含了上傳下載刪除過濾。門牌為主界面的【文件數(shù)量】

?

本系統(tǒng)集成了一個小型的簡單群聊天系統(tǒng),緩存消息200條。門牌為主界面的【設(shè)置】-【留言板】

監(jiān)視服務(wù)器的對象內(nèi)存消耗,門牌為【管理員】-【開發(fā)中心】

修改賬戶的頭像,門牌為【設(shè)置】-【我的信息】-點(diǎn)擊頭像

我的賬戶信息及個人文件,門牌為【設(shè)置】-【我的信息】

統(tǒng)一的系統(tǒng)配置界面,門牌為【管理員】-【系統(tǒng)配置】

中英文雙語支持,目前僅先適配我的信息和系統(tǒng)配置界面

Wpf版客戶端的程序界面
登錄窗口

主窗口,還未實(shí)現(xiàn)文件功能

主窗口的暗色主題

主題選擇界面

共享文件界面

其他功能界面使用了winform的窗口技術(shù),此處不在贅述。
Web版客戶端的程序界面
登錄界面,背景圖片可以自定義

主界面,很多功能還在完善中

Android 客戶端模版(還在完善中...)


