从技术角度来看,C/S和B/S除了UI不同BLL(1)层和DAL层使用相同的DLL;BLL(0)层可以根据C/S、B/S特点开发;即使用UI-->应用服务器(BLL0)-->BLL1-->DAL的架构方式。1. 首先看一下典型的使用场景。用户下载网页A,此时服务器更新了A的提交逻辑,A再提交后新的逻辑立即起作用数迟扒,并保证所有的客户端是一样的。
在这一个场景中,有两类人:一类是客户,二类是程序开发者;客户访问了网站,程序开发者更新了网站程序。2.先说C/SClient:客户端,Server:服务器端,最大的问题就在Server这个词,多数的C/S应用是C/DatabaseServer,而不是C/ApplicationServer。2.1 C/DatabaseServer:即各个客户端直接访问了数据库,如果此时各个客户端的BLL层和DAL层是一样的,那没有什么问题;如果因为更新等因为BLL层和DAL层造成了不一致,就可能出现问题。2.2 C/ApplicationServer:即各个客户端访问了应用服务器,而不能直接访问数据库
3.接着说B/S,B/S=Browser +CApplicationServer,这里C是指Web服务器前端的请求分发的路由器,ApplicationServer即Web服务器。如果有一台Web服务器配置多个域名的经验,应该很清楚这个意思。从技术角度,B/S的本质是,不让Browser 直接读写数据库,而C/S开发则“不会舍近求远”来开发应用服务器层。B/S架构:商业逻辑总是通过Web服务器,才能到达数据库,薯昌从而有了保证。而C/S架构,各C均直接访问了数据库,这是最大的不同。
以上说的是读写数据库的区别,而UI的旦启区别,会明显一些。反问一个问题:如果自己开发一个客户端来解析XML(相当于自定义HTML),服务器上使用应用服务器来读写数据,是不是就可以获取B/S架构的好处,并克服B/S的非富客户端的缺点?(不考虑安全问题)也许未来的智能手机App,都会是某种意义上的Browser,再由开发者定义自己的HTML是什么来获得C/S和B/S的双重好处。现在你明白了吧,希望能帮助你!