一个基于中小型提炼的C-S开发框架,在大多数的一对多的系统设计中会包含一些常用的重复的功能代码,比如网络通信机制,客户端版本控制,账户控制管理,密码修改,公告管理等等,大多数的中小型系统只是需要到简单的权限管理即可。
本框架包含了三种客户端的模式,第一种常用的winform客户端,第二种为wpf客户端,第三种为asp.net mvc模式,也就是说你可以在winform和wpf客户端上选择一种模式,然后您的系统提供一些功能到asp.net上去,所有的账户模型都是统一的,这样方便一些只需要查看报表用户的人员不需要在部署客户端了。当然,客户端可以提供更加强大的功能。
- 一个简单的账户管理功能,包含了账户注册,密码修改,客户端登录账户记录,账户注销,账户包含了一些基础信息
- 一个简单的公告管理功能,允许有权限的账户针对公告进行更改,未来将支持公告更改记录
- 一个简单的意见反馈功能,允许客户端反馈软件的意见或是BUG,方便开发人员更改
- 一个简单的右下角消息框弹出功能,在公告更改和新发消息的时候可以自由控制
- 一个简单的版本日志提示窗口,在新版本更新后就会自动提示显示
- 一个完善的网络通信框架,包含一对多控制的tcp网络(服务器对客户端进行控制,并方便的群发数据),单独请求数据的同步网络,udp网络
- 完善的自动升级的部署机制,服务器部署新版本后,所有客户端都将一键自动更新
- 客户端提供开发人员远程更新服务器程序的能力,方便开发人员的操作
- 完善的日志记录功能,所有的网络功能和文件功能都提供了日志记录,所有客户端的异常都会发送至服务器记录,客户端也可以非常方便的查看所有的日志信息,您也可以很方便的将其他信息记录到日志中
- 一个简单的局域网聊天功能,用于所有的在线账户进行聊天的功能,所有的消息做了一定的缓存
- 提供了一个文件共享平台,大多数的软件系统都会共享一些特殊的文件资料,允许方便的下载,管理,上传
- 提供所有账户自身的头像功能,未来还将支持多账户同步
- 提供一个简单的开发中心,允许客户端实时监视服务器程序的对象内存使用情况
- Wpf版本的客户端程序额外提供了一个主题颜色设置的功能
- IDE: Visual Studio 2017
- winform 服务器:.NET Framework 3.5
- winform 客户端:.NET Framework 3.5
- wpf客户端: .NET Framework 4.5
- asp.net mvc服务器:.NET Framework 4.5
- 重新生成CommonLibrary项目
- 重新生成ClientsLibrary项目
- 重新生成软件系统服务端模版并运行该exe
- 选择一个你想调试的客户端版本程序,例如winform就启动软件系统客户端模版项目
- 输入一个默认的账户admin,密码123456
- 接下来就可以体验所有的功能了
基于本模版可以方便的进行二次开发,具体可以开发示例如下(如下是我个人的实践经验,欢迎补充):
- 基于现场监视控制的上位机系统,可方便实现一对多的同步监视
- 用于部门人员的项目管理系统
- 用于设备资料档案管理的设备管理系统
- 用于管理备品备件的ERP系统
- 多客户端之间需要进行复杂数据交互的系统
如果你也喜欢这个项目,可以点击右上角的star或是fork,如果发现了一些BUG或是需要更改的地方也可以直接发起pull request,当然也可以联系技术支持QQ群来联系我本人,或是发送邮件,具体参考下面。
- 技术支持QQ群:592132877
- 邮箱:hsl200909@163.com
- 使用了json.net组件
- Wpf模版使用了一个开源项目,https://github.com/ButchersBoy/MaterialDesignInXamlToolkit
- 文件共享功能的图标来源免费文件图标
该组件功能提供了一些基础类和整个C-S项目的核心网络的支持,除此之外,该组件提供了访问三菱PLC和西门子PLC的数据功能。
本组件支持常规的整数的数据读写,支持位数据读写,也支持字符串数据读写,包括中文,具体使用方式请参照下述手册,目前已经完成了一个三菱PLC高并发访问的类,具体交流可以通过以下方式联系我
如果要使用本组件访问PLC,需要引用命名空间,如下
using HslCommunication.Profinet;
三菱详细手册:三菱PLC数据读写手册
西门子详细手册:西门子PLC数据读写手册
下载地址:单独的组件dll文件
文档地址:单独的组件xml注释文件
- 状态检查,检测服务器的维护状态设置,如果处于维护中,则显示不能登录系统原因。
- 账户检查,服务器对登录账户全面检查,用户名是否存在,密码是否正确,是否允许登录,并对登录ip,时间,频次进行记录。
- 版本检查,服务器返回最新的版本号,客户端检测后根据自己的需求选择是否启动更新程序。
- 参数下载,上述所有检查通过以后,进行运行数据的初始化,比如将公告数据传送到客户端,您也可以添加自己的数据。采用json数据进行封装,客户端解析的时候请参照示例。
- 上述所有检测通过之后,启动客户端的主界面程序。但凡有一项检测失败,或者参数下载失败,均不允许登录,并且提示相关错误。
- 服务器端的版本控制,更新新的版本号,按照实际需求来更新您的版本号,门牌为【设置】-【版本控制】
- 服务器端的维护状态控制,比如系统维护阶段,不允许所有客户端登录,门牌为【设置】-【维护切换】
- 消息群发,您也可以在代码中自动触发群发,代码参考此处的手动群发,门牌为【设置】-【消息发送】
- 账户管理,客户端的界面和这个一致,该管理属于底层的json数据管理,任意更改数据,门牌为【设置】-【账户管理】
- 关于本系统,框架版本号以本github发布的版本号为准,门牌为【关于】-【关于软件】
- 一键断开,如遇到紧急情况,或是切换维护之前,可以选择强制关闭所有的客户端。门牌为【设置】-【一键断开】