代码之家  ›  专栏  ›  技术社区  ›  Ceki

对于我的下一个项目,web应用程序,应该使用scala+wicket还是scala+lift?

  •  20
  • Ceki  · 技术社区  · 16 年前

    换句话说,电梯和小门相比怎么样?考虑到web应用程序将采用Scala,使用Lift是否可以让我作为一名开发人员的生活更轻松?

    3 回复  |  直到 15 年前
        1
  •  30
  •   David Pollak    16 年前

    如果你喜欢小门,你应该坚持你所知道的;就像。Wicket是一个很好的web框架,正在做Scala&Wicket非常好,因为您可以使用Scala的特性在Wicket中组成类。。。它真的减少了样板与Java的对比。

    Lift有Wicket没有的优势:

    • 更好的Ajax支持。Lift的Ajax支持远没有Wicket的详细。如果您打算大量使用Ajax,那么学习Lift可能很有价值。
    • Comet支持。如果您的应用程序有一个服务器推送组件,那么Lift提供了比任何其他web框架更好的comet支持。
    • 电梯更像斯卡拉。如果您来自Java,那么Lift对模式匹配和函数传递的使用就是一条学习曲线。

    • Lift不需要您混合表示和业务逻辑。有很多选项可以让您根据自己的编码风格来适当地构造应用程序,从表示和逻辑的完全分离,到两者的广泛自由混合。你的选择。
    • 电梯和轨道的作用不同。Lift不是另一个metoomvc框架,我也没有将大量时间集中在Lift的CRUD方面。Lift涉及安全性、开发人员生产力、可维护性以及构建高度交互(Ajax和Comet)的web应用程序。Lift库包含很多模块,包括许多ORM模块,JSON支持,这部分是由于2-3年前Scala中缺少库,而且Lift社区非常棒,支持性很强,Lift发布过程非常好(每月的里程碑发布足够稳定,足以支持Foursquare)
    • Lift并不关注HTTP请求/响应周期。Lift专注于把这些东西抽象出来。开发人员将更少的时间花在参数命名上,而将更多的时间花在业务逻辑上。

        2
  •  15
  •   Randall Schulz    16 年前

    小门和电梯是完全不同的动物。我对这两种框架都有一些了解(但与您通常看到的专家级别相差甚远):

    Wicket:网站上的每个页面都有一个HTML模板页面和一个Java/Scala支持类。Wicket魔术是将HTML模板页面连接到相应的类,并将模板中的每个Wicket ID映射到类中的正确方法,以便在发送给客户端的生成的HTML页面中可以看到数据。就这样。小门是纯网,仅此而已。在Wicket中编写自己的图形组件并从中继承非常容易。

    Lift与Rails的功能相同(映射到DB),但与Rails有很大的不同。Rails的思想遗产是显而易见的,因为Lift中的一些api使用Ruby语法(在inspector中带有下划线和问号),这可能会让Scala开发人员感到惊讶。Lift不是Wicket那样的经典MVC框架,它是ModelView模型。实际上,Lift更关注于请求-响应周期。它旨在模拟事件驱动的GUI编程(如JavaSwing或.NETGUI)。这意味着HTML元素和操作是在同一个位置编写的:

    var inputName = ""
    SHtml.text(inputName,s => inputName = s)
    

    <input type="text" value=""/>
    

    并将函数连接到变量,以便存储输入。即使使用AJAX而不是httpget/POST,结构也是相同的。

    举重很有表现力和力量,但不是很容易。

    如果这不准确,请纠正我!

        3
  •  10
  •   Magnus    16 年前

    我在Lift里做了几个网络应用。我来自一个传统的Java背景,有很多Maven+JSF/Facelets+Spring+Hibernate,我必须承认,尽管我喜欢Scala,但我对Lift的一些缺点感到失望。特别是,我认为代码片段经常将业务规则与接口细节混合在一起。而且,实现全面的单元测试非常困难。

    我不熟悉Wicket,但目前我正在编写一个使用Play框架的应用程序。Scala支持基本上工作得很好,并且有一个Akka模块。对于任何需要扩展的非平凡应用程序,Akka都是极好的。

    Play看起来非常有前景,尽管它仍在积极开发中,文档似乎也相当不错。CRUD框架非常适合快速进入功能状态,或者为不经常更改的数据构建简单的管理接口。

    推荐文章