三个Smalltalk Web应用程序框架之间有什么区别?
一些起点:
我只是想确定哪种框架适合各种应用程序。
答案 0 :(得分:6)
我只能回答海边:
目标: Seaside针对复杂的Web应用程序,重点关注可重用性和开发效率。有自动会话状态管理和后退按钮支持。这两本免费在线图书Dynamic Web Development with Seaside和Seaside Tutorial提供了文档。
弱点:对于RESTful网址,您必须做一些额外的工作。
干净的网址:对于RESTful网址,您必须做一些额外的工作,但这是值得的(例如Pier)。
AJAX:在Seaside中集成了大量AJAX库(jQuery,jQueryUI,Prototype,script.aculo.us,...) 。通过集成,您可以从Smalltalk中完全访问这些库。可以容易地集成新的库,例如, JQueryWidgetBox
持久性:Seaside是一个Web应用程序框架,而不是一个持久性框架。您可以使用最适合您的持久性解决方案,例如: GemStone,GOODS,GLORP,......
另见StackOverflow上的其他问题/讨论:
答案 1 :(得分:6)
我可以在伊利亚特方面说些什么:
Sweet spot(s):它无痛地处理AJAX。对我而言,这是转向Iliad的转折点。此外,它非常小而且非膨胀,您可以在一天内阅读整个代码,并掌握它的工作原理。
弱点:社区也很小。这导致缺少文档,附加模块或预制小部件。 OTOH,小社区往往愿意更热切地互相帮助,所以几乎所有的疑虑都可以通过在邮件列表中询问来解决。
网址嗯,因为默认情况下Iliad中的所有调用都是AJAX,所以URL始终保持干净。
Ajax:是的。免费,默认情况下。你只需#markDirty一个小部件,它会自动更新。依赖关系很容易定义为将#addDependantWidget:发送到窗口小部件,因此当第一个被标记为脏时,两者都将被更新。此外,如果客户端没有支持JavaScript的浏览器,则所有呼叫都将自动回退到常规HTTP请求。
持久性:没有偏好。由于该模型与框架分离(我认为这适用于三个框架),您仍然可以遵循与Aida或Seaside相同的指导原则。
答案 2 :(得分:5)
对于Aida/Web:
甜点:开箱即用的实时网络支持,包括内容网站和复杂的网络应用,HTML5和移动支持,包括Web服务器,因此安装后立即运行,可以提供多个虚拟服务来自同一图片的网站。
缺点:缺乏文档,小社区
网址始终清除类似REST的网址,因为Aida从一开始就遵循moto:每个域对象都可以拥有其URL(也是Alan Kay),域对象甚至可以选择其URL本身。
Ajax:无缝集成,你再也看不到它了,一切都在那里。要刷新网页上的某些元素,只需拨打e update
即可。无需了解任何jQuery或其他JavaScript。同样适用于实时网络应用程序。 WebSocket协议是受支持浏览器上的默认通信通道,用于在浏览器和基于Aida的服务器之间交换JSON消息。
持久性:默认情况下,每小时启用基于图像的持久性自动快照。 Gemstone / GLASS支持提供下一步。如果需要,关系/其他DB是域级别的职责。
更多信息:
答案 3 :(得分:1)
对于Seaside的一些持久性解决方案,有一个page。大多数解决方案都独立于Seaside。