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

Integration of BI Publisher in ADF applications
Integration of BI Publisher in ADF applicationsIntegration of BI Publisher in ADF applications
Integration of BI Publisher in ADF applicationsAndreas Koop
 
WebCenter Portal - Integrate Custom Taskflows
WebCenter Portal - Integrate Custom TaskflowsWebCenter Portal - Integrate Custom Taskflows
WebCenter Portal - Integrate Custom TaskflowsAndreas Koop
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-ÄraAndreas Koop
 
Cloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, DemoCloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, Demoenpit GmbH & Co. KG
 
ADF Spotlight: ADF 12c Deck component overview and progammer examples
ADF Spotlight: ADF 12c Deck component overview and progammer examplesADF Spotlight: ADF 12c Deck component overview and progammer examples
ADF Spotlight: ADF 12c Deck component overview and progammer examplesAndreas Koop
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker ContainerAndreas Koop
 
Cloud-native Apps - Architektur, Implementierung, Demo
Cloud-native Apps - Architektur, Implementierung, DemoCloud-native Apps - Architektur, Implementierung, Demo
Cloud-native Apps - Architektur, Implementierung, DemoAndreas Koop
 

Viewers also liked (8)

REST mit ADF
REST mit ADFREST mit ADF
REST mit ADF
 
Integration of BI Publisher in ADF applications
Integration of BI Publisher in ADF applicationsIntegration of BI Publisher in ADF applications
Integration of BI Publisher in ADF applications
 
WebCenter Portal - Integrate Custom Taskflows
WebCenter Portal - Integrate Custom TaskflowsWebCenter Portal - Integrate Custom Taskflows
WebCenter Portal - Integrate Custom Taskflows
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-Ära
 
Cloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, DemoCloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, Demo
 
ADF Spotlight: ADF 12c Deck component overview and progammer examples
ADF Spotlight: ADF 12c Deck component overview and progammer examplesADF Spotlight: ADF 12c Deck component overview and progammer examples
ADF Spotlight: ADF 12c Deck component overview and progammer examples
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
Cloud-native Apps - Architektur, Implementierung, Demo
Cloud-native Apps - Architektur, Implementierung, DemoCloud-native Apps - Architektur, Implementierung, Demo
Cloud-native Apps - Architektur, Implementierung, Demo
 

Similar to WepApps mit Play! - Nichts leichter als das

Administration for Oracle ADF Applications
Administration for Oracle ADF ApplicationsAdministration for Oracle ADF Applications
Administration for Oracle ADF ApplicationsAndreas Koop
 
Administration von ADF Anwendungen
Administration von ADF AnwendungenAdministration von ADF Anwendungen
Administration von ADF Anwendungenenpit GmbH & Co. KG
 
Symfony Deployments on Heroku
Symfony Deployments on HerokuSymfony Deployments on Heroku
Symfony Deployments on HerokuStefan Adolf
 
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 WLSTenpit GmbH & Co. KG
 
ThoughtWorks Technology Radar Roadshow - Sydney
ThoughtWorks Technology Radar Roadshow - SydneyThoughtWorks Technology Radar Roadshow - Sydney
ThoughtWorks Technology Radar Roadshow - SydneyThoughtworks
 
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?Wojciech Barczyński
 
Caching in Windows Azure
Caching in Windows AzureCaching in Windows Azure
Caching in Windows AzureIdo Flatow
 
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 GovernmentAmazon Web Services
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesQAware GmbH
 
BelfastJUG, Spring Boot + Docker
BelfastJUG, Spring Boot + DockerBelfastJUG, Spring Boot + Docker
BelfastJUG, Spring Boot + DockerHudson Mendes
 
Belfast JUG, Spring Boot & Docker
Belfast JUG, Spring Boot & DockerBelfast JUG, Spring Boot & Docker
Belfast JUG, Spring Boot & DockerHudson Mendes
 
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 KubernetesWojciech Barczyński
 
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 KubernetesNicola Ferraro
 
The Big Cloud native FaaS Lebowski
The Big Cloud native FaaS LebowskiThe Big Cloud native FaaS Lebowski
The Big Cloud native FaaS LebowskiQAware GmbH
 
Camel on Cloud by Christina Lin
Camel on Cloud by Christina LinCamel on Cloud by Christina Lin
Camel on Cloud by Christina LinTadayoshi Sato
 
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.comMathieu Buffenoir
 

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 Andreas Koop

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 VormarschAndreas Koop
 
Mit Legosteinen Maschinelles Lernen lernen
Mit Legosteinen Maschinelles Lernen lernenMit Legosteinen Maschinelles Lernen lernen
Mit Legosteinen Maschinelles Lernen lernenAndreas Koop
 
Java Web Apps and Services on Oracle Java Cloud Service
Java Web Apps and Services on Oracle Java Cloud ServiceJava Web Apps and Services on Oracle Java Cloud Service
Java Web Apps and Services on Oracle Java Cloud ServiceAndreas Koop
 
Multichannel Application Development Best Practices
Multichannel Application Development Best PracticesMultichannel Application Development Best Practices
Multichannel Application Development Best PracticesAndreas Koop
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOpsAndreas Koop
 
ADF User Interface Design Best Pratices
ADF User Interface Design Best PraticesADF User Interface Design Best Pratices
ADF User Interface Design Best PraticesAndreas Koop
 
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic Server
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic ServerDOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic Server
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic ServerAndreas Koop
 

More from Andreas Koop (7)

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
 
Java Web Apps and Services on Oracle Java Cloud Service
Java Web Apps and Services on Oracle Java Cloud ServiceJava Web Apps and Services on Oracle Java Cloud Service
Java Web Apps and Services on Oracle Java Cloud Service
 
Multichannel Application Development Best Practices
Multichannel Application Development Best PracticesMultichannel Application Development Best Practices
Multichannel Application Development Best Practices
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOps
 
ADF User Interface Design Best Pratices
ADF User Interface Design Best PraticesADF User Interface Design Best Pratices
ADF User Interface Design Best Pratices
 
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic Server
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic ServerDOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic Server
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic Server
 

Recently uploaded

Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
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 WorkerThousandEyes
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
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 WorkerThousandEyes
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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 FresherRemote DBA Services
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

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