10

对我来说,Seaside 的主要观点似乎是它更像是普通的“桌面”编程。

控制流看起来更像“传统”编程而不是“网络”编程。这是正确的印象吗?

我知道它是关于 Web 编程的,但从程序员的角度来看,它看起来不像。它看起来不仅仅是驱动“桌面”应用程序。这是否稍微澄清了这个问题?

4

3 回答 3

15

Seaside 的重点并不是真正类似于桌面编程,尽管它确实试图消除 Web 开发的大部分痛苦。Seaside 以您可能认为“类似桌面应用程序”的两件事而闻名:

  1. 使用延续来允许您编写提示用户输入信息的多步骤流程
  2. 每当单击链接、提交表单等时,使用块(闭包)在代码中提供类似事件处理程序的“回调”。

这些东西极大地简化了某些 Web 开发任务,尽管第一个最终在实践中很少使用。

不过,Seaside 提供了许多其他功能:

  • 在 Smalltalk 中编写 Web 应用程序的能力(非常高效和愉快)
  • 可组合、可重复使用的“组件”
  • 组件可以委托给其他组件,它只替换页面的那部分
  • 会话状态的轻松管理和某些状态可以在用户使用后退按钮时标记为回滚,因此在执行回调时它始终具有正确的值
  • 一个非常好的 Canvas API,用于以编程方式生成 HTML、JQuery、Scriptaculous
  • 能够在运行的站点上实时调试和修复错误

其中大多数不是 Seaside 独有的,但它们有些不寻常。那么它与其他网络编程有什么不同呢?你可以在 Smalltalk 中写作。您不必在代码和模板语言之间来回转换上下文。您不必担心表单字段名称、URL 等,除非/直到您愿意。如果您使用 Seaside,您可能不会那么讨厌 Web 编程。

人们可能会因为 Seaside 的“桌面编程功能”而发现它,但他们通常会为所有其他东西闲逛。

于 2009-03-24T21:43:17.177 回答
9

你的印象是正确的。Seaside 是为我所说的树状控制流而设计的,就像桌面 GUI 应用程序一样。与另一个 Smalltalk Web 框架Aida/Web相比,它用于类似图形的控制流,这实际上就是您在 Web 上所拥有的。

但是树状控制流在诸如确认对话框之类的情况下非常有用,或者对于这些天在 Facebook 上非常频繁的弹出窗口非常有用。这也是我们在 Aida/Web 中引入树状控制流的原因,也就是说,我们将两个控制流结合在一起。

于 2009-03-24T21:08:07.277 回答
1

Seaside是一个应用程序框架,用于开发用 smalltalk 编写的 Web 应用程序。看起来像“传统”编程是什么意思

编辑-

Seaside 架构不同于它的网页构建为单独的、有状态的组件的树,每个组件都封装了页面的一小部分

于 2009-03-24T16:16:53.777 回答