C/S B/S之争
C/S即Client/Server(客户机/服务器)结构,通过将任务合理分配到Client端和Server端,来降低系统的通信开销,但是需要安装客户端才能进行相关操作,就像Word、WPS、PS以及报税软件需要功能的软件,都是C/S结构。目前的移动APP,绝大多数据也是C/S结构,它需要下载客户端才能使用其服务。
C/S架构特点:一是界面和操作可以很丰富,但界面天死板,二是安全性能高;三是响应快,特别是富客户端,结合本地数据与运程数据,数据处理特快,响应好。但是,由于运行需要需要安装程序,用户受到限制,因此不适合面向一些不可知的用户。同时维护上工作量较大。
B/S即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或改进的结构。但其实B/S也可以理解为客户机/服务器模式,只不过B/S的客户端是浏览器。因数它没有客户端程序,客户端就是通过浏览器,有个网址,就可以上网使用。
B/S架构特点:一是客户端无需安装,有Web浏览器即可。直接面向网友;二是无需升级多个客户端,升级服务器即可。三是界面与流行接近受到欢迎。但是,B/S不能跨浏览器上,界面的控件,对数据的容纳不及C/S,很难达到C/S的程序。特别是响应速度上,受上限制(需要刷新页面)。
C/S与B/S结构综合分析:
1,系统数据处理:
B/S优势就是灵活性。只要浏览器可以上网,不管何时何地,也不管是什么系统,都可以使用B/S系统的终端。但是这样的话,绝大部分工作就只能由服务器来承担了,这样就会使得服务器的负担很重。而且因为是浏览器,所以文件就要以HTML为主,不便于编辑与修改。
C/S结构,客户端与服务器端都能够处理任务,虽然对客户端的要求比较高,但是却可以减轻服务器的压力。依据客户的需要,可以编写出胖客户端或廋客户端,本人就很喜欢胖客户端,服务器器只负责存贮数据,数据的处理基本上放在客户端处理、显示打印,效果非常好。
2、客户端窗口显示
B/S通过浏览器可以操作,但是它对浏览器的版本和内核,又有很苛刻,浏览器不对照样挂机。浏览器对数据界面的显示,居中对齐,上下拉动,浏览器的控件位置,比较古板。但是,浏览器的优势,就是对于对屏幕的分辨率,要求不高可以自动对齐,上下拉动。
C/S通过客户端操作,在运行客户端时,对屏幕的分辨率有一定的要求,否则显示不全,就不能操作了。这一点,目前已有改进办法。
客观地说,在编辑数据处理上,C/S具有优势,它可以严密地通过大批优秀VCL,做出复杂的界面,一个界面,包容大量的数据,特别是打印上,功能非常强,可以做出非常优秀的功能模块。手机APP,绝大多数是C/S结构,移动客户端的出现,为以C/S结构,提供活力。
在窗口显示上B/S,有着明显的优势,它可以做出非常出众的流行界面,如数据统计界面。但是,在应用在windows的C/S还处于传统的界面上。AlphaControls控件的出现,为C/S界面,带来革新的希望。
因此,相当多的客户方,对B/S感兴趣,而数据的操作者对C/S好感。
3、系统开发:
C/S结构是建立在客户端基础之上的,开发难度大些,它要求程序下载更新、不同模块,特别是不同分辨率屏幕的处理上,要求较高。
而对于B/S来说,则就不需要那么麻烦。目前开发的软件,大多数针对支持B/S。扩大功能,只能通过插件实行。
就系统的开发而言,B/S仅是一个浏览器的服务程序。而C/S的客户端,是一组EXE文件组成的模块化体系:首先执行牵引(下载模块)DownloadEXE,确认下载更新完成,进入主程序MainEXE,主程序中再调用子模块MidEXE,众多个MidEXE(Dll),加上本地的Data,可以组成一个完整丰富的系统,这是B/S做不到的。
比较B/S和C/S,我认为C/S技术,性能更成熟、可靠。目前的移动APP也都是C/S结构。
4,系统的升级维护:
B/S基本上不需要升级维护,只有浏览器版本的升级。
C/S系统的升级维护,比较复杂,模块中只要有一部分发生改变,那么其他与其相关联的模块也会发生变动。
但是,依据C/S的技术,完成可以实行动态更新,即在软件启动时,做到自动更新。本人编写的软件,就是客户端自搜索,自动更新。
5、数据安全
B/S数据放在服务器上,主要在外网上操作,非常容易受到黑客的攻击。
C/S数据不仅数据在服务器上,同时客户端也处理数据,二者都易受到攻击。但是,很多C/S系统是通过局域网操作,即使外网也是通过VPN组成局域网,安全性好多了。
个人观点:
一、注重功能的软件大多数是C/S结构,如报税、开票、财务软件。
二、B/S是流行的趋势,上手快。
三、二者有着相互整合的趋势,各自的特点,都被开发者借鉴(作为一种手段方式的相互运用)。未来方向,就是整合二者优势的编程方向。
最后,借鉴第三方控件,对C/S的展望:
1、AlphaControls控件,可以做非常亮丽的窗口界面,推动C/S编程发展。同时,该控件
TsFrameBar 控件 可以实现客户端小窗口内嵌高分辨率窗口,为C/S添加竞争力。
2、uniGUI,是通过VCL编辑,实现B/S的手段,它融合了C/S和B/S的编辑手段。
比较好的办法,C/S和B/S都使用,浏览层面使用B/S,操作层面使用C/S。如果开始软件能结合二者的优势,就是开心一刻啦!
上述仅个人C/S和B/S的一些见解,望批评指正。



