Programmieren im Web 2 -...

Post on 08-Oct-2019

5 views 0 download

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“?