您的位置:首页 > 其它

关于Web应用与c/s应用的一些想法

2005-01-01 00:00 561 查看
本来是想想用b/s, c/s这样的字眼,但是我觉得b/s这个说法是很不规范的,b/s的s也并不对应c/s里的s,去google里搜一下b/s或者browser/server,好像结果也都是中文的,看来老外并不常这么讲,我总觉得在这行里老外常用的应该是比较规范的,当然也可能是不规范的;但老外不怎么用的,一定是不规范的;我记得以前一次面试,一个老外指着我简历问我那个b/s是指什么,我当时还很惊讶,心想:靠!不会吧,这都不知道。现在看来应该是我们错了。

废话说完,讲正事。其实有这些想法很久了。最初是接触小p巨牛无比的c/s框架后,对它里面的一些很酷的特性印象深刻,并想在web上实现。后来老杨建议先实现那个更改历史(amendment history)的特性,就开始考虑这事了。细想来,又发现web上实现并不像c/s架构下那么简单。考虑最简单的c/s架构:client-DB server,对应的web架构:browser-Client(即web server)-DB server。web应用中browser到Client(即web server)是无状态链接的,这就是问题的所在,要想同样实现c/s下一些功能,web上开销或者说成本就比较大了。比如实现amendment history,web server要在发送数据到浏览器(这里避免用客户端这个词)之前,维护数据的当前状态,简单实现的话就是把它扔到session里,浏览器下一个更新请求发送过来后,再进行数据比较。相比c/s下的实现肯定麻烦了很多。况且状态的维护并不能简单的去通过session来实现,我们不可能把大量的数据(或者对象)放到session里面,而且在跨域或者分布式的环境下,session的同步也是个问题。

看CSLA.Net的时候,看到它的Undoable(更改撤销)特性很高兴,以为改框架的web版也支持,看下去之后发现也只是其C/S版支持。看来web的无状态性质决定了c/s下的某些实现不能照搬过来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: