Dancer Presentation FrOSCon 2010

49
Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen Einf¨ uhrung in Dancer - Effortless Web Framework for Perl Thomas Fahle FrOSCon 2010, St. Augustin, 22. August 2010 Thomas Fahle Einf¨ uhrung in Dancer - Effortless Web Framework for Perl

description

Einführung in Dancer - Effortless Webframework for Perl. Schritt für Schritt zur WebApp.

Transcript of Dancer Presentation FrOSCon 2010

Page 1: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Einfuhrung in Dancer - Effortless Web Frameworkfor Perl

Thomas Fahle

FrOSCon 2010, St. Augustin, 22. August 2010

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 2: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Ubersicht

Uber diesen Vortrag

Einfuhrung in Dancer

Dancer Grundlagen - Routing, Logging, ...

Projekt - Beispiel WebApp”Random Number Generator“

Resourcen im Netz - Mehr Infos

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 3: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Uber Dancer

Dancer?

Micro Framework fur Webapps

ursprunglich Port von Ruby’s Sinatra

leichtgewichtig

standalone

PSGI/Plack kompatible

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 4: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Eine einfache Webapp

Hallo Welt!

Hallo Welt

1 #! / u s r / b i n / p e r l2

3 use Dancer ;4

5 g e t ’ / ’ => sub {6 r e t u r n ” H e l l o Frontpage ” ;7 } ;8

9 g e t ’ / h e l l o / : name ’ => sub {10 r e t u r n ” H e l l o t h e r e ” . params−>{name } ;11 } ;12

13 dance ;

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 5: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Eine einfache Webapp

Run It!

Ein Dancer Programm verfugt uber einen eingebauten Webserver

$ ./hello.pl

>> Dancer server 3303 listening on http://0.0.0.0:3000

== Entering the development dance floor ...

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 6: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Dancer Routes

Dancer Routen

sind Unterprogramme (subs), die an HTTP Methoden(GET,POST usw.) und einen Pfad gebunden sind

1 g e t ’ / ’ => sub {} ;2 g e t ’ / bar / : v a r ’ => sub {} ;3 g e t ’ / baz /∗ .∗ ’ => sub {} ;4 any ’ / f o o ’ => sub {} ;

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 7: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Parameter

Parameter

Request-Parameter stehen uber die Methode params alsHashreferenz zur Verfugung

1 #! / u s r / b i n / p e r l2 use Dancer ;3

4 g e t ’ / h e l l o / : name ’ => sub {5 r e t u r n ” H e l l o t h e r e ” . params−>{name } ;6 } ;7

8 p o s t ’ / f o r m u l a r ’ => sub {9 my $vorname = params−>{vorname } ;

10 my $nachname = params−>{nachname } ;11 # . . .12 } ;13 dance ;

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 8: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Parameter

Wildcard Parameter/Pfade

splat liefert die Bestandteile eines Wildcard Pfades

1 #! / u s r / b i n / p e r l2 use Dancer ;3 g e t ’ / downloads /∗ .∗ ’ => sub {4 my ( $ l h s , $ r h s ) = s p l a t ;5 } ;6 dance ;

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 9: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Templates

Templates sind Views

Template mit Parametern als Ruckgabe

1 #! / u s r / b i n / p e r l2 use Dancer ;3 p o s t ’ / f o r m u l a r ’ => sub {4 my $vorname = params−>{vorname } ;5 my $nachname = params−>{nachname } ;6 r e t u r n t e m p l a t e ’ f o r m u l a r ’ , {7 vorname => $vorname ,8 nachname => $nachname ,9 } ;

10 } ;11 dance ;

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 10: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Logging

Logging Level

Dancer stellt 3 Logging Level zur Verfugung

1 #! / u s r / b i n / p e r l2 use Dancer qw / : s y n t a x / ;3 debug ”Custom Debugging Message ” ;4 warn ing ”Custom Warning Message ” ;5 e r r o r ”Custom E r r o r Message ” ;

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 11: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Eine einfache WebApp

In sieben Schritten zur WebApp

1 Vorbereitung

2 Dancer Projektgerust erzeugen

3 Modell Zufallszahlen Generator

4 Layout anpassen

5 View erstellen

6 Controller schreiben

7 Fertig

Tests

werden ja ohnehin bei jedem Schritt geschrieben

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 12: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Vorbereitung

Kick-Off

WebApp Zufallszahlen Generator

User kann Zufallszahl aus einem Zahlenbereich ziehen lassen

dient als Starthilfe fur den Einstieg in Dancer

Screen-Shot

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 13: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Vorbereitung

Inspired by Apple - Web apps - Random Number

http://www.apple.com/webapps/calculate/randomnumber.html

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 14: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Vorbereitung

Live-Demo

Live-Demo

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 15: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Vorbereitung

Zufallszahlen Generator Math::Random

Math::Random

1 use Math : : Random qw/ : a l l / ;2

3 my $low ;4 my $ h i g h ;5 my $n = 1 ;6

7 my $ r a n d o m i n t =8 r a n d o m u n i f o r m i n t e g e r ( $n , $low , $ h i g h ) ;9

10 # L i e f e r t im s k a l a r e n Kontext e i n e Z u f a l l s z a h l11 # aus dem B e r e i c h $low . . $ h i g h . $n w i r d12 # n i c h t b e r u e c k s i c h t i g t .

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 16: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Vorbereitung

Template Engine - Template Toolkit

http://template-toolkit.org/

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 17: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Vorbereitung

Validierung des User Inputs

CPAN to the Rescue

Regexp::Common

Provide commonly requested regular expressions

Data::FormValidator

Validates user input (usually from an HTML form) based oninput profile

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 18: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Vorbereitung

Variablenubersicht

Hauptvariablen

low - Eingabe untere Bereichsgrenze

high - Eingabe obere Bereichsgrenze

random - Ausgabe Zufallszahl

Hilfsvariablen

missing low - Falls untere Bereichsgrenze nicht eingegebenwurde

missing high - Falls obere Bereichsgrenze nicht eingegebenwurde

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 19: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Vorbereitung

CPAN-Module installieren

Benotigte Module installieren

$ cpan

cpan> install Dancer

cpan> install Template

cpan> install Math::Random

cpan> install Regexp::Common

cpan> install Data::FormValidator

Optional: Weitere Dancer::Plugins installieren

cpan> install Task::Dancer

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 20: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Dancer Projektgerust

Bootstrap -Scaffold

Projektgerust erzeugen

$ dancer -a RandomNumber

+ ./RandomNumber

+ RandomNumber/app.psgi

+ RandomNumber/config.yml

+ RandomNumber/environments

+ RandomNumber/environments/development.yml

+ RandomNumber/environments/production.yml

+ RandomNumber/views

+ RandomNumber/views/index.tt

+ RandomNumber/views/layouts

+ RandomNumber/views/layouts/main.tt

+ RandomNumber/RandomNumber.pl

+ RandomNumber/lib

+ RandomNumber/lib/RandomNumber

+ RandomNumber/lib/RandomNumber.pm

+ RandomNumber/public

+ RandomNumber/public/css

+ RandomNumber/public/css/style.css

+ RandomNumber/public/css/error.css

+ RandomNumber/public/images

+ RandomNumber/public/404.html

+ RandomNumber/public/dispatch.fcgi

+ RandomNumber/public/dispatch.cgi

+ RandomNumber/public/500.html

+ RandomNumber/t

+ RandomNumber/t/002_index_route.t

+ RandomNumber/t/001_base.t

+ RandomNumber/Makefile.pl

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 21: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Modell Zufallszahlengenerator

Package RandomNumber::Generator 1

RandomNumber::Generator Teil 1

1 package RandomNumber : : G e n e r a t o r ;2 use w a r n i n g s ; use s t r i c t ;3

4 use Math : : Random qw / : a l l / ;5 # Dancer Logg ing6 use Dancer ’ : s y n t a x ’ ;7

8 use E x p o r t e r ;9

10 our $VERSION = ’ 0 . 0 1 ’ ;11 our @ISA = qw/ E x p o r t e r / ;12 our @EXPORT = ( ) ;13 our @EXPORT OK = qw/ random number / ;

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 22: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Modell Zufallszahlengenerator

Package RandomNumber::Generator 2

RandomNumber::Generator Teil 2

1 sub random number {2 my $low = s h i f t @ ;3 my $ h i g h = s h i f t @ ;4 i f ( $low > $ h i g h ) {5 ( $low , $ h i g h ) = ( $high , $low ) ;6 }7 my $n = 1 ;8 my $random number =9 r a n d o m u n i f o r m i n t e g e r ( $n , $low , $ h i g h ) ;

10 debug ”Random Number : ’ $random number ’ ” ;11 r e t u r n $random number ;12 }

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 23: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Layout anpassen

Template Engine festlegen

Statt Dancer::Template::Simple kommt TT2 zum Einsatz(config.yml)

template: "template_toolkit"

Dancer verwendet <% als Start-Tag und %> als End-Tag.

TT2 konfigurieren (optional)

template: "template_toolkit"

engines:

template_toolkit:

start_tag: "[%"

stop_tag: "%]"

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 24: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Layout anpassen

Layout anpassen

Layout in views/layouts/main.tt beliebig anpassbar

Die Variable content ist von Dancer/TT2 vordefiniert und erhaltden Content aus den Templates.

1 <html>2 <head> . . . </ head>3 <body>4 . . .5 <d i v i d=” c o n t e n t ”>6

7 <% c o n t e n t %>8

9 </ d i v>10 . . .

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 25: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

View erstellen

Eingabe der Daten 1

Template views/index.tt: Formular zur Eingabe der Daten Teil 1

1 <form a c t i o n=”/” method=” p o s t ”>2 <t a b l e>3 <t r>4 <% IF m i s s i n g l o w %>5 <td><f o n t c o l o r=” r e d ”>S t a r t w e r t ( von ) :</ f o n t> </ td>6 <% ELSE %>7 <td>S t a r t w e r t ( von ) : </ td>8 <% END %>9 <td>< i n p u t t y p e=” t e x t ” name=” low ”

10 v a l u e=”<% low %>” /> </ td>11 </ t r>

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 26: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

View erstellen

Eingabe der Daten 2

Template views/index.tt: Formular zur Eingabe der Daten Teil 2

1 <t r>2 <% IF m i s s i n g h i g h %>3 <td><f o n t c o l o r=” r e d ”>Endwert ( b i s ) :</ f o n t> </ td>4 <% ELSE %>5 <td>Endwert ( b i s ) :</ td>6 <% END %>7 <td>< i n p u t t y p e=” t e x t ” name=” h i g h ”8 v a l u e=”<% h i g h %>” /> </ td>9 </ t r>

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 27: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

View erstellen

Eingabe der Daten 3

Template views/index.tt: Formular zur Eingabe der Daten Teil 3

1 <t r>2 <td>&nbsp ;</ td>3 <td>< i n p u t t y p e=” submit ”4 v a l u e=” Z u f a l l s z a h l z i e h e n ” />5 </ td>6 </ t r>7 </ t a b l e>8 </ form>

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 28: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

View erstellen

Ausgabe der Daten

Template views/index.tt: Ausgabe der Zufallszahl

1 <% IF random OR random == 0 %>2 <t r>3 <td c o l s p a n=”2”>Z u f a l l s z a h l aus dem B e r e i c h4 <b><% low %></b> b i s <b><% h i g h %></b> :5 <f o n t c o l o r=” r e d ”><b><% random %></b></ f o n t> .6 </ td>7 </ t r>8 <% END %>

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 29: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Controller schreiben

Controller GET

GET Request in lib/RandomNumber.pm

1 package RandomNumber ;2 use Dancer ’ : s y n t a x ’ ;3 use RandomNumber : : G e n e r a t o r qw/ random number / ;4 use RandomNumber : : V a l i d a t o r qw/ v a l i d a t e l o w h i g h / ;5

6 our $VERSION = ’ 0 . 1 ’ ;7

8 g e t ’ / ’ => sub {9 t e m p l a t e ’ i n d e x ’ ;

10 } ;

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 30: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Controller schreiben

Controller POST

POST Request (ohne Validierung)

1 # im package RandomNumber ;2 p o s t ’ / ’ => sub {3 my $ h i g h = params−>{h i g h } ;4 my $low = params−>{low } ;5

6 my $random = random number ( $low , $ h i g h ) ;7

8 t e m p l a t e ’ i n d e x ’ ,9 {

10 random => $random ,11 low => $low ,12 h i g h => $high ,13 } ;14 } ;15 t r u e ;

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 31: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Controller schreiben

Input Validierung

Aufruf und Verwendung

1 use RandomNumber : : V a l i d a t o r qw/ v a l i d a t e l o w h i g h / ;2

3 my $ r e s u l t s = v a l i d a t e l o w h i g h (4 { low => $low , h i g h => $ h i g h }5 ) ;6

7 i f ( $ r e s u l t s −>s u c c e s s ) {8 # . . .9 }

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 32: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Controller schreiben

Input Validierung

validate low high Teil 1

1 package RandomNumber : : V a l i d a t o r ;2 use Regexp : : Common qw /number / ;3 use Data : : F o r m V a l i d a t o r ;4

5 sub v a l i d a t e l o w h i g h {6 my $ a r g s = s h i f t @ ;7 d i e ”Not a Hash R e f e r e n c e ’ $ a r g s ’ ”8 u n l e s s r e f ( $ a r g s ) eq ’HASH ’ ;9 my $low = $args−>{low } ;

10 my $ h i g h = $args−>{h i g h } ;

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 33: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Controller schreiben

Input Validierung

validate low high Teil 2 (Profil)

1

2 my $ p r o f i l e = {3 f i l t e r s => [ ’ t r i m ’ ] ,4 r e q u i r e d => [ qw( low h i g h ) ] ,5 c o n s t r a i n t s => {6 low => qr /ˆ$RE{num}{ i n t }$ / ,7 h i g h => qr /ˆ$RE{num}{ i n t }$ / ,8 } ,9 } ;

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 34: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Controller schreiben

Input Validierung

validate low high Teil 3

1 my $ r e s u l t s =2 Data : : FormVal idator−>check (3 { low => $low , h i g h => $ h i g h } ,4 $ p r o f i l e ) ;5

6 r e t u r n $ r e s u l t s ;7 }

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 35: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Controller schreiben

Controller POST

POST Request mit Validierung Teil 1

1 # im package RandomNumber ;2 p o s t ’ / ’ => sub {3 my $ h i g h = params−>{h i g h } ;4 my $low = params−>{low } ;5

6 my $ r e s u l t s = v a l i d a t e l o w h i g h (7 { low => $low , h i g h => $ h i g h }8 ) ;

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 36: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Controller schreiben

Controller POST

POST Request mit Validierung Teil 2

1 my $ m i s s i n g l o w =2 not d e f i n e d ( $ r e s u l t s −>v a l i d ( ’ low ’ ) ) ;3 my $ m i s s i n g h i g h =4 not d e f i n e d ( $ r e s u l t s −>v a l i d ( ’ h i g h ’ ) ) ;

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 37: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Controller schreiben

Controller POST

POST Request mit Validierung Teil 3

1 my $random = undef ;2 i f ( $ r e s u l t s −>s u c c e s s ( ) ) {3 $random = random number ( $low , $ h i g h ) ;4 }5

6 t e m p l a t e ’ i n d e x ’ ,7 {8 random => $random ,9 low => $low ,

10 h i g h => $high ,11 m i s s i n g l o w => $ m i s s i n g l o w ,12 m i s s i n g h i g h => $ m i s s i n g h i g h ,13 } ;14 } ;

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 38: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Fertig

Fertig!

Have Fun!

Source Code at GitHub

http://github.com/tomfahle/Dancer-RandomNumber

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 39: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Dancer Resources

RTFM

Dancer wird mit umfangreicher Dokumentation ausgeliefert

Dancer - Effortless Web Framework for Perl -http://perldancer.org/

Dancer::Introduction - http://search.cpan.org/perldoc?Dancer::Introduction

Dancer::Cookbook -http://search.cpan.org/perldoc?Dancer::Cookbook

Dancer::Confighttp://search.cpan.org/perldoc?Dancer::Config

Dancer::Sessionhttp://search.cpan.org/perldoc?Dancer/Session.pm

Dancer::Deployment -http://search.cpan.org/perldoc?Dancer::Deployment

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 40: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Dancer Resources

IRC und Mailing-Liste

Direkter Kontakt zu Entwicklern und Usern

IRC - irc.perl.org #dancer.

Dancer-users - Perl Dancer users mailing list -http://lists.perldancer.org/cgi-bin/listinfo/

dancer-users

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 41: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Dancer Vortrage Artikel Blogs

Vortrage

Slides

Alexis Sukrieh -Writing webapps with Perl Dancer -http://www.slideshare.net/asukrieh/

writing-webapps-with-perl-dancer

Alexis Sukrieh -Perl Dancer, FPW 2010 -http://www.slideshare.net/asukrieh/

perl-dancer-fpw-2010-4482016

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 42: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Dancer Vortrage Artikel Blogs

Artikel

Allgemeine Artikel

A Website in a Minute Using Dancer,the Effortless Web Framework -http://www.perl.org/pub/2010/04/

a-website-in-a-minute-using-dancer-the-effortless-web-framework.

html

The Dancer Ecosystem http://lumberjaph.net/blog/

index.php/2010/04/19/the-dancer-ecosystem/

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 43: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Dancer Vortrage Artikel Blogs

Beispiele

Blogbeitrage mit Beispielen und Code

Juan J. Martınez - Screencast: aplicacion de ejemplo conDancer - http://blackshell.usebox.net/archive/screencast--aplicacion-de-ejemplo-con-dancer.html

Poison Bit - Web login form Vs Microsoft Active Directory -http://poisonbit.wordpress.com/2010/04/06/

web-login-form-vs-microsoft-active-directory/

Poison Bit - Login form validating operative system users (noDDBB), in 6 steps -http://poisonbit.wordpress.com/2010/07/14/

login-form-validating-operative-system-users-no-ddbb-in-6-steps/

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 44: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Recommended Readings

Dancer vs. Mojo

Alias: Building Top100 2.0

Pitting Mojo vs Dancer in a competition to build Top100 2.0http://use.perl.org/~Alias/journal/40270

Mojo vs Dancer Week 1 - Installer, Support and Hello Worldhttp://use.perl.org/~Alias/journal/40292

Mojo vs Dancer Week 2 - Templates and Imageshttp://use.perl.org/~Alias/journal/40312

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 45: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Recommended Readings

Additional Readings

TT2, PSGI/Plack

Template Toolkit - http://template-toolkit.org/

PSGI/Plack - Perl Superglue for Web Frameworks and WebServers - http://plackperl.org/

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 46: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Recommended Readings

Related Web Frameworks

Weitere Frameworks zum Vergleich

Mojolicious - a Merb and Sinatra inspired web framework -http://mojolicious.org/

Catalyst - The elegant MVC framework -http://www.catalystframework.org/

Sinatra - http://www.sinatrarb.com/

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 47: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Fragen

Fragen?

Fragen?

Fragen!

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 48: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Danke!

Vielen Dank!

Danke!

Vielen Dank!

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl

Page 49: Dancer Presentation FrOSCon 2010

Einleitung Projekt Beispiel WebApp RandomNumber Resourcen Fragen

Perl.org

Perl.org

When you need Perl think Perl.org

http://www.Perl.org

http://learn.Perl.org

http://blogs.Perl.org

http://jobs.Perl.org

Flexible & Powerful

That’s why we love Perl!

Thomas Fahle Einfuhrung in Dancer - Effortless Web Framework for Perl