什么是Smart Client?
Smart Client 即 “智能客户端”.从技术上说Smart Client并不是一种新的技术,而是将许多概念,设计方法和技术进行了融合,吸取了传统B/S(瘦客户端)的易于版本控制和更新以及C/S(胖客户端)用户界面强大,使用客户机资源的特点. 在服务器端可以用WebService,在客户端可以用WinForm.
Smart Client的优点
易于升级
这和B/S构架比较类似,只要在服务器上更新软件,再进行简单的配置,客户端就可以自动进行软件的更新.比如在服务器上建立一个站点,客户端通过HTTP方式进行更新.
用户界面强大
可以把Client理解成与网络交互数据的WinForm程序,因此几乎可以使用WinForm上的各种控件和资源,突破B/S浏览器表现能力的限制,如通过WEB实现某些功能可能必须通过ActiveX或Applet.
易于整合客户端本地资源
可以充分使用客户端的计算能力,很方便的整合的客户端的软件和硬件资源.
允许离线工作
不用像B/S一样,要与网络实时的连接,数据交换要反复的刷新页面. Smart Client允许用户将数据下载后进行离线的数据更改,当用户重新Online,程序自动向服务器提交新数据进行更新.
开发Smart Client所需要解决的问题
自动升级
可以用VS.NET 2005 Beta2 中提供的ClickOnce技术,非常Easy!这个功能应该是CLR 和 .NET Framework 中的新功能.(ClickOnce的说明http://www.microsoft.com/china/msdn/archives/library/dnwinforms/html/ClickOnce.asp#clickonce_topic2).对这个技术还有一些不是很清楚的地方,主要是界面的定制,比如说一开始”正在启动就用程序”的窗体和发现新版本时提示升级的 窗体.
离线工作时的数据处理
这里主要解决在线时如何将数据保存在客户端.对于少量数据可以用XML保存,大量的数据可以用Access, MSDE.这样用户离线时就可以对数据进行读取和更改,待再次上线时程序判断哪些数据已经更改,然后将更改后的数据向服务器提交.
数据冲突
这个问题个人认为在一般的B/S系统中也存在,不过好像概率比较低,很多时候我们都不进行处理. 在Smart Client里离线的用户再次上线时将用户离线后更改的数据向服务器提交,这时非常有可能会出现数据冲突问题,因为用户可能离线非常长的时间. 所以有可能要进行数据冲突的处理.