升降机由分立元件组成。举重支持喜欢的人JNDI、JTA、JPA等J/EE的这些元素是Lift模块化的有力标志设计。

  • Lift的观点哲学是“让开发者决定”提供了一种不允许任何逻辑的模板机制视图中的代码,一种基于执行Scala的视图机制代码和Scala的XML文本,以及基于缩放(请参见http://scalate.fusesource.org/). 如果选择XML模板机制,则选择如果有,加价在您的业务逻辑中属于多少。无法在Lift的XML模板中表达任何业务逻辑。
  • Lift的目标<->坚持的理念是“让开发者决定。“Lift具有作为ActiveRecord的Mapper样式对象关系映射器。它可以小题大做项目。提升支架JPA。Lift有一个记录抽象支持将对象往返于关系数据库,进出NoSQL存储(Lift包括本机支持CouchDB和MongoDB,但适配器层是几百行代码,所以如果你想要卡桑德拉或其他的东西,要得到它并不需要很多工作。)基本上,提升Web框架不依赖于对象的方式具体化为一个会话。此外,会议和请求循环是打开的,以便将事务挂钩插入请求/响应周期很简单。
  • Lift的理念是“服务器团队需要了解一个语言,而不是多种语言。“这意味着配置是通过Scala完成的。这意味着我们没有必须在XML中实现40%的Java语言结构创建灵活配置选项的语法。这意味着编译器语法和类型检查配置数据运行时。In意味着您不必拥有这样的IDE了解注解的细节根据您正在使用的库使用。

我写道:http://blog.lostlake.org/index.php?/archives/16-Web-Framework-Manifesto.html网站在我开始写Lift之前。在很大程度上比任何其他web框架的真实程度更高知道吗,Lift实现了这些目标。

Lift的核心是抽象HTTP请求/响应循环,而不是放置对象包装器围绕HTTP请求。在实际层面上,这意味着用户可以执行的大多数操作(提交表单元素,执行Ajax等)由浏览器和服务器上的功能。当GUID为作为HTTP请求的一部分,函数是使用提供的参数应用(调用)。因为GUID很难预测和特定会话的重放攻击而且许多参数篡改攻击要困难得多与包括Spring.It在内的大多数其他web框架相比,Lift更具优势也意味着开发人员更有效率,因为他们关注用户操作和与用户操作,而不是打包和拆包的管道HTTP请求。例如,接受或拒绝Foursquare好友请求:

ajaxButton(“接受”,()=>{request.Accept.save;SetHtml(“acceptrejectspan”,<span/>})++ajaxButton(“拒绝”,()=>{request.Reject.save;SetHtml(“acceptrejectspan”,<span/>})

就这么简单。因为friendRequest在范围内创建函数时,函数将关闭范围。。。无需公开朋友请求或做任何其他事情。。。只需定义按钮(可以本地化,也可以从XHTML模板或可以从本地化模板中提取)以及按下按钮时要执行的功能。电梯负责分配GUID,设置Ajax调用(通过jQuery或YUI,是的,您可以添加自己的收藏夹JavaScript库),使用回退进行自动重试,通过排队Ajax请求等来避免连接不足。

Lift与功能相关的GUID理念具有更好的安全性和更好的开发人员的双重好处生产力。GUID->函数关联已被证明非常耐用。。。相同的构造适用于正常形式、ajax、,comet、多年龄的巫师等。

Lift的下一个核心部分是保持高水平尽可能长时间地进行抽象。在页面上生成端,这意味着将页面构建为XHTML元素并将页面保持为XHTML格式,直到流媒体响应。好处是可以抵抗跨站点脚本编写错误,能够将CSS标记移动到头部,并将脚本移动到撰写页面后的页面底部,以及基于目标浏览器重写页面的能力。打开输入端,可以重写URL以提取参数(查询和路径参数)以类型安全的方式,高级别,安全检查数据可用于处理在请求周期的早期。例如,下面是如何定义REST请求的服务:

服务{case“api”::“user”::AsUser(user)::_XmlGet_=><b>{用户名}</b>case“api”::“user”::AsUser(用户)::_JsonGet_=>JStr(用户名)}

使用Scala的内置模式匹配,我们将请求,提取路径的第三部分并获取用户对应于该值,甚至应用访问控制检查(当前会话或请求是否有权限访问给定的用户记录)。因此,当用户实例命中应用程序逻辑,它已被审查。

凭借这两个核心部件,Lift在以下方面具有巨大优势担保条款。让您了解电梯的安全不会妨碍功能,拉斯穆斯勒多夫(http://en.wikipedia.org/wiki/Rasmus_Lerdorf)谁为雅虎做安全工作!关于FourSquare(Lift poster-child站点之一):

四星@foursquare-第一个站点过了一会儿我仔细看了看没有一个安全措施(我能找到的)问题

Rasmus Lerdorf@推特

http://twitter.com/rasmus/status/5929904263

当时,Foursquare有一名工程师在开发代码(并不是说@harryh不是一个超级天才),他的主要关注点是重写Foursquare的PHP版本,同时处理每周流量翻倍。

Lift安全重点的最后一部分是SiteMap。这是一个统一的访问控制、站点导航和菜单系统。这个开发人员使用定义每个页面的访问控制规则Scala代码(例如。如果(User.loggedIn_)如果(用户.超级用户_))并且在任何页面之前应用这些访问控制规则渲染开始。这很像Spring Security,除了它从项目开始就被烘烤了访问控制规则与应用程序,因此您不必有更新当URL更改或计算访问控制更改。

综上所述,Lift的设计理念为您提供了内置访问控制的好处,对OWASP的抵抗前10个安全漏洞、更好的Ajax支持和更高的开发人员生产力。

但Lift也为您提供了所有web中最好的Comet支持框架周围。这就是Novell选择Lift的原因脉冲产品(http://www.novell.com/products/pulse/)下面是Novell对Lift的评价:

Lift是一种web框架使您作为开发人员能够专注于全局。强大、富于表现力的打字和更高级别的功能,如内置Comet支持允许您注重创新,而不是管道。构建一个丰富、实时的网络应用程序,如Novell Pulse需要一个具有以下能力的框架提起盖子下面。

所以,Lift不仅仅是另一个me-too MVC框架。它是一个框架背后有一些核心设计原则已经成熟得很好了。这是一个提供双重功能的框架安全性和开发人员生产力的优势。Lift是一个构建在层中的框架,为开发人员提供根据他们的需求做出正确的选择。。。视图的选项生成、持久性选择等。

Scala和Lift为开发人员提供了比XML、注释和其他构成习惯用法的混杂春天。


提升3.3.0

2018/07/21 Lift团队自豪地宣布发布Lift 3.3.0。


提升3.2.0

2018/01/27 Lift团队自豪地宣布发布Lift 3.2.0。


升降机3.2.0-RC1

2017/12/16 Lift团队自豪地宣布发布Lift 3.2.0-RC1。


扬程3.2.0-M3

2017/11/16 Lift团队自豪地宣布发布Lift 3.2.0-M3。


电梯3.2.0-M2

2017/09/15 Lift团队自豪地宣布发布Lift 3.2.0-M2。


提升3.2.0-M1

2017/07/23 Lift团队自豪地宣布发布Lift 3.2.0-M1。


提升3.1.0

2017/07/02 Lift团队自豪地宣布发布Lift 3.1.0决赛。


提升3.1.0-RC1

2017/06/18 Lift团队自豪地宣布发布Lift 3.1.0-RC1。


提升3.1.0-M3

2017/05/20 Lift团队自豪地宣布发布Lift 3.1.0-M3。


电梯3.1.0-M2

2017/04/13 Lift团队自豪地宣布发布Lift 3.1.0-M2。


电梯手册

Entwicklung von Web-Applikationen mit Lift und Scala公司托马斯·菲德勒(Thomas Fiedler)和克里斯托夫·克纳贝(Christoph Knabe)。

简单地举起,作者David Pollak是一本开源书,在PDF和HTML版本都位于http://simply.liftweb.net/.

探索电梯,作者Derek Chen-Becker、Tyler Weir和MariusDanciu是一本开源书,在PDF和HTML版本都位于http://exploring.liftweb.net/.

起重作业作者Tim Perrett提供打印和电子书格式。

提升食谱社区问答书,免费访问烹饪书.liftweb.net

提升Web应用程序操作方法作者:托尔斯滕·乌尔曼提供打印和电子书格式。

电梯应用开发食谱通过小吉尔伯托·T·加西亚。提供打印和电子书格式。