SlideShare a Scribd company logo
1 of 33
WEB APPS MIT
     - NICHTS LEICHTER ALS DAS!


  „A Web Application Framework
         for a new Era“

            Stateless & Scalable
                 WebJars           Andreas Koop
                                    CEO & Consultant

                WebSockets         Oracle Technologies




DOAG 2012
Andreas Koop
ÜBER MICH                                                  CEO & Consultant
                                                          Oracle Technologies




Beratung, Training Oracle Technologie
ADF Certified Implementation Specialist


Community
DOAG, ADF EMG, ADF German Community, Twitter @multikoop


Blog
Technical http://multikoop.blogspot.com
Sonstiges http://www.enpit.de/blog



                                          2
ENTERPRISE PRAGMATIC IT




   Consulting                  Training                Development
 Oracle Fusion         Oracle                 Oracle        Oracle
  Middleware          WebCenter                ADF         WebLogic

Enable productive IT by Oracle Technologies
AGENDA

Play! Framework Architektur

Play! Features

Security & Deployment

Fazit und Ausblick



Andreas Koop              4
AKTUELLER STAND
JAVA WEBFRAMEWORKS
   ‣           Java EE / JSF 2.0 / Oracle ADF

   ‣           Grails

   ‣           Wicket

   ‣           Tapestry

   ‣           Play! Framework
               => Nicht Servlet basiert, Jetty, Scala!

Andreas Koop                          5
SAMPLE APP




‣       http://play2-enpit-emp.herokuapp.com
Andreas Koop                  6
ARCHITECTURE
         HTTP
                                                  Stateless
         Request
                    Router         Controller
                                     index()
                                                  MVC
                   GET / index()
                                     list(..,.)

                                                  Request-based
 HTTP
 Response                                         Async I/O
                                     Model
                     View
                    Template
                                     EBean
                                      JPA...      Scalable

                                                  Modular

                                   DataStore


Andreas Koop                             7
GETTING STARTED
 $ play new contact
               $ cd contact
               $ play
                          [contact] $ eclipsify


                          [contact] $ idea


                          [contact] $ netbeansify



                                                 demnächst




Andreas Koop                                 8
PLAY RUN
 $ cd contact       $ cd contact
 $ play run         $ play ~run



                                    Triggered
                                   Compilation




                                   /@documentation

                                       How To



Andreas Koop    9
CREATE MODEL


                    EBean
                    JPA

                    Anorm (Scala)




Andreas Koop   10
ANNOTATION BASED
VALIDATION




                        Hinweis:
                      kein JSR-303
                    (Bean Validation)


Andreas Koop   11
CONTROLLER ACTIONS


                                Get Model




         Return     Render contacts.scala.html
         HTTP 200   => View is a Function!

Andreas Koop               12
VIEW TEMPLATES
Parameter




Andreas Koop   13
VIEW                  Every View is
                     just a Function!
Parameter

Function Call

Messages
(i18n)

Loop

Date
Formatting
Andreas Koop    14
RESTFUL ROUTING




       GET, POST, PUT, DELETE
                                       Scala DSL
                                     => Prüfung zur
                                       Buildtime!



Andreas Koop                    15
HIGHLY PRODUCTIVE
DEVELOPMENT CYCLES
                        in the Browser!




           FIX
           Hit
          Reload




Andreas Koop       16
DATABASE
EVOLUTION SCRIPTS




   ‣           Schema

   ‣           Data

Andreas Koop            17
WEBSOCKET SUPPORT




Andreas Koop   18
COFFEESCRIPT COMPILER
                    Out-Of-The Box
                       No extra
                     Configuration!




Andreas Koop   19
WEBJARS
   ‣           Problem: JS Libraries - Kraut und Rüben!

   ‣           Lösung: Siehe Java Libraries

   ‣           http://webjars.org




Andreas Koop                         20
CONFIGURATION
   ‣           By Convention   conf/application.conf


   ‣           HOCON Format -
                “Human-Optimized Config Object Notation”

   ‣           Support for Includes   include "securesocial.conf"




Andreas Koop                          21
ACCESS CONFIGURATION




Andreas Koop   22
UNIT TEST
   ‣           Test Model / Business Services




 $ play test


Andreas Koop                        23
SMOKE TEST




                                    HTTP 303
‣ Funktioniert der Redirect von
    /          --> /contacts

Andreas Koop                   24
UI TEST




   ‣           Selenium WebDriver

Andreas Koop                        25
SOCIAL SIGN ON
                                             Twitter
   Play2                                     Google
   App
                                             Facebook

                                             LinkedIn

                                             GitHub


   ‣           http://securesocial.ws

Andreas Koop                            26
INSTANT DEPLOYMENT
 $ heroku login
                                          Heroku
 $ heroku create -s cedar myapp-name
                                          CloudBees
 $ git remote add heroku
 git@heroku.com:myapp-name.git            dotCloud

 $ heroku keys:add ~/.ssh/id_rsa.pub      ...

                                       Continuous
                                         Cloud
 $ git push heroku master              Deployment


Andreas Koop                 27
FAZIT
   ‣           Produktiv, Entwicklerfreundlich   ...und das ohne
                                                     essentielle
   ‣           Typsichere View Scala Templates         Scala-
                                                    Kenntnisse!
   ‣           Less CSS Integration

   ‣           CoffeeScript Integration

   ‣           HTML5 / WebSocket Support & More...

   ‣           Social and Cloud Ready

Andreas Koop                          28
ZUSAMMENFASSUNG
‣      Zustandsloses, performantes (non-blocking) Web-Framework

‣      Neuste Technologien: Async-I/O, WebSockets, HTML5, WebJars,
       CoffeeScript/LESS PreCompiler, Scala

‣      Ausgelegt für Internet- / Cloud-Applikationen, RESTful Services, Mobile
       HTML5, Social Sign On

‣      Play! 1.x -> Play! 2.x: Gewagter Schritt der Macher!

‣      Intranet-Unternehmensanwendungen derzeit besser mit z.B.
       Oracle ADF

Andreas Koop                            29
ES GIBT NOCH VIEL MEHR
‣ Session Handling

‣ Cache Handling

‣ Form Handling

‣ Logging

‣ ....



Andreas Koop         30
HOW TO START
   ‣           www.playframework.org

   ‣           Tutorial
               https://github.com/jamesward/play2torial

   ‣           Join Community
               https://groups.google.com/forum/?fromgroups#!
               forum/play-framework



Andreas Koop                        31
VIELEN DANK FÜR IHRE
   AUFMERKSAMKEIT



HABEN SIE NOCH FRAGEN?
WepApps mit Play! - Nichts leichter als das

More Related Content

Viewers also liked

OConnorDescriptiveEssay
OConnorDescriptiveEssayOConnorDescriptiveEssay
OConnorDescriptiveEssay
Matt Thura
 
Экоинновации
ЭкоинновацииЭкоинновации
Экоинновации
Arina Miteva
 
Presentationto GHFG members
Presentationto GHFG membersPresentationto GHFG members
Presentationto GHFG members
Candi Williams
 
iPads in education part 1
iPads in education part 1iPads in education part 1
iPads in education part 1
Kdeethomas1
 

Viewers also liked (14)

Aiff
AiffAiff
Aiff
 
OConnorDescriptiveEssay
OConnorDescriptiveEssayOConnorDescriptiveEssay
OConnorDescriptiveEssay
 
Libre office informe
Libre office informeLibre office informe
Libre office informe
 
Yolanda (3) (1)
Yolanda (3) (1)Yolanda (3) (1)
Yolanda (3) (1)
 
Kekeliruan Konsep Nur Muhammad
Kekeliruan Konsep  Nur MuhammadKekeliruan Konsep  Nur Muhammad
Kekeliruan Konsep Nur Muhammad
 
iPad Crazy Session
iPad Crazy SessioniPad Crazy Session
iPad Crazy Session
 
Christianity
ChristianityChristianity
Christianity
 
Экоинновации
ЭкоинновацииЭкоинновации
Экоинновации
 
Article08
Article08Article08
Article08
 
The blink Style
The blink StyleThe blink Style
The blink Style
 
ハイジ・インターフェイスに学ぶ、良いインターフェイスのつくり方 先生:美馬 直輝
ハイジ・インターフェイスに学ぶ、良いインターフェイスのつくり方 先生:美馬 直輝ハイジ・インターフェイスに学ぶ、良いインターフェイスのつくり方 先生:美馬 直輝
ハイジ・インターフェイスに学ぶ、良いインターフェイスのつくり方 先生:美馬 直輝
 
Presentationto GHFG members
Presentationto GHFG membersPresentationto GHFG members
Presentationto GHFG members
 
iPads in education part 1
iPads in education part 1iPads in education part 1
iPads in education part 1
 
The blink Style - ILLUSTRATION and HI-DESIGN
The blink Style - ILLUSTRATION and HI-DESIGNThe blink Style - ILLUSTRATION and HI-DESIGN
The blink Style - ILLUSTRATION and HI-DESIGN
 

Similar to WepApps mit Play! - Nichts leichter als das

Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
enpit GmbH & Co. KG
 
WebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLSTWebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLST
enpit GmbH & Co. KG
 

Similar to WepApps mit Play! - Nichts leichter als das (20)

Administration for Oracle ADF Applications
Administration for Oracle ADF ApplicationsAdministration for Oracle ADF Applications
Administration for Oracle ADF Applications
 
Administration von ADF Anwendungen
Administration von ADF AnwendungenAdministration von ADF Anwendungen
Administration von ADF Anwendungen
 
Symfony Deployments on Heroku
Symfony Deployments on HerokuSymfony Deployments on Heroku
Symfony Deployments on Heroku
 
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
 
WebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLSTWebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLST
 
ThoughtWorks Technology Radar Roadshow - Sydney
ThoughtWorks Technology Radar Roadshow - SydneyThoughtWorks Technology Radar Roadshow - Sydney
ThoughtWorks Technology Radar Roadshow - Sydney
 
Cloudy Ajax 08 10
Cloudy Ajax 08 10Cloudy Ajax 08 10
Cloudy Ajax 08 10
 
Effective Platform Building with Kubernetes. Is K8S new Linux?
Effective Platform Building with Kubernetes. Is K8S new Linux?Effective Platform Building with Kubernetes. Is K8S new Linux?
Effective Platform Building with Kubernetes. Is K8S new Linux?
 
Caching in Windows Azure
Caching in Windows AzureCaching in Windows Azure
Caching in Windows Azure
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit Kubernetes
 
BelfastJUG, Spring Boot + Docker
BelfastJUG, Spring Boot + DockerBelfastJUG, Spring Boot + Docker
BelfastJUG, Spring Boot + Docker
 
Belfast JUG, Spring Boot & Docker
Belfast JUG, Spring Boot & DockerBelfast JUG, Spring Boot & Docker
Belfast JUG, Spring Boot & Docker
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
Zero-downtime deployment of Micro-services with Kubernetes
Zero-downtime deployment of Micro-services with KubernetesZero-downtime deployment of Micro-services with Kubernetes
Zero-downtime deployment of Micro-services with Kubernetes
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with Kubernetes
 
The Big Cloud native FaaS Lebowski
The Big Cloud native FaaS LebowskiThe Big Cloud native FaaS Lebowski
The Big Cloud native FaaS Lebowski
 
Play framework
Play frameworkPlay framework
Play framework
 
Camel on Cloud by Christina Lin
Camel on Cloud by Christina LinCamel on Cloud by Christina Lin
Camel on Cloud by Christina Lin
 
2015 DockerCon Using Docker in production at bity.com
2015 DockerCon Using Docker in production at bity.com2015 DockerCon Using Docker in production at bity.com
2015 DockerCon Using Docker in production at bity.com
 

More from enpit GmbH & Co. KG

Agilität und Microservices als Chance für Modernisierung?
Agilität und Microservices als Chance für Modernisierung?Agilität und Microservices als Chance für Modernisierung?
Agilität und Microservices als Chance für Modernisierung?
enpit GmbH & Co. KG
 
Die 5 Mythen der Forms-Modernisierung
Die 5 Mythen der Forms-ModernisierungDie 5 Mythen der Forms-Modernisierung
Die 5 Mythen der Forms-Modernisierung
enpit GmbH & Co. KG
 

More from enpit GmbH & Co. KG (20)

Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem VormarschVon Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
 
Mit Legosteinen Maschinelles Lernen lernen
Mit Legosteinen Maschinelles Lernen lernenMit Legosteinen Maschinelles Lernen lernen
Mit Legosteinen Maschinelles Lernen lernen
 
Cloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, DemoCloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, Demo
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-Ära
 
Client side webdevelopment with jet
Client side webdevelopment with jetClient side webdevelopment with jet
Client side webdevelopment with jet
 
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
 
Agilität und Microservices als Chance für Modernisierung?
Agilität und Microservices als Chance für Modernisierung?Agilität und Microservices als Chance für Modernisierung?
Agilität und Microservices als Chance für Modernisierung?
 
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
Modernisierung in Zeiten wie diesen
Modernisierung in Zeiten wie diesenModernisierung in Zeiten wie diesen
Modernisierung in Zeiten wie diesen
 
Die 5 Mythen der Forms-Modernisierung
Die 5 Mythen der Forms-ModernisierungDie 5 Mythen der Forms-Modernisierung
Die 5 Mythen der Forms-Modernisierung
 
Was ist Docker?
Was ist Docker?Was ist Docker?
Was ist Docker?
 
Choice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeuge
Choice-o-mat - Entscheidungshilfe für Oracles EntwicklungswerkzeugeChoice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeuge
Choice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeuge
 
Visualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADFVisualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADF
 
WebCenter Portal - Integrate Custom taskflows
WebCenter Portal - Integrate Custom taskflowsWebCenter Portal - Integrate Custom taskflows
WebCenter Portal - Integrate Custom taskflows
 
Java WebApps und Services on Oracle Java Cloud Service
Java WebApps und Services on Oracle Java Cloud ServiceJava WebApps und Services on Oracle Java Cloud Service
Java WebApps und Services on Oracle Java Cloud Service
 
Rapid Application Development (RAD) im Enterprise - Quo vadis Portal?
Rapid Application Development (RAD) im Enterprise - Quo vadis Portal?Rapid Application Development (RAD) im Enterprise - Quo vadis Portal?
Rapid Application Development (RAD) im Enterprise - Quo vadis Portal?
 
Best Practices für Multi-Channel Application Development
Best Practices für Multi-Channel Application DevelopmentBest Practices für Multi-Channel Application Development
Best Practices für Multi-Channel Application Development
 
Gestern OWB, heute ODI
Gestern OWB, heute ODIGestern OWB, heute ODI
Gestern OWB, heute ODI
 
Effective Blueprints for Forms 2 Oracle ADF
Effective Blueprints for Forms 2 Oracle ADFEffective Blueprints for Forms 2 Oracle ADF
Effective Blueprints for Forms 2 Oracle ADF
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

WepApps mit Play! - Nichts leichter als das

  • 1. WEB APPS MIT - NICHTS LEICHTER ALS DAS! „A Web Application Framework for a new Era“ Stateless & Scalable WebJars Andreas Koop CEO & Consultant WebSockets Oracle Technologies DOAG 2012
  • 2. Andreas Koop ÜBER MICH CEO & Consultant Oracle Technologies Beratung, Training Oracle Technologie ADF Certified Implementation Specialist Community DOAG, ADF EMG, ADF German Community, Twitter @multikoop Blog Technical http://multikoop.blogspot.com Sonstiges http://www.enpit.de/blog 2
  • 3. ENTERPRISE PRAGMATIC IT Consulting Training Development Oracle Fusion Oracle Oracle Oracle Middleware WebCenter ADF WebLogic Enable productive IT by Oracle Technologies
  • 4. AGENDA Play! Framework Architektur Play! Features Security & Deployment Fazit und Ausblick Andreas Koop 4
  • 5. AKTUELLER STAND JAVA WEBFRAMEWORKS ‣ Java EE / JSF 2.0 / Oracle ADF ‣ Grails ‣ Wicket ‣ Tapestry ‣ Play! Framework => Nicht Servlet basiert, Jetty, Scala! Andreas Koop 5
  • 6. SAMPLE APP ‣ http://play2-enpit-emp.herokuapp.com Andreas Koop 6
  • 7. ARCHITECTURE HTTP Stateless Request Router Controller index() MVC GET / index() list(..,.) Request-based HTTP Response Async I/O Model View Template EBean JPA... Scalable Modular DataStore Andreas Koop 7
  • 8. GETTING STARTED $ play new contact $ cd contact $ play [contact] $ eclipsify [contact] $ idea [contact] $ netbeansify demnächst Andreas Koop 8
  • 9. PLAY RUN $ cd contact $ cd contact $ play run $ play ~run Triggered Compilation /@documentation How To Andreas Koop 9
  • 10. CREATE MODEL EBean JPA Anorm (Scala) Andreas Koop 10
  • 11. ANNOTATION BASED VALIDATION Hinweis: kein JSR-303 (Bean Validation) Andreas Koop 11
  • 12. CONTROLLER ACTIONS Get Model Return Render contacts.scala.html HTTP 200 => View is a Function! Andreas Koop 12
  • 14. VIEW Every View is just a Function! Parameter Function Call Messages (i18n) Loop Date Formatting Andreas Koop 14
  • 15. RESTFUL ROUTING GET, POST, PUT, DELETE Scala DSL => Prüfung zur Buildtime! Andreas Koop 15
  • 16. HIGHLY PRODUCTIVE DEVELOPMENT CYCLES in the Browser! FIX Hit Reload Andreas Koop 16
  • 17. DATABASE EVOLUTION SCRIPTS ‣ Schema ‣ Data Andreas Koop 17
  • 19. COFFEESCRIPT COMPILER Out-Of-The Box No extra Configuration! Andreas Koop 19
  • 20. WEBJARS ‣ Problem: JS Libraries - Kraut und Rüben! ‣ Lösung: Siehe Java Libraries ‣ http://webjars.org Andreas Koop 20
  • 21. CONFIGURATION ‣ By Convention conf/application.conf ‣ HOCON Format - “Human-Optimized Config Object Notation” ‣ Support for Includes include "securesocial.conf" Andreas Koop 21
  • 23. UNIT TEST ‣ Test Model / Business Services $ play test Andreas Koop 23
  • 24. SMOKE TEST HTTP 303 ‣ Funktioniert der Redirect von / --> /contacts Andreas Koop 24
  • 25. UI TEST ‣ Selenium WebDriver Andreas Koop 25
  • 26. SOCIAL SIGN ON Twitter Play2 Google App Facebook LinkedIn GitHub ‣ http://securesocial.ws Andreas Koop 26
  • 27. INSTANT DEPLOYMENT $ heroku login Heroku $ heroku create -s cedar myapp-name CloudBees $ git remote add heroku git@heroku.com:myapp-name.git dotCloud $ heroku keys:add ~/.ssh/id_rsa.pub ... Continuous Cloud $ git push heroku master Deployment Andreas Koop 27
  • 28. FAZIT ‣ Produktiv, Entwicklerfreundlich ...und das ohne essentielle ‣ Typsichere View Scala Templates Scala- Kenntnisse! ‣ Less CSS Integration ‣ CoffeeScript Integration ‣ HTML5 / WebSocket Support & More... ‣ Social and Cloud Ready Andreas Koop 28
  • 29. ZUSAMMENFASSUNG ‣ Zustandsloses, performantes (non-blocking) Web-Framework ‣ Neuste Technologien: Async-I/O, WebSockets, HTML5, WebJars, CoffeeScript/LESS PreCompiler, Scala ‣ Ausgelegt für Internet- / Cloud-Applikationen, RESTful Services, Mobile HTML5, Social Sign On ‣ Play! 1.x -> Play! 2.x: Gewagter Schritt der Macher! ‣ Intranet-Unternehmensanwendungen derzeit besser mit z.B. Oracle ADF Andreas Koop 29
  • 30. ES GIBT NOCH VIEL MEHR ‣ Session Handling ‣ Cache Handling ‣ Form Handling ‣ Logging ‣ .... Andreas Koop 30
  • 31. HOW TO START ‣ www.playframework.org ‣ Tutorial https://github.com/jamesward/play2torial ‣ Join Community https://groups.google.com/forum/?fromgroups#! forum/play-framework Andreas Koop 31
  • 32. VIELEN DANK FÜR IHRE AUFMERKSAMKEIT HABEN SIE NOCH FRAGEN?

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. Web-Orientierte Architekturen vorausgesetzt\n
  27. \n
  28. Highly productive\nTypesafe view templates based on Scala\nLessCss integration\nAkka integration\nCompiled javascript with Google Closure Compiler\nNo need to learn Scala for the moment, hooray ! \n\n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n