Dallas GUG Lift Presentation
Upcoming SlideShare
Loading in...5
×
 

Dallas GUG Lift Presentation

on

  • 959 views

 

Statistics

Views

Total Views
959
Views on SlideShare
956
Embed Views
3

Actions

Likes
0
Downloads
2
Comments
0

2 Embeds 3

http://www.linkedin.com 2
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Open web application security program (owasp)
  • Think of sbt as being similar to maven or antShow ide and run HowdyBasic
  • Field
  • Field
  • Field
  • Field
  • Field
  • Field
  • Field
  • Field
  • Field
  • Field

Dallas GUG Lift Presentation Dallas GUG Lift Presentation Presentation Transcript

  • An Introductionto LiftDallas, TXMay 02, 2012Discussion document – Strictly Confidential & Proprietary
  • Agenda …Where are we going?• Scala Web Frameworks• Why is Lift Different• In the Wild• The Basics of Lift – Getting Up and Running – Building Blocks – Page Templates – Snippets – Model – Business Logic An Introduction to Lift May 2, 2012 2
  • Agenda …Goals• Have an understanding of what Lift is• Have an interest in learning more• Go play with Lift! An Introduction to Lift May 2, 2012 3
  • Scala Web Frameworks …What web frameworks are available for Scala?Minimalist• Scalatra – Leveraged primarily for RESTful services – Used by LinkedIn for RESTful services supporting mobile platform• Unfiltered – Provides a consistent API for handling HTTP requests on various server backends – Used by Meetup for real-time APIsFull Stack• Includes ORM, view and state management• Play – MVC Model – Scala styling for the Java web framework – Supported framework of Typesafe• Lift An Introduction to Lift May 2, 2012 4
  • Why is Lift Different …Seven ThingsLift offers seven things that differentiate it from other frameworks• Lazy loading – Render page to browser while waiting for computation to complete – Once complete, render remaining HTML• Parallel page rendering – By labeling a snippet parallel, Lift will forward snippet to another thread in a pool of threads – When all threads are completed, results are combined and page is sent to browser• Comet and AJAX – Server push – long poll wait for AJAX response• Wiring – Interdependent page elements can be associated to one another – If a precedent element changes, dependent items are redisplayed on the next HTTP response• Designer friendly templates• Wizard – Define multi-page input screens with field and form level validation• Security An Introduction to Lift May 2, 2012 5
  • Why is Lift Different … Security …SecurityLift can withstand many of the OWASP Top 10 Security Vulnerabilities• Injection – Lift’s Mapper and Record libraries properly escape query strings before being sent to the backing store• XSS – Lift holds the rendered pages as a DOM until late in the page rendering cycle, allowing it to automatically HTML escape Strings before sending to the browser• Session Management – Lift uses the JEE container’s session management and keeps passwords hashed at all times with per-row salt• CSRF – Lift uses session-specific bindings between HTML elements and the server-side behaviors associated with those elements. Bindings cannot be predicted, so cross site requests of session- specific bindings is impossible• URL Access – Lift provides declarative rules for access to URLs. Access will be denied to a URL unless the criteria is met for accessing the specific URL An Introduction to Lift May 2, 2012 6
  • In the Wild …Lift is gaining traction OpenStudy – Collaborative learning tool used by MIT and many other top universities. FourSquare – Message queue in pure Scala. Website, mobile website and RESTful API running on Lift. StackMob– ‘Heroku for Mobile’. Novell – Pulse, a cloud-based, real-time collaboration platform for the enterprise. Utilizes Scala and Lift. An Introduction to Lift May 2, 2012 7
  • The Basics of Lift...What you need to know to get started!• Getting Up and Running• Building Blocks• Page Templates• Snippets• Model• Business Logic An Introduction to Lift May 2, 2012 8
  • The Basics of Lift …Getting up and runningRequired• Java 1.5 or greater• Scala 2.9.1 distribution• SBT – Simple Build Tool• Lift 2.4Optional• sbteclipse – create .project for Eclipse• IDE Plugin – ScalaIDE (Eclipse – must use Helios) – Scala Plugin for IntelliJ IDEA – Scala Plugin for NetBeansNotes:1) Installation of Scala and SBT involve expanding compressed file and adding to PATH2) IDE installation varies by tool; some dependency on IDE release number3) ScalaIDE officially supported by Typesafe An Introduction to Lift May 2, 2012 9
  • The Basics of Lift … Building Blocks…Building Blocks An Introduction to Lift May 2, 2012 10
  • The Basics of Lift … Page Templates…Page Templates An Introduction to Lift May 2, 2012 11
  • The Basics of Lift … Page Templates…Page TemplatesTemplates• A template is a well formed, designer friendly XML document• Code cannot creep into the document• Special tags to reference snippetsExample An Introduction to Lift May 2, 2012 12
  • The Basics of Lift … Snippets…Snippets An Introduction to Lift May 2, 2012 13
  • The Basics of Lift … Snippets…SnippetsSnippets• Any template element in the lift: or l: name space indicates a snippet• Snippets are functions that transform the invocating element into a new node• There can be multiple snippets per template• Snippets are evaluated in the order they are encountered• Processed serially, unless marked as parallel=trueExample An Introduction to Lift May 2, 2012 14
  • The Basics of Lift … Model…Model and Persistence An Introduction to Lift May 2, 2012 15
  • The Basics of Lift … Model…ModelModel• The model is the object representation of your persistence store• Lift includes two options Mapper and Record• Mapper typically used for relational databases• Record typically used for NoSQLdatastoresExample An Introduction to Lift May 2, 2012 16
  • The Basics of Lift … Business Logic…Your Business Logic An Introduction to Lift May 2, 2012 17
  • The Basics of Lift … Model…ModelModel• The model is the object representation of your persistence store• Lift includes two options Mapper and Record• Mapper typically used for relational databases• Record typically used for NoSQLdatastoresExample An Introduction to Lift May 2, 2012 18
  • The Basics of Lift … Business Logic…Your Business LogicBusiness Logic• Business logic resides in the lib directoryExample An Introduction to Lift May 2, 2012 19
  • Appendix … Web References ...Resources Web Resources Description Link Scala http://www.scala-lang.org SBT – Simple Build Tool http://github.com/harrah/xsbt ScalaIDE for Eclipse http://scala-ide.org Scala Plugin for IntelliJ IDEA http://confluence.jetbrains.net/display/SCA/Scala_Plugin+for+IntelliJ+IDEA Scala Plugin for NetBeans http://wiki.netbeans.org/Scala Lift http://liftweb.net An Introduction to Lift May 2, 2012 20
  • Contact ...Contact Me! blemons@credera.com @brentlemons slideshare.net/brentlemons An Introduction to Lift May 2, 2012 21