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管理员到每台电脑上手动更新。而这种客户端更新有成熟方案。
程序开发工做,从零开始,一行一行的垒代码并非首选,选择一套成熟的框架对项目很关键,用好了框架事半功倍。