我试着对这个问题非常谨慎.Smalltalk中至少有三种不同的Web开发框架.最突出的似乎是Seaside,但也有AIDA/Web和Iliad.
他们似乎非常相似,但这种印象可能是错误的.我想知道是谁尝试过不同的工具,可以分享不同软件包的优缺点.
更具体的问题是,你知道吗,让我们说在预订领域的任何软件都选择使用三个(或其他)Web开发框架中的任何一个.
这是另一个问题.成熟度和兼容性如何?哪个框架可以判断为"最"稳定?
我的实际经验中有99%来自Iliad,所以我的比较主要是关于我如何选择Iliad而不是其他人.
海滨.首先尝试它,它是最知名的,也是你偶然发现的第一个.我发现它很难理解(一如既往,无论你使用什么,当它真正实现时,你总会遇到与一般理论非常相符的问题),周围几乎没有文档,社区似乎很少关心告诉n00bs如何成长.我最终放弃了检查阿依达.你可以在这里找到它们:http://seaside.st/和#seaside的IRC
阿依达.我非常喜欢它,因为Janko非常耐心和支持.但它很大.我决定使用它,当我开始实施我们的项目时,我只是偶然地在开始前几天遇到了Iliad.你可以在这里找到Aida:http://www.aidaweb.si/,在#Aida的IRC上找到
伊利亚特.我选择它的主要原因是我刚刚放弃了Squeak并切换到了gnu-smalltalk.gst似乎在Iliad上有很多正在进行的活动,所以我估计我可能会得到更好的帮助.它作为一个概念要小得多(尽管它绝对做到了一切)并且我在开始时把它调整到我需要的东西时遇到了很少的麻烦.它也被证明是管理良好的,因为我通过3次发布而没有遇到我已经部署的问题.你通常会在12-24小时内得到问题的答案,这对我来说很好.你在这里找到Iliad:关于IRC问题的http://www.iliadproject.org/index通常在#gnu-smalltalk频道上发布
我们正在做的是用于管理大型多媒体字典的PostgreSQL数据库的GUI,该数据库反过来产生内容(以及其他用于KDE-edu的内容).我一般都没有预订应用程序的概念,因此我无法正确回答您的问题.
然而,作为一名分析师,预订应用程序主要是一个带有在线GUI的数据库,所以我认为没有理由不能做到这一点.很大程度上取决于您的数据库可以轻松地转换为对象.您可以像我们一样使用RDBMS,并设计表来映射对象,或使用OODBMS.我会说,这两种解决方案都有优点和缺点,它们都不会对你选择的框架产生影响.
我的建议是你需要一个月左右的时间进行实验,看看哪种更适合你.我不认为有适合每个人的工具,我们都是不同的,对我来说容易对其他人来说可能是地狱(反过来,显然).所以在购买之前试试你的车;)
我不会投入太多时间研究一般理论.无论如何,使用smalltalk框架将会颠覆你制作网络应用程序的方式,而你的第一次接触将充满你从以前的心态继承的"假朋友".你最好的资产肯定是"我能多快掌握他们告诉我的内容",这在很大程度上取决于你和你碰到的人.所以我真的建议你在阅读太多理论资料之前先弄清楚.
这些框架都是完全不同的,并且有不同的目标.协作创建某种比较会很有趣.
作为Seaside的作者,我只能提供Seaside的关键属性:
Seaside使构建Web应用程序感觉就像组成传统的GUI:组件可以自由组合和重用.使用一系列Smalltalk语句定义组件序列.
Seaside具有分层架构,通过低级概念(HTTP,请求,响应,URL,HTML,JavaScript)为您提供高级抽象(组件,控制流,回调,HTML生成,JavaScript生成......).如果您需要,Seaside也可以让您完全访问低级构造.
有两本Seaside书籍可以帮助您入门:使用Seaside和Seaside Tutorial进行动态Web开发.
Seaside与各种先进的Web技术紧密集成:JavaScript(JQuery和JQueryUI),SVG,RSS,HTML5,Comet(服务器推送)
Seaside在大多数今天的Smalltalk平台上运行相同:Pharo Smalltalk,Squeak,GNU Smalltalk,GemStone Smalltalk,VW Smalltalk,VA Smalltalk和Dolphin Smalltalk.所有Smalltalk平台供应商都支持它.
Seaside为元建模(Magritte)和内容管理(Pier)提供业界公认的开源组件.
让我介绍Aida/Web的一些优点,因为作为作者,我很难与其他两个框架进行比较.Aida的优势是:
RESTfull URL
MVC支持,每个域对象都可以拥有自己的RESTfull URL,每个域类都有自己的Web表示类,
集成的AJAX和Comet支持,您再也看不到传统和Ajax编程之间的任何区别,
类似于 GUI的控制流的树状控制流,无需延续
通过组件/元素编写以编程方式构建Web页面(无基于模板)
可扩展的复杂性和性能
具有访问控制和用户/组管理的集成安全性
移植到大多数Smalltalk方言:Squeak/Pharo,VisualWorks,Gemstone GLASS,Dolphin,Smalltalk/X
阿依达工作的最佳和最新鲜的例子是今年的Smalltalk Google Summer of Code网站.
这是一个很好的例子,因为它总共可以在一周内开发,同时开发GSoC流程并同时作为管理员管理该流程.该网站实际上是一个扩展的Aida/Scribo CMS,强烈使用所谓的scriblets,即动态网络"包含"直接进入网站的内容.通过这种方式,我能够非常快速地支持在不断发展的GSoC流程中出现的新想法.