举起,玩!或BlueEyes(带有一堆Javascript框架)

and*_*nka 21 javascript architecture scala lift playframework

我发现自己有点难题.我正在构建一个新的,现代的,基于Web的应用程序,我不仅需要选择一种技术,我必须选择一种架构.我认为现在可以说这是一个艰难的选择,因为我们有比5年前更多的选择.

首先,我已经决定Scala将成为服务器端语言.我有我的理由,这不是Scala与XYZ的帖子 - 已经做出了选择.我也已经完成了这样一个事实,即我们在网络上,在云端,所以我甚至都不会试图摆脱Javascript.也许我会使用CoffeeScript,但我将编写浏览器托管的代码.

现在,假设Scala,大多数人可能会跳到Play!提升.可能会玩!鉴于它得到了Typesafe支持,但我认为我还有另一个需要首先回答的更重要的问题.什么是建筑?如果我想要一个非常富有的客户端,我真的需要的不仅仅是一个简单的无状态服务层,因为我们还有大量的Javascript吗?我不确定它会是一个单页的webapp,但像BlueEyes这样的东西可能是正确的选择吗?举起并玩!更重要的是他们承担更多的责任.他们生成HTML,对于这些框架,浏览器非常愚蠢.路由,验证,Ajax和Comet支持等都是服务器端的问题.由于浏览器今天功能更强大,因此通常通过从服务器生成和注入Javascript来实现丰富的交互式功能.

我的问题归结为这个.我是否选择传统的电梯/游戏!服务器承担客户端和服务器责任的框架,还是使用富客户端+ REST风格的服务层,客户端在应用程序中扮演更重要的角色?客户端处理路由,验证,绑定等的架构.我看到像KnockOut.js,Sammy.js,Sproutcore,Backbone.js这样的框架......我不打算将它们全部列出但只需要从客户端的角度来看,他们都采用了一些这些框架功能.

如果我选择Play!,我会放弃一些丰富的UI吗?那些我想为集成/混搭/移动目的提供服务API的情况呢?玩怎么玩!在这帮我?显然BlueEyes在这里发挥得很好.我想我无论如何都需要一个服务层.

如果我选择BlueEyes,我的客户端代码是什么样的?我需要有多少基于Javascript的框架才能满足我的需求?我仍然希望在我的服务层中使用大部分业务逻辑,但路由,绑定......所有UI内容都是客户关注的问题.

我不确定答案是对还是错,但我认为这个社区可能会指出我正确的方向.

我也把它发布到我的博客http://www.andyczerwonka.com/picking-a-web-technology-isnt-as-easy-as-it-u-45228

fmp*_*ard 18

如果你想要的只是后端的REST API,那么升,玩!或者Blueye工作得很好.但我只想指出使用Lift的优势.

  1. Lift试图强制做两个方面,前端和后端都是不正确的.我们支持REST仅使用Lift,它鼓励正确的项目.
  2. 虽然Lift附带了jQuery和蓝图,你可以使用任何javascript库和css框架,目前很多人都在邮件列表上显示他们如何使用twitter boostrap和Lift.请参阅此Lift模块,该模块有助于集成Bootstrap.
  3. 使用Lift,您可以开始无国籍,如果您发现自己的需求发生变化,那么您可以全力以赴.您甚至可以在同一个应用程序中混合和匹配它们.
  4. 想要一些现代的UI?Lift的彗星支撑是一个,如果不是最好的那个,那里.在许多浏览器/工作负载上使用,验证和测试非常简单.我写了几篇展示Lift彗星支持的帖子.
  5. 如果您决定在前端和后端使用Lift,则可以免费获得默认情况下受保护的应用程序,无需担心xss,xsrf或许多前10个OWASP安全漏洞.
  6. 需要商业支持,有越来越多的名单在这里
  7. 需要培训?伦敦有一项基础培训,而Lift的创始人也提供其他培训课程.
  8. 有几本关于电梯的书籍.提升行动,简单提升探索电梯
  9. 有一个非常活跃的社区随时准备提供帮助.
  10. 谁使用Lift?仅举几例:Foursquare,OpenStudy,英国卫报,StackMob等等.

好吧,我应该停在这里,但简而言之,Lift是一个很棒的框架,可以提供很多东西,你可以根据需要采取多少.


Dom*_*orn 4

Play 2.0 Beta 包含一个正是您正在寻找的示例应用程序 (ZenContacts)。它的服务器端只是一堆宁静的接口,而它的客户端利用coffescript等来构建丰富的用户界面。