小鸿说SmartSWT技术“很好很强大”。我初闻此技术,就搜索了一下相关资料。特别分享~~

SmartSWT与流行RIA平台的比较    
    B/S应用与C/S应用相比,B/S应用的主要缺点是:
    1. 客户端UI表现能力不足
    2. 客户端表现主要基于HTML、XML之类的脚本语言,而桌面应用开发基于事件驱动,而且有大量成熟的可视化设计工具,如Delphi,VS.net等。相比之下WEB应用开发的可视化设计工具更多是设计UI,而较难把业务逻辑与UI集成开发。
    C/S的主要问题是:
    1. 安装部署不便
    2. 升级及客户端程序的维护不方便
    3. 需要自己定义客户端和服务端间的通讯协议、数据交换,开发者需要了解TCP/IP之类的协议,开发复杂度较高。

    为了克服各自的缺点,出现了一些如SmartClient、Flex等RIA技术,从各自不同的方向对两者进行了改进。

    微软的SmartClient技术是从C/S方向出发改进了C/S应用程序部署方式。但其本质上仍然是C/S模式的应用,应用程序需要自己维护客户端和服务端的通讯,业务逻辑分布于客户端和服务端,开发复杂度和维护仍然有不足。

    Macromedia的Flex技术则从B/S方向出发改进B/S应用的UI表现,它利用Flash出众的表现能力做为UI表现层,其它则与传统的B/S应用开发保持一致,较好的解决了B/S的不足。但也有一些问题,如:需要客户端安装一个Flash插件,这个问题不大;但开发需要使用基于XML的一套专有标记语言,仍然是脚本方式开发,增加了开发复杂度,而且Flex的脚本似乎不支持动态控件创建,比如不能临时根据程序逻辑创建一个未定义过的窗口等,造成应用开发上有一定的局限性。

    还有如Bindows直接在HTML基础上进行CS界面的模仿,也存在一些性能问题,而且许多控件的实时事件不能完全模拟,表现力与真实的CS界面仍然有较大差距。
    其它一些技术方案或多或少与上述类似,完美的方案目前阶段尚不存在,任何对B/S或C/S进行改良的方案,或多或少都要在其它方面付出相应的代价。

    SmartSWT也是从B/S方向出发对传统B/S模式的一种改良,相比较而言,它与上述方案相比有以下优点:
    1. 拥有和C/S应用一样的UI表现:因为SWT控件本身就是使用系统本地控件,实际上使用的是和桌面应用同一个控件。
    2. 拥有C/S一样的开发方式,使用基于事件驱动的开发方式:SmartSWT应用本身就是一个标准的SWT应用,可以使用成熟的SWT可视化开发工具(如:Designer),完全不需要与脚本打交道,开发人员只需要掌握一种开发技能――SWT开发技术即可。
    3. 拥有和B/S一样的部署方式,基于WEB访问:开发人员只需关注于用JAVA+SWT实现业务逻辑即可,不需同时开发客户端和服务端两套应用,只需按桌面应用的开发方式实现逻辑并部署在服务端,则其它客户端只需通过IE浏览器即可访问,不需要维护客户端和服务端的通讯,不需了解TCP/IP等通讯协议。

    简言之,SmartSWT技术能让你的标准SWT桌面应用程序直接部署成为一个基于B/S模式的WEB应用程序。

    如前所述,任何改良均需付出其它方面的妥协,SmartSWT也不例外:
    1. 客户端的浏览器需要安装一个SmartSWTClient的ActiveX插件,这点和Flex一样,Flex需要在浏览端安装一个Flash播放器插件。
    2. 浏览器目前暂只支持IE5.0以上浏览器,同时这也限定了客户端必须是Windows系统,但服务端并没有限制,可以运行在任何支持JAVA的操作系统上。
    3. SmartSWT对网络条件要求较高,要有很好的网络数据传输速度,需要有2M以上的带宽,所以它必须运行在局域网内,而且最好是有线局域网,在无线局域网性能表现不佳。

    如果您的应用是基于内网的企业应用,那么以上问题通常不会成为障碍,SmartSWT将是您RIA开发的上佳选择。

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=593926