已经记不清从什么时候开始,B/S已经成了我们开发的系统里面最主要的程序模型,在网络浪潮的冲击下,传统的Windows程序所面临的一些问题(部署困难、升级困难、维护困难、安全问题)使得基于Web的系统大行其道,一下子,几乎只要有可能,所有的系统都开始采用B/S开发。当然,Windows程序在某些场合也是不可能被替代的(就像CSDN里面有人反驳的那样,PhotoShop永远别想做成B/S的模样),但的确更多的系统采用了Web架构。
在这篇Blog里面,引用了一项很有意思的数据。www.asp.net和www.windowsforms.net这两个站点分别是微软的WebForms和WinForms的官方站点,4/3上午,这两个站点的论坛的统计数据是:
www.asp.net:413,687个注册用户,141,522个话题,519,521篇帖子
www.windowsforms.net:4,466个注册用户,4,510个话题,13,458篇帖子
那篇Blog的作者分析原因可能是:1、大部分的开发都转向了web,所以大家都想多知道点asp.net的事;2、windows程序员们已经有了足够的知识足以开开心心的完成他们的开发了,所以他们没啥问题可问;3、www.windowsforms.net的名声远远不如www.asp.net,所以较少人光顾。
但是,在这样的几乎“一边倒”的形式之下,我却渐渐的感到了Windows程序的回归,而且这次回归,“杀回来”的已经不仅仅是过去老样子的Windows Application了,而是装备更精良的、表现形式更丰富的、实现方式更多的各种各样的Rich Client。
1、JavaScript + XMLHTTP(Bindows + Janc)
我个人认为这是一对非常好的伙伴,结合起来,可以完成我们想象不到的非常Cool的应用,JavaScript用于客户端界面的显示和处理,XMLHTTP用于客户端与服务器的信息传输。
JavaScript在客户端的表现力不容置疑,看看www.bindows.net所表示出来的能力,利用JavaScript几乎可以实现Windows应用程序所能干的大部分事情,而且Bindows提供了一个封装好的可以直接利用的JS类库,省了我们大把的力气。
XMLHTTP一直以来常被用于实现“无刷新”的Web页面,它和JavaScript配合,可以完成数据从服务器和客户端的传输。Janc是Lostinet实现的一套.NET类库,完整的封装了服务器端XMLHTTP接口,程序员不需要了解XMLHTTP的细节,就可以编写自己的XMLHTTP应用系统。(Lostinet好像在做Janc的下一个版本,叫做Rane)
想想,用Bindows构建客户端的显示界面,而与服务器的传输用Janc来实现,岂不是天作之合?Web系统原有的界面交互性差、页面刷新等问题都可以很好的解决。
2、Smart Client + WebService
从这次的DevDays04,可以看到微软正在越来越重视WinForms。现在微软把新一代的WinForms程序称为Smart Client(开始我看到这个名字也认为是手机、PPC等移动客户端),它更好的解决了传统的Windows程序原有的部署(用ClickOnce可以很好的Publish到Web服务器、FTP服务器、局域网共享目录等地方)、升级(自动的版本检测、下载、更新)、安全等问题。其实.NET很早就提供了类似的功能,比如Updater Application Block很早就出来了。
Smart Client加上WebService,不但给用户更丰富的界面体验,而且和网络有了更好的交互性,即使在Offline的时候,也可以利用缓存来继续为用户服务。
Smart Client面临的最大的问题,仍然是现阶段.Net Fx在客户端的安装问题,即使只是一个20M的分发包,有时候要说服客户安装也不是一个简单的问题。
3、Avalon + Indigo
Yes!在将要到来的Longhorn时代,WebForms和WinForms终于融合在了一起。Avalon(XAML)构建的客户端,加上Indigo的通讯架构,将带给我们前所未有的软件使用体验。
4、其他
虽然Java刚刚出现的时候,Applet被当作一项主要技术被大力宣传,但现在的确应用已经越来越少了。Java WebStart好像现在是被SUN大力推广的一项Rich Client技术(对Java不了解,不敢随便乱说…)。
后记:
在写完上面的文字并发布以后,随手打开了CSDN的文档中心,然后立刻发现了一篇观点和上面文字一致的文章,《迎接Client/Server模式的回归》,并从这篇文章里面找到了另一篇文章的链接,《Back to the Future with Smart Clients》。感觉是:1、天哪,我真的没有抄袭...2、看来有这个想法的不是只有我一个人...