Course 'Introduction to Play Framework for Scala '
$299usd

The "Mitigating the Impact of Play's API Churn on Tests" lecture is not free and you are not enrolled in the course, or you are not logged in. Information about the lecture follows. Click on the About the Course and Course Outline tabs above to learn more about the course. You can enroll by clicking on the button on the upper right of this page.

Lecture Contents

TestRequest

References: Lecture Testing Play for Scala Applications
Lecture Example Play for Scala Tests
Referenced by: Lecture Testing Play for Scala Applications
Lecture Example Play for Scala Tests

Abstract

This lecture discusses how to minimize the effects of the unplanned nature of the evolution of Play Framework's API on tests.

Revision History

Date Changes
2016-06-21 Hived this lecture from the Testing Play for Scala Applications lecture
2016-06-20 Updated all unit tests and transcript to Play 2.5.4 & scalatestplus-play 1.5.1
2014-06-05 First published transcript

This “Introduction to Play Framework for Scala” course covers the fundamentals for creating reactive web sites, and is designed to give you a variety of hands-on experiences. The course consists of 6 hours of video, over 300 pages of lecture notes (if printed as an O'Reilly-sized book), and about a dozen exercises. As you can see from the Revision History tab on this page, this course is kept up-to-date. Exercises are provided throughout that reinforce the lecture material. Several complete working sample Play Framework projects are provided and discussed in detail.

The course outline tab outlines the course in detail. The course, including all transcripts and code examples, has been updated to Play 2.5.9. The unique features for Play Framework are introduced, along with popular software tools like Lightbend Activator, IntelliJ IDEA, Scala IDE, Atom and useful plugins for web browsers.

The course shows how Play Framework uses the model/view/controller (MVC) paradigm to route requests to controllers, and demonstrates many ways of extracting data from requests. Detailed discussions of Play Framework view templates are invoked by controllers are provided, prior to rendering them to HTML, plain text, Javascript or XML. Play Framework's Twirl templating DSL is explored in depth, and view templates written in pure Scala are demonstrated. Two methods of handling JSON are covered.

The course emphasizes dependency injection with Google Guice. Not all of Guice is compatible with Play Framework; this lecture points out the danger areas, and introduces the popular Scala-Guice library in Play Framework 2 applications. A summary of Play's injectable state is provided, and a discussion of how Play's modes relate to Guice's stages is included. Guice Providers, @Named and Guice modules are discussed using practical examples.

Internationalization and localization is covered in detail, followed by form helpers and form handling. An entire lecture is dedicated to a CRUD (create, retrieve, update and delete) application which is designed to be used as a reference application.

Other topics covered include Play Framework application configuration, logging, unit tests and integration tests, standard filters and custom filters. One of the most important lectures discusses how to package and deploy Play Framework applications using SBT Native Packager.

In addition to self-paced online learning, Micronautics Research offers remote instructor-led training for this course, which combines the self-study material with videoconferencing for office hours. Please contact us for further details.

How to Study This Course

The video on the front page of this web site discusses how to study this course. The transcript tab contains the same information as the video in written form.

Prerequisites

Intermediate Scala or equivalent. Students should have prior experience with setting up a web server such as Apache httpd, or programming a web application using a facility such as ASP, Tomcat, PHP, Ruby on Rails, etc.

Date Lecture Changes
2017-06-11 Play Framework REPL & Tools Documented how to allow any domain to work with IDEA's Remote Call plugin
2017-03-29 Using Activator This lecture is deprecated, because Play 2.6 will drop support for Activator.
2017-03-29 Installing Activator Added section Play 2.6 will drop support for Activator to transcript
2017-03-11   Updated all sample code to Play Framework 2.5.12
2016-09-14 Forms, Fields, Mappings and Constraints Added a discussion of picking up multiple values from a form
2016-08-27 Testing Play for Scala Applications Added section Comparing the play.modules Configuration Object with GuiceApplicationBuilder Parameters to transcript
2016-08-12 Configuration Showed how to use playGenerateSecret
2016-08-12 Deploying Play Applications Updated to sbt-native-packager 1.1.4 and Play 2.5.4
2016-08-09 Guice Providers, @Named and Exercise Added sections Guice's Automatically Created Default Provider and Untargeted Bindings
2016-07-24 Standard Filters and Filter Chains Enhanced the SecurityHeadersFilter section in the transcript
2016-07-22 Configuration Added Checking Combined Configuration File section to transcript
2016-07-17   Updated code examples in git repo to SBT 0.3.12
2016-07-17 Twirl View Templates Added section Twirl File Type Examples, which shows working examples of .scala.txt, .scala.xml and .scala.js Twirl templates
2016-07-15 A Closer Look at Google Guice Reworded step 1 of first example in transcript
2016-07-07 Introducing Play-JSON Published video
2016-07-06 Guice Providers, @Named and Exercise Published video
2016-07-05 A Closer Look at Google Guice Published video
2016-07-04 Using Google Guice for Dependency Injection Published video
2016-07-03 A Closer Look at Google Guice Hived from Using Google Guice for Dependency Injection.
2016-07-01 Play Logging Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Internationalization and Localization Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Body Parsers Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Plain Old Scala View Templates Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Twirl View Templates Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Reverse Routes Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Routes and Dispatching to Controllers Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Working on Play Projects with IntelliJ IDEA Renamed references from Application.scala to ApplicationController.scala
2016-07-01 Play 2 Controllers Added information about play.api.Application
2016-06-30 Custom Filters Published video
2016-06-30 Standard Filters and Filter Chains Published video
2016-06-29 Play Framework Overview Updated overview diagram to include filters
2016-06-29 Custom Filters Hived from Filters lecture
2016-06-29 Example Play for Scala Tests Published video
2016-06-28 Play Logging Published video
2016-06-27 Testing Play for Scala Applications Published video
2016-06-26 Guice Providers, @Named and Exercise Published transcript and solution to new exercise
2016-06-25 Configuration Published video
2016-06-24 CRUD Webapp Walkthrough Updated video to match sample code, which now uses dependency injection
2016-06-24 Twirl Form Helpers Updated Controller Setup for Views Containing Twirl Input Helpers section for dependency injection and republished video
2016-06-24 Internationalization and Localization Added Play's I18N Settings in HOCON Files are Backwards section and rewrote lecture for dependency injection. Republished 25% longer video.
2016-06-23 Play Framework REPL & Tools Updated the incantation for fakeApp.repl so it provides an implicit Application without generating warnings
2016-06-23 WebJars Updated to match sample code and republished video
2016-06-22 Plain Old Scala View Templates Updated video to match transcript and sample code
2016-06-22 Twirl View Templates Updated transcript to match sample code and republished video
2016-06-21 Mitigating the Impact of API Churn on Tests Hived this lecture from the Testing Play for Scala Applications lecture
2016-06-21 Example Play for Scala Tests Hived this lecture from the Testing Play for Scala Applications lecture
2016-06-20 Testing Play for Scala Applications Updated all unit tests and transcript to Play 2.5.4 & scalatestplus-play 1.5.1
2016-06-18 Play Logging Published transcript
2016-06-18 Reverse Routes Added section Redefining IDEA's Classpath to Include Generated Source and republished video
2016-06-17 Play 2 Controllers Republished video
2016-06-17 Routes and Dispatching to Controllers Update transcript to Play 2.5.4 and republished video
2016-06-17 Working on Play Projects with IDEs Updated to Play 2.5.4 and republished video
2016-06-16 Standard Files and Directories and Improved Template Updated to Play 2.5.4 and republished video
2016-06-15 Using Activator Updated to Activator 1.3.10 and republished video
2016-06-14 Installing Activator Updated video
2016-06-14 Configuration Updated to Play 2.5.4
2016-06-14 Filters Updated to Play 2.5.4 using dependency injection
2016-06-14 Play Framework Overview Added Other Resources section and updated video
2016-06-10 WebJars Updated versions mentioned in the lecture; a very minor change, so the video won't be updated to reflect these changes
2016-06-10 Reverse Routes Small changes throughout; Activator 1.3.6 renamed Application to HomeController.
2016-06-10 Play 2 Controllers Updated the Controller objects vs. Controller classes and The Sample Controller sections to include dependency injection for Play 2.5.4
2016-06-10 Routes and Dispatching to Controllers Updated code example for the Unmatched Requests section
2016-06-10   Updated all code examples to Play 2.5.4
2016-06-09 Briefly: Using Google Guice for Dependency Injection Wrote initial transcript
2016-06-09   Updated all sample code in git repository to Play 2.5.3; fully utilizes dependency injection
2016-06-08 Standard Files and Directories and Improved Template Updated transcript to Play 2.5.3
2016-06-06 Twirl View Templates Added mention of Twirl v1.2.0
2016-06-06 Plain Old Scala View Templates Added additional use cases for Plain Old Scala view templates
2016-05-27 Standard Files and Directories and Improved Template Added information on suppressing the Play directory structure in favor of the standard SBT directory structure to transcript
2016-05-09 Forms, Fields, Mappings and Constraints Added new section about Fields to transcript
2016-04-23 Standard Files and Directories and Improved Template Updated transcript to Play 2.5.2
2016-03-13 Standard Files and Directories and Improved Template Moved the Examining Dependencies section to the end of the SBT Tasks and Settings transcript of the Introduction to Scala course
2016-03-13 Using Activator Changed references from Typesafe (the company name) to Lightbend
2016-03-13 Play Framework Overview Added A Word About Play Framework Documentation section
2016-02-11 Installing Activator Updated video
2015-12-05 Working on Play Projects with IntelliJ IDEA Added information about enabling debugging when launching an SBT task
2015-11-30 Plain Old Scala View Templates Updated video
2015-11-30 Using Activator Republished video
2015-11-10 Installing Typesafe Activator Added section to transcript: Optional: Install Node.js
2015-10-25 Standard Files and Directories and Improved Template Added SBT MetaProject Dependencies section
2015-10-08 Working on Play Projects with Scala-IDE Updated to Play 2.4.3, Activator 1.3.6 and Scala-IDE 4.2.0, and published video
2015-10-06 Redirects Tweaked transcript and published video
2015-10-05 Reverse Routes Published video
2015-10-04 CRUD Example Updated transcript and published video
2015-10-01 Internationalization and Localization Published video
2015-09-30 Deploying Play Applications Published video
2015-09-17 Play Framework Overview Updated transcript and republished video
2015-09-03 Installing Typesafe Activator Updated activator installation script
2015-08-30 Deploying Play Applications First published transcript
2015-08-28 Plain Old Scala View Templates Added section The include Template Needs Enhancing For Deployment
2015-08-25 Twirl Form Helpers Updated and published video
2015-08-21 Forms, Fields, Mappings and Constraints Updated transcript and published video
2015-08-18 Define and Persist Model Updated transcript and published video
2015-08-13 Body Parsers Updated and published video
2015-08-12 Standard Files and Directories and Improved Template Updated to Anorm 2.5
2015-08-07 WebJars Updated transcript and published video
2015-08-06 Plain Old Scala View Templates Published video
2015-07-31 Plain Old Scala View Templates Hived from the Twirl View Templates lecture
2015-07-31 Redirect Flashing Hived from the Twirl View Templates lecture and updated to Play 2.4.2
2015-07-30 Routes and Dispatching to Controllers Updated transcript and published video
2015-07-28 Reverse Routes Hived from Routes and Dispatching to Controllers
2015-07-04   Updated code examples to Play 2.4.2
2015-07-03 Debugging Play Applications Deployed to Heroku Lecture is no longer free
2015-06-24   Updated all project except json to Scala 2.11.7 and Play 2.4.1 (awaiting Macro Paradise compiler plugin for json)
2015-06-23 Working on Play Projects with IDEs Updated to Play 2.4 and published video.
2015-06-22 Play Framework Tools Updated to Play 2.4, added the Running the Play Web Application From the SBT Console section and published video
2015-06-21 Twirl and Plain Old Scala View Templates Added TemplateMagic section
2015-06-12 Using Activator Updated content and published video.
2015-06-10 JSON Writes, Formats and Combinator DSL First published this transcript
2015-06-07 JSON Paths and Reads Added sample code showing how kifi/json works with custom Reads.
2015-06-07 Introducing Play-JSON Added a section on the kifi/json annotation macro
2015-05-29 JSON Paths and Reads Published transcript
2015-05-29 Introducing Play-JSON Published transcript
2015-05-28 All Updated to Play 2.4.0
2015-05-06 Twirl Form Helpers First published transcript
2015-05-05 Ajax Example: Separate JavaScript and Twirl Hived from Ajax Example: JavaScript Embedded in Twirl
2015-05-01 Ajax Example: JavaScript Embedded in Twirl First published transcript
2015-04-25 Forms, Fields, Mappings and Constraints First published transcript
2015-04-24 Define and Persist Model First published transcript
2015-04-21 Twirl and Plain Old Scala View Templates Updated to Play 2.3.8
2015-04-21 Play 2 Controllers Updated to Play 2.3.8
2015-04-21 Play Framework Tools Updated IntelliJ IDEA info for v14
2015-04-21 Standard Files and Directories Enhanced with new information and updated to Play 2.3.8
2015-04-21 Creating a New Play Framework v2.2 Application Deleted obsolete lecture, moved any relevant information to other lectures
2015-04-21 Using Activator Updated to Play 2.4.
2015-04-21 Routes and Dispatching to Controllers Completed transcript, up to date with Play 2.4.
2015-04-21 Body Parsers Completed transcript
2015-04-11 Using Activator Added Copyright section to transcript
2014-12-07   Updated courseNotes code to Play 2.3.7
2014-11-28 Debugging JVM Programs on Heroku Wrote lecture transcript
2014-09-06 Installing Typesafe Activator Released video, updated scripts and transcript
2014-09-05 Installing Typesafe Activator Provided Activator min/max installation script (1MB vs 400MB download)
2014-09-04 Using Activator for Play Added more scripts and provided information on how to use them
2014-09-03 Standard Files and Directories Hived this lecture from the Using Activator for Play lecture
2014-09-03 Play Framework Tools Split this lecture out
2014-09-03 Creating a New Play Framework v2.2 Application De-emphasized this lecture
2014-09-03 Using Activator for Play Started writing this lecture
2014-09-03 Installing Activator Started writing this lecture
2014-08-15 Creating a New Play Application Updated the Play Framework Tools for Chrome and IntelliJ IDEA section
2014-06-29 Configuration Lecture transcript written, shows how the various configuration files work together
2014-06-22   Updated brew install incantation in this page.
2014-04-30 Content Delivery Networks Added new lecture transcript.
2014-04-27 WebJars Added new lecture transcript.
2014-04-25 Performance Added new lecture transcript.
2014-04-08 Play Framework Overview Published video.
     
     
2014-03-14   Early Access Program begins.
Price: $299usd
Instructor(s):