80 likes | 312 Views
Introduction to Web Application Development using the Play Framework. Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu HI 96822. About Web Application Development. Very important development area.
E N D
Introduction to Web Application Developmentusing the Play Framework Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu HI 96822
About Web Application Development • Very important development area. • Every software engineer should know how! • Provides exposure to many interesting concepts: • "Model-View-Controller" architecture • "Three tier" architecture • Responsive UI design • Cloud-based deployment • Continuous integration • Scalability
About Play Framework • Provides: • Simplicity, speed of RoR development • Type-safety through Java and Scala • Modern API by abandoning Servlets • High profile user: LinkedIn • They like the use of Scala and underlying libraries to provide scalability through non-blocking IO.
Innovative features • Template (views) and route files are Scala classes • They compile!
Initial issues • Development does not use Maven. • Play replaces Maven with its own build environment (Play console) based upon SBT (a Scala-based build tool). • What about QA (Checkstyle, PMD, FindBugs, Jacoco)? • No support "out of box". • We will add these back in after you get comfortable with Play
Elements of Java Style violations(that we'll live with) • Public fields in model classes • Done to support automated database schema generation. • Static methods in controller classes • Play framework designers feel that instances create overhead without providing offsetting value. • Default package structure: model.*, view.*, controller.* • OK as long as packages will not be used outside of framework. • EJS Rule #1: Adhere to the style of the original.
Elements of Java Style violations(that you need to fix) • "play new" creates sample classes with * imports • Fix this • Static methods in controller classes • Play framework designers feel that instances create overhead without providing offsetting value. • Default package structure: model.*, view.*, controller.* • OK as long as packages will not be used outside of framework. • EJS Rule #1: Adhere to the style of the original.
Module structure • Introduction to the framework • MVC components: • Model development • View development • Controller development • Testing • Cloud-based deployment • Continuous Integration and QA