18

三个 Smalltalk Web 应用程序框架之间有什么区别?

一些起点:

  • 每个框架的最佳点是什么?在哪种情况下您会使用其中一种?
  • 他们的弱点是什么?
  • 哪一个的 URL 最干净?
  • 他们如何处理 Ajax?
  • 他们在使用持久性方面是否有一些偏好?

我只是想决定哪种框架适合每种应用程序。

4

4 回答 4

6

我只能回答海边:

目标: Seaside 以复杂的 Web 应用程序为目标,重点关注可重用性和开发效率。有自动会话状态管理和后退按钮支持。两本免费的在线书籍Dynamic Web Development with SeasideSeaside Tutorial提供了文档。

弱点:对于 RESTful URL,您必须做一些额外的工作。

干净的 URL:对于 RESTful URL,您必须做一些额外的工作,但这是值得的(例如Pier)。

AJAX: Seaside 中集成了很多 AJAX 库(jQueryjQueryUIPrototypescript.aculo.us,...)。这些集成使您可以从 Smalltalk 中完全访问这些库。可以轻松集成新库,例如JQueryWidgetBox

持久性: Seaside 是一个 Web 应用程序框架,而不是持久性框架。您可以使用最适合您的任何持久性解决方案,例如 GemStone、GOODS、GLORP...

另请参阅 StackOverflow 上的其他问题/讨论:

于 2011-01-09T08:43:20.800 回答
6

我可以在伊利亚特方面说一些话:

Sweet spot(s):它可以轻松地处理 AJAX。对我来说,那是让我转向伊利亚特的转折点。此外,它非常小巧且不臃肿,您可以在一天内阅读整个代码并掌握它的工作原理。

缺点:社区也很小。这导致缺乏文档、附加模块或预制小部件。OTOH,小社区往往更愿意互相帮助,所以几乎所有的疑问都可以通过在邮件列表中询问来解决。

URLs:好吧,因为 Iliad 中的所有调用默认都是 AJAX,所以 URL 始终保持干净。

阿贾克斯:是的。免费且默认。您只需#markDirty 一个小部件,它就会自动更新。定义依赖关系就像发送#addDependantWidget: 到一个小部件一样容易,这样当第一个被标记为脏时,两者都将被更新。此外,如果客户端没有支持 javascript 的浏览器,所有调用都将自动回退到常规 HTTP 请求。

持久性:没有偏好。由于模型与框架分离(我认为这适用于三个框架),您仍然可以遵循与 Aida 或 Seaside 相同的准则。

于 2011-09-20T07:38:40.803 回答
5

对于Aida/Web

最佳点:开箱即用的实时 Web 支持,适用于内容网站和复杂的 Web 应用程序,HTML5 和移动支持,包括 Web 服务器,因此它在安装后立即运行,您可以从同一个图像提供许多虚拟网站。

缺点:缺乏文档,社区小

URLs:总是干净的 REST-like URLs,因为 Aida 从一开始就遵循 moto:每个域对象都可以有它的 URL(也是由 Alan Kay 写的),域对象甚至可以自己选择它的 URL。

Ajax:无缝集成,你看不到它了,一切都在那里。要刷新网页上的某些元素,您只需调用e update. 无需了解任何 jQuery 或其他 JavaScript。实时网络应用程序也是如此。WebSocket 协议是支持的浏览器上的默认通信通道,用于在浏览器和基于 Aida 的服务器之间交换 JSON 消息。

持久性:默认情况下启用基于图像的持久性,每小时自动快照一次。为下一步提供宝石/玻璃支持。如果需要,关系/其他数据库是域级别的职责。

更多:

于 2011-09-20T15:15:49.903 回答
1

对于 Seaside 的一些持久性解决方案,有一个页面。那里的大多数解决方案都独立于 Seaside。

于 2011-01-16T23:47:00.083 回答