| |
JavaEye上有人讨论Ajax UI组件的设计问题。
http://forum.javaeye.com/viewtopic.php?t=20103
因为他们提到了我,所以我来做一下评论。
关于Ajax UI组件的设计,我现在比较赞同hexiaodong的看法,如果能够做到与服务器松散耦合,会带来很多的好处。我相信SOA是做Ajax开发最理想的一种架构。但是与服务器紧密耦合的Ajax UI组件库也有很多,例如:
基于Prototype的框架在相当大程度上是与RoR绑定在一起的。
Atlas基本上是与ASP.NET绑定在一起的(虽然其开发者宣称可以脱离开ASP.NET使用,但是我需要看到更多的证据)。
Sun即将推出的Ajax框架也会与JSF绑定在一起。
这样做主要的好处就是服务器端的开发人员很多时候甚至不需要了解JavaScript(当然,他们所依赖的天神一样的xxx同志必须要精通JavaScript,帮助他们降服JavaScript、XHTML、CSS、DOM这一群恶魔)就可以实现一些Ajax功能了。
相比之下,Dojo是一个相当中立的Ajax框架,可以为各种服务器端的语言和架构来服务。而中立性正是Dojo所追求的一个目标。
Don’t tie the toolkit to a single server-side language, but provide good support for many of them.(Dojo Roadmap)
Ajax in Action的作者也明确表示,他们认为未来最有前途的Ajax应用是以数据为中心的应用,并且认为基于SOA的架构来做Ajax开发最为自然。相对而言,其他类型的服务器端架构与Ajax配合好要困难一些。
这两种开发Ajax UI组件的方式看来会长期并存下去,不断竞争。这个问题我现在也没有定论,还需要进一步的观察和思考。
关于客户端与服务器端MVC的配合问题,Ajax in Action的作者认为MVC架构是以一种相互嵌套的方式来工作的,客户端的MVC是在服务器端Model2框架的View中划分出来的。具体的划分方式详见Ajax in Action中文版第4章。此外,本站会员jasonhsu去年写过一篇有趣的论文,大家也可以看看。
而我们认为在基于SOA的架构中,服务器端的Model2框架的价值大打折扣,不再是必需的。详见:我们需要重新思考Model2的价值。
最后,我强烈建议大家不要关起门来做自己的事情,有空了多看看外面的世界,情况会好得多。我给大家推荐Ajax in Action这本书和Dojo这个很好的框架。 |
|