下一代的B/S开发框架--Echo 教程(9)
优点/缺点
这个话题本来放倒本教程的开头, 但是我想让各位从前面的的例子中做出自己的评价, 看看我们的结论是否一致:
优点:
用OO的方法开发B/S程序, 完全面向对象编程.
无需HTML和脚本知识, 由框架生成标准的HTML和脚本, 客户端仅仅需要浏览器, 无需额外插件.
服务器端控件提供状态管理
基于事件的编程方式.
可以利用模板沿用HTML界面.
基于窗口的状态管理, 而不是基于页面的状态管理
asp.net的状态管理基于页面. Echo的窗口管理基于Frame, 因此有如下好处:
打开/隐藏/关闭其它窗口
后台提交
页面根据需要刷新
修改其它窗口的控件后, 内容马上更新.
利用设计模式, 可以很好的统一风格. 方便后期页面修改
有大量的模板可用. 并且可以自行开发控件.
控件的积累/重用
模块化开发
适合编写复杂输入, 有多个子窗口的页面.
基于Servlet的机制, 可以和现有的框架(JSP,Struts,Coocoon)组合使用, 取长补短.
支持IE,Opera,Netscape,Mozilla.
缺点:
资源开销大, 不适合高负载场合
对浏览器版本有要求
自行开发控件有一定的难度
还没有成熟的数据绑定支持
缺乏可视化的开发工具
入口固定, 不能直接链接到内部. (很象桌面程序)
版本不稳定
Tips:
利用设计模式实现网页的MVC.
页面上有大量相似元件时, 可以把它写成控件, 直接使用.
EchoPoint使用前要先注册: echopoint.ui.Installer.register();
窗口的缺省属性是不自动关闭. window.setDefaultCloseOperation(Window.DISPOSE_ON_CLOSE);
调试时错误在IDE中不打印. 修改代码EchoServlet.
Resin在类发生变动后会马上Reload, 适合UI调试
通过Maillist向Echo提出改进建议.
向EchoPoint推荐你的控件.
做出代码修正请向作者提交, 它是LGPL的.
回头看看服务器端控件技术, 它在无状态的HTTP基础上模拟了有状态的连接, 实现了状态维护和事件处理. 代价是更大的资源消耗, 把开发人员的痛苦转嫁给了服务器. 它是傻瓜型的, 屏蔽的互联网的个性, 让没有B/S知识的人也能开发, 用桌面程序的写法来写B/S程序. 一些原来很复杂的桌面程序, 现在我们可以轻松搬到浏览器上来实现, 甚至代码移植都很轻松. 而客户端无需任何额外插件. ASP.net已经采用了. SAP即将推出的WEB DYNPRO技术也采用了类似的机制. 把它用在门户网站上可能不大合适, 用在OA, ERP之类项目上应该是明智之举.
感谢nextapp公司为我们提供了Open Source的Echo. 希望大家在享用的同时也能做些有帮助的事, 下面是我能想到的两个两件:
做个图形化的设计工具.
做个基于schema的动态界面生成/静态代码生成+数据绑定/验证的程序.
原来在教程6里面计划了一个午餐订饭的例子, 被我写的过于复杂, 因此砍掉. 有兴趣的朋友可以到这里下载: 里面用到了本教程里面提到的一些雕虫小技, 仅供参考.