Seaside编程和其他Web编程有什么区别

时间:2009-03-24 16:02:09

标签: smalltalk seaside aida

对我而言,Seaside的主要观点似乎是它更像普通的“桌面”节目。

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

我知道它是关于Web编程的,但它从程序员那里看起来并不像它。它看起来不仅仅是驱动“桌面”应用程序。这有点澄清这个问题吗?

3 个答案:

答案 0 :(得分:15)

Seaside的观点并不像桌面编程那样,尽管它确实试图消除Web开发的大部分痛苦。 Seaside以两种你可能会认为是“桌面应用程序”的东西而着称:

  1. 使用continuation允许您编写提示用户提供信息的多步骤流程
  2. 使用块(闭包)在单击链接,提交表单等时在代码中提供类似事件处理程序的“回调”。
  3. 这些事情极大地简化了某些Web开发任务,尽管第一部分最终在实践中很少被使用。

    海边提供了很多其他的东西,但是:

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

    其中大多数并非Seaside所独有,但它们有点不同寻常。那么它与其他网络编程有何不同?你可以用Smalltalk写。您不必在代码和模板语言之间来回转换。除非/直到您想要,否则您不必担心表单字段名称,URL等。如果你使用Seaside,你可能不会讨厌网页编程。

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

答案 1 :(得分:9)

您的印象是正确的。 Seaside被设计用于我称之为树状控制流程,就像桌面GUI应用程序一样。与Aida/Web相比,另一个Smalltalk Web框架,用于图形控制流程,实际上就是您在网络上的内容。

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

答案 2 :(得分:1)

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

修改 -

  

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