我不想过多讨论所谓的“C/S架构”问题了。简单说一下。所谓“C/S架构”就是指得你自己开发一个桌面客户端软件,然后再自己开发一个业务服务器端软件,然后自己的两个系统相互通讯。大多数初学者以为会用个 ADO.NET 来调用 SQL Server 的数据库驱动进行“增删改查”就算是自己开发了服务器端系统了,这是局域网小办公室里玩儿软件的思维方式,不是基于互联网的思维方式。真正的 C/S 就好像是手机网络,(不同操作系统的)手机系统把音频信号发给移动公司网络,然后经过各省、各市的服务器,发送给另外一端的手机进行播放,同时各省的网络还做了财务计费、BOSS服务、用户分析、企业用户管理等等工作,这样的网络就是传统的 C/S 系统。它不基于浏览器,并且它是“客户端-服务器”架构的,客户端根本不知道服务器端用的是什么操作系统、数据库、有几个数据库,客户端就是按照规定的协议与服务器端进行高效率的通讯即可。
在桌面程序里边嵌入一个 WebBrowser,准确地说,那只有 C/S 的一点皮毛,而真正要开发还是 B/S 无疑。注意这里是指“开发”自己的跑在 WebBrowser 控件内的应用,而不是说使用一个 WebBrowser 只是为了跑别人的一个网站客户端。
如果你在 PhoneGap Build 网站上注册一个免费的开发者账号,你就能看到其 Codovar 提供了哪些官方的插件,以及有多少第三方插件供人免费使用。国内有好几家比较大的手机软件开发商(例如 WeX5)其底层也是使用它,只不过自己再做了一层封装。
大多数手机应用都不是用底层原生的方式,而是通过“浏览器”来运行。同时基于 Hybrid 架构可以使得这类手机应用无限接近原生应用(而在稳定性、动态更新、开发成本上则具有10倍以上的优势!)
所以现在说“B/S架构”其实可能有很大的误导。我基本上不用“b/s、c/s”这样的词儿了,我们谈开发的时候就用更加接地气的词儿来谈。基本上,如果遇到的朋友谈“b/s、c/s”概念时,都说明他是开发的外行。因为在“B/S”这个词儿的歧义太大了,根本不能准确了解说者的真实的东西不到半斤还是有八两。