Java programmieren mit JavaKara Eine Zusammenfassung in Beispielen.
Programmieren im Web 2 -...
Transcript of Programmieren im Web 2 -...
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Programmieren im Web 2.xEin Uberblick uber die Webentwicklung im Jahre 2011
Johannes Leers
26. Marz 2012
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
1 Motivation
2 Web-Frameworks
3 Mobile Computing
4 WebGL
5 Cloud Computing
6 Fazit
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Native Programme
pro Plattformprogrammieren und/oderkompilieren
viele Update-Mechanismen:Kompilieren, Packaging &Freigabeprozesse
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Web-Programme
Einmal programmieren, aufallen Plattformen lauffahig(im Idealfall)
Zusatzlicher Vorteil beimobilen Endgeraten
Ein Update-Mechanismus:Schnelles Deployment imHintergrund
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Vorteile von Frameworks
Programmiergerust
Konzentration auf Kernprobleme
Weniger Code = Weniger Fehler
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Vorteile von Frameworks
Ajax ohne Framework (reines JavaScript)
va r an f r a g e = n u l l ;t r y {
an f r a g e = new Act i veXObjec t ( ”MSXML2.XMLHTTP” ) ;}ca tch ( E r r o r ) {
t r y {an f r a g e = new Act i veXObjec t ( ”M i c r o s o f t .XMLHTTP” ) ;
}ca tch ( E r r o r ) {
t r y {an f r a g e = new XMLHttpRequest ( ) ;
}ca tch ( E r r o r ) {
a l e r t ( ” F eh l e r beim Erzeugen des Ob j ek t e s ” ) ;}
}}an f r a g e . open ( ”GET” , ”/ t e s t . c g i ” , t r u e ) ;
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Vorteile von Frameworks
Ajax mit Framework (jQuery)
$.get("/test.cgi");
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Ruby on Rails
Ruby
Yukihiro Matsumoto
Einflusse: Perl, Smalltalk,Eiffel, Ada und Lisp
1995 unter GPLveroffentlicht
2001 englischeDokumentation
Bis 2004 außerhalb JapansNischen-Dasein
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Ruby on Rails
Ruby on Rails
2004 unter MIT-Lizenzveroffentlicht
David Heinemeier Hansson,37signals
Aus Projektmanagement-Software
”Basecamp“
extrahiert
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Ruby on Rails
Model, View, Controller
Controller
View Model
@@@@R
���
�
-
*
�����
*�
- Direkte Verbindung
*- Indirekte Verbindung (z.B. uber Observer)
1979: Trygve Reenskaug
”Applications Programming
in Smalltalk-80: How to useModel–View–Controller“
Separation of Concerns
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Ruby on Rails
Convention over Configuration
Auch: Coding by Convention
Jede Anwendung kommtohne Konfiguration aus
z.B. Namenskonventionen
Vorteile fur neue Entwicklerin gewachsenen Projekten
Wurzeln dieses Konzepts:1997, Java-Bibliotheken
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Ruby on Rails
ActiveRecord
User.create(:name=>"Johannes")
user = User.find(1)
user.delete
Design Pattern furObject-Relational-Mapping
”Active Record“ gepragt von
Martin Fowler, 2003
”Ein Active Record ist ein
Objekt, das einer Zeile ineiner Datenbank-Tabelleentspricht. Es kapselt denDatenbankzugriff und fugtDomain-Logik hinzu.“
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Ruby on Rails
REST
Architekturstil: Representational state transfer
2000 von Roy Thomas Fielding beschrieben
Die Schnittmenge zwischen Systemen auf eine uberschaubare,standardisierte Menge von Aktionen reduzieren
POST, PUT, GET, DELETE
Variable wird z.B. uber ein Formular im Request gesendet
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Andere Web-Frameworks
Ocsigen (OCaml)
2007, LGPL
Diderot Universitat (Paris)
Server- und Client-Code istOCaml
Statische Typisierung:Wohlgetypte Programmesturzen niemals ab
Typsystem: Form-Elementepassen immer zu denDatenbank-Objekten (z.B.Checkbox: Boolean)
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Andere Web-Frameworks
Opa (Opa)
2011, AGPL
MLState (Zusammenschlussvon Forschern rund umOnline-Softwareentwicklung)
Kein Web-Framework imklassischem Sinne
Wird in eine ausfuhrbareDatei kompiliert
Server- und Client-Code istin Opa programmiert
Impedance Mismatchverhindern
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Motivation
Browserbasierte ersetzennative Anwendungen
Mobile Endgerate fastimmer online
2010: 16% mobiles Internet
44% nutzen Facebook mobil
durch HTML5-Elemente
”Look & Feel“ wie native
Anwendungen
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Vier Ansatze mobiler Frontends
Cascading Style Sheets (CSS)
einfach umzusetzenineffizient bezuglich Datentransfers
Mobile Web-Frameworks
z.B. Sencha Touch oder jQuery Mobilekein Zugriff auf Gerate-APIs
Hybride Anwendungen
z.B. PhoneGap oder AppCelerator TitaniumWrapper fur Web-AnwendungenZugriff auf Gerate-APIs moglichApp-Stores
Native Anwendungen
Android: Java, iOS: Objective-Cmit Rhodes plattformubergreifend
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Einfuhrung
Ermoglicht 3D im Browser
Vorganger 1994:”Virtual
Reality Markup Language“
Khronos Group und Mozilla,2009
Basiert auf OpenGL
Offener Standard vom W3C
2011: Fester Bestandteilaller großen Browser
Sonderstellung MicrosoftInternet Explorer
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Technik
HTML5-Element canvas furfreies Zeichnen
JavaScript ist Bindegliedzum Browser
Eigene Spezifikation furBinardaten
”Typed Arrays“
Hoher Programmieraufwand
Etablierung mehr oderweniger kompletterWebGL-Frameworks
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Einfuhrung
Achtziger Jahre: Mainframes
Keine Installation auflokalem Rechner notig
Fruhjahr 2011: 70% derUnternehmen arbeiten anCloud-Strategie
Wichtigster Antriebsfaktor:Kostenersparnis
Kosten durch Verbrauch(z.B. pro User/ Monat)
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Software as a Service
2010, Apache Software License
Vereinigt viele Schnittstellen zuCloud-Anbietern in einer REST-API
Client-Bibliotheken fur vieleProgrammiersprachen(u.a. C, C++, Ruby)
Jede Cloud hat einen Adapter(driver)
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit
Danke
Fazit:”Ist-Zustand“?