Grundlagen der Web-Entwicklung INF3172



Ähnliche Dokumente
Grundlagen der Web-Entwicklung

Rails Ruby on Rails Ajax on Rails. Clemens H. Cap

Eine Anwendung mit InstantRails 1.7

Django - ein Python Web-Framework

Contentmanagement Übung

Ruby on Rails. Florian Ferrano Ralf Heller Markus Nagel

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Martin Marinschek- Wolfgang Radinger. Ruby on Rails. Einstieg in die effiziente Webentwicklung. [Tu dpunkt.verlag

Installationsanleitung

Groovy on Grails. Informatik-Seminar WS06/07. Alexander Treptow. Groovy on Grails Alexander Treptow (minf2622) 1

Installation des CMS-Systems Contao auf einem Windows-Rechner mit XAMPP

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Installation des GeoShop Redirector für Apache (Stand ) ================================================================

Magento. Mehrsprachig. 30. Januar CMS: Magento / Deutsch

Dokumentation für das Web-basierte Abkürzungsverzeichnis (Oracle mod_plsql / Apache)

Rails Ruby on Rails Ajax on Rails. Clemens H. Cap

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

INSTALLATION VON INSTANTRAILS 1.7

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

HTML5 HOCKEYSTICK EXPANDABLE BANNER v1.0

Update-Anleitung. Copyright 2010 cobra computer s brainware GmbH

Upgrade-Leitfaden. Apparo Fast Edit 1 / 7

OP-LOG

WordPress lokal mit Xaamp installieren

Softwaren Engineering I

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

Lokale Installation von DotNetNuke 4 ohne IIS

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung

Update von XBRL Publisher auf XBRL Publisher 1.7.2

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

MetaQuotes Empfehlungen zum Gebrauch von

Installationsbeschreibung Flottenmanager 7.1

MySQL Installation. AnPr

MOC Entwicklung von ASP.NET MVC 4 Webapplikationen

Installation von horizont 4 bei Verwendung mehrerer Datenbanken

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Installation von Wordpress

Step by Step Webserver unter Windows Server von Christian Bartl

GITS Steckbriefe Tutorial

Update Installation und Administration

Kaspersky Labs GmbH Kaspersky Anti-Virus für Windows Datei Server v6.0

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Lizenzen auschecken. Was ist zu tun?

Ruby on Rails. Thomas Baustert Ralf Wirdemann Alternative zur Web-Entwicklung mit Java?

Upgrade-Leitfaden. Apparo Fast Edit. Wechsel von Version 2 auf Version oder Wechsel von Version auf Version 3.0.

Typo 3 installieren. Schritt 1: Download von Typo3

Xampp-Installation und Konfiguration. Stefan Maihack Dipl. Ing. (FH) Datum:

Installationsanleitung dateiagent Pro

Interaktive Medien Richtlinien für das Codieren Version vom 18. Juni 2014

Drupal 8 manuell installieren

MailUtilities: Remote Deployment - Einführung

0. VORBEMERKUNG VORBEREITUNG DES SYSTEMS INSTALLATION UND KONFIGURATION VON PD-ADMIN Installation...3

Installationsanleitung. Novaline Datenarchivierung / GDPdU

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Einrichtung Secure-FTP

PHPNuke Quick & Dirty

Anleitung zur Webservice Entwicklung unter Eclipse

ShopwareAutoinvoice Installations- und Benutzeranleitung

REGIONALES RECHENZENTRUM ERLANGEN [ RRZE] Datenbanken. RRZE-Campustreffen, Stefan Roas und Ali Güclü Ercin, RRZE

Predictive Analytics Client. Installationsanleitung

Installation von NetBeans inkl. Glassfish Anwendungs-Server

3 Installation von Exchange

Installation der Konfigurationsdateien für alle Windows-Versionen bis einschließlich Microsoft Windows 7

Unsere Webapplikation erweitern

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

Zeiterfassung-Konnektor Handbuch

Anleitung BFV-Widget-Generator

Migration NVC 5.x auf NEM/NPro (Migration eines bestehenden, produktiven NVC Verteilservers auf NEM/NPro)

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

How-to: Webserver NAT. Securepoint Security System Version 2007nx

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

News & RSS. Einleitung: Nachrichten er-(veröffentlichen) und bereitstellen Nachrichten erstellen und bereitstellen

Options- und Freitext-Modul Update-Anleitung

Datenmanagement in Android-Apps. 16. Mai 2013

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Installation Microsoft SQL Server 2008 Express

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

Demopaket FDFsolutions für Windows, Version 1.73, Voraussetzungen & Installation. (Stand )

3M Helth Information Systems. 3M KAPS PEPP Simulation. Installationsanleitung

Smap3D PDM 10. Installation. Stand-Alone-Migration-Analyzer

Reporting Services und SharePoint 2010 Teil 1

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

Umstieg auf Microsoft Exchange in der Fakultät 02

1 Installation QTrans V2.0 unter Windows NT4

DOKUMENTATION VOGELZUCHT 2015 PLUS

Print2CAD 2017, 8th Generation. Netzwerkversionen

1. Melden Sie sich als Administrator an und wechseln Sie zum Desktop

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Warenwirtschaft Handbuch - Administration

Themen. Apache Webserver Konfiguration. Verzeichnisse für Web-Applikationen. Server Side Includes

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Kurzeinführung Excel2App. Version 1.0.0

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Abschluss Version 1.0

MSSQL Server Fragen GridVis

Transkript:

Grundlagen der Web-Entwicklung INF3172 MVC-Frameworks: Ruby on Rails & CakePHP Thomas Walter 09.01.2014 Version 1.0

aktuelles 2

3

die Scriptsprache Ruby ein moderner Nachfolger von Perl sauber objektorientiert www.ruby-lang.org 4

5

ruby entstanden durch Yukihiro Matsumoto ( Mats ) aktuell 2.1.0 lange Versionen 1.9.x moderne Sprache OO 6

die Prinzipien von Rails Ruby on Rails (Rails) Juli 2004: David Heinemeier Hansson Implementiert MVC-Paradigma fünf Module: M: Active Record V: Action Pack (Request-/Reponse-Behandlung) Action-Mailer (Email) Action Web-Service Active Support (Ruby-Erweiterungen) 7

Prinzip Konvention ersetzt Konfiguration anstelle aufwendiger Configs feste Konventionen, die Zusammenhänge definieren Model-Klasse Book (Singular) bilder Tabelle books (Plural) ab integriertes Mapping auf Controllermethoden 8

Scaffolding Scaffolding (Bauprinzip) erlaubt die Entwicklung von Web-Applikationen On the fly Rails ideal für Fast Prototyping CRUD: Create, Read, Update, Delete aus Datenbank wird die Anwendung on the fly Erzeugt 9

Webserverintegration Rails kommt mit eigenem Webserver (in Ruby geschrieben): WEBrick zahlreiche andere auch möglich Produktionseinsatz: Apache mod_fastcgi sehr empfohlen und möglichst noch mod_ruby 10

unterstützte DBMS momentan unterstützt Rails: MySQL PostgreSQL DB2 Oracle MS SQL Server wird Modul Active Record verwendet, muss eines dieser DBMS verwendet werden zugleich auch ein Problem, da nur wenige DBMS unterstützt werden 11

M V C Model: eines der unterstützten DBMS Controller: Instanz der ActionController-Klasse View: Klasse ActionView HTML/XML/JavaScript/Binärdaten Templates RHTML/RXML/RJS 12

Ressourcen und Dokumentation Hauptressource: www.rubyonrails.org www.rubyonrails.de Dokumentation: http://api.rubyonrails.org 13

14

15

16

Installation zu Installieren sind: aktuelle Ruby-Version ruby gems dies ist der ruby-rails package manager das eigentliche rails-paket Installation über gems aktuell 4.0.2 17

Die eigentliche Rails-Installation die eigentliche Installation läuft über gems: gem install rails --include-dependencies damit alles automatisiert, frisch aus dem Netz 18

Erzeugen einer Rails-Applikation nach der Installation steht ausführbares Script rails zur Verfügung damit Anlegen einer Rails-Web-Applikation: rails <path_to_appl> etwa: rails d:\www\buecher 19

Rails-Verzeichnis der Anwendung rails erzeugt das entsprechende Verzeichnis mit zahlreichen Unterordnern, etwa: app: die eigentliche Anwendung, untergliedert in Unterordner models/views/controllers/helpers config: Konfiguration der Datenbank log public: Apache htdocs 20

Starten der Anwendung A: mit dem rails-eigenen Webserver WEBrick: im Verzeichnis der Anwendung ruby script/server B: mit Apache: Konfiguration des Apache 21

22

Datenbank eine Rails-Anwendung basiert auf einer Datenbank Generierung von Anwendungen aus der Datenbank 23

Anpassen der Konfiguration es ist nur die Datenbank-Anbindung zu konfigurieren in Unterordner conf, Datei database.yml danach Neustart (!) des Webservers 24

25

Erzeugen von M und C rails erlaubt ein standardisiertes Erzeugen von Model und Controller über Generator Metascript scripts/generate 26

27

Controller Controller verarbeitet Request URL ruft Methode einer Controller-Klasse auf Generator: ruby script/generator controller <Name> Ruby-Klasse, abgeleitet von ApplicationController 28

Model Generierung des Model: zur Datenbanktabelle users gehört das Model User Rails is smart about English pluralization rules, so Company maps to companies, Person maps to people, and so forth. Erzeugung ruby script/generate model User setzt DB-Config und Existenz voraus 29

Model der Generator erzeugt ein Skeleton einer Ruby-Klasse 30

Erzeugung von C und M zusammen in den neuesten Rail-Versionen können C und M zusammen erzeugt werden: ruby script/generate scaffold User 31

Standard-Controller für Zugriff auf Model soll über Standard-Controller für CRUD zugegriffen werden: Create / Read / Update / Delete 32

Mögliche Zugriffe new list delete update show alles Methoden in Standard-Controller 33

eigene Methoden die generierten Methoden (wie list) können überschrieben werden dazu muss zunächst nur eine Methode definiert werden def list...code... end 34

die View: Rails-Templates Template enthält im Kern HTML, bereichert um Ruby-Elemente ruby-code in ASP-Tags <% ruby %> oder <%= rubyvariable %> 35

36

Mapping das zentrale Mapping wird durch die Datei config/routes.rb festgelegt Standard-Situation: controller-name/methoden-name/id 37

Zusammenfassung das Rails-Framework bietet ein fast-development Prototyping direkte Anpassung an das Datenmodell in DB MVC automatisch und zwingend mit Template-Engine automatisches und bequemes Mapping auf Controllermethoden minimale Konfiguration 38

39

Grundprinzipien von CakePHP Grundprinzipien von CakePHP sind von Ruby on Rails übernommen DRY: don't repeat yourself Vermeidung von Redundanzen Rapid Development kurze Planungsphase, schnell ausführbarer Code CRUD: create, read, update, and delete direkte Erstellung dieser vier DB-Operationen Convention over Conviguration Konventionen ersetzten Konfigurationen 40

die Idee von CakePHP CakePHP ist stark an Ruby on Rails angelehnt "Rapid Development" 41

CakePHP Komponenten CakePHP verfügt über typische Eigenschaften und Komponenten: MVC in CakePHP Plugins Routes und Dispatcher CakePHP Konsole 42

Entwicklung einer CakePHP-Anwendung Schritte zur CakePHP-Applikation Installation CakePHP Datenbankschema Model generieren Controller erstellen Views erstellen Anwendung optimieren wichtig: Rolle der Datenbank/des Models 43

Installation außer den Framework-Sourcen werden benötigt: Web-Server (Apache 2.x) aktuelles PHP-Modul DBMS (MySQL, auch Postgres, SQLite, Oracle, MS SQL, ) CakePHP: Sourcen-Archiv von http://cakephp.org Entpacken in htdocs wichtig: Apache-Direktive AllowOverride all weil Konfiguration in.htaccess-dateien 44

Verzeichnisstruktur nach Entpacken typische Verzeichnisstruktur Ordner app mit wichtigen Unterordnern 45

Unterordner des Ordners app config Konfigurationsdateien, etwa DB-Paramater controllers Verzeichnis der Controller locale: Internationalisierung models plugins CakePHP-Plugin-Packages webroot Documentroot views 46

die Datenbankkonfiguration im Unterordner app/conf liegt die Datei database.php diese enthält die Datenbankparamter 47

48

49

die Cake-Konsole 50

Einsatz der Konsole die CakePHP-Konsole dient zum Testen zum Generieren von Code 51

erstellen einer Applikation Ausgangspunkt ist eine Datenbanktabelle diese definiert Model mysql> create table students(mtknr integer not null, nname varchar(64) not null, vname varchar(64), fach varchar(64)); Query OK, 0 rows affected (0.06 sec) mysql> insert into students (mtknr, nname, vname, fach) values (1,'Chagall', 'Marc', 'Medieninformatik'); Query OK, 1 row affected (0.01 sec) 52

die Model-Klasse die Model-Klasse nimmt Bezug zur bestehenden Datenbanktabelle 53

die Controller-Klasse minimale Controller-Klasse 54

Funktionalität dieser Anwendung bereits mit diesem geringen Aufwand hat die Anwendung eine umfassende Funktionalität Hintergrund: Scaffolding: CRUD-Funktionalität durch Flag-Variable $scaffold im Controller aktiviert Methoden: index, view, add, edit, delete 55

56

57

Konfiguration im Unterordner app/config befinden sich die Konfigurationsdateien des Frameworks zentrale Bedeutung core.php : Hauptkonfiguration database.php : Datenbankzugriff routes.php : Routing 58

der Controller natürlich auch möglich: direktes Implementieren der Methoden ohne Scaffolding Werteübergabe: Prinzipaufbau der URL http://domaine/controller/action/paramater1/parameter2 REST: Representational State Transfer 59

einfache Methode Ergänzung einer einfachen Methode: function index()s { $students = $this->student->find('all', array('order' => 'created DESC')); } $this->set('students',$students); 60

Konventionen CakePHP verwendet vielfältig Konventionen Dateinamen: Kleinbuchstaben, Worttrennung durch _ Model und DB-Tabelle: gleiche Bezeichnung, Model im Singular, DB-Tabelle im Plural students Student our_students OurStudent 61

View Template-Engine: HTML-Dateien mit PHP-Code Dateien.ctp : Cake Templates Konvention: Template zu Methode view in Controller StudentsContoller: /views/students/view.ctp 62

63

Meta-Templates das Temlate enthält "nur den body" Layouts: Rahmen abgelegt in /cake/libs/view/layouts Standard ist default.ctp 64

65

Ordner webroot Standard-Ziel aller Anfragen ist defaultmäßig der Ordner app/webroot dort entsprechende Unterordner 66

zahlreiche Möglichkeiten CakePHP bietet zahlreiche Möglichkeiten, die View zu erstellen Helper-Klassen: Kapseln Code in Views und Layouts, der in mehreren Ansichten verwendet wird: Vermeidung von doppeltem Code Steuerung über $html, etwa $html->css( ) JavaScript und Ajax u.v.m. 67

Web 2.0 Web 2.0 Begriff geprägt von Dale Dougherty und Craig Cline Oktober/November 2005 Kernidee: Web 1.0 ist veröffentlichen, Web 2.0 ist teilnehmen : das "Mitmach-Web" typische Seiten: flickr, Youtube, Wikipedia, ebay, Amazon (Kundenrezessionen!), typische Techniken: Ajax, Rails, 68

69

70

kritisch gesehen nichts wirklich neues, aber neue Begrifflichkeit manche sprechen nun vom Web 3.0, Web 3.5, 71

72

und nun wir haben einen Klassiker unter den modernen Frameworks kennen gelernt: Ruby On Rails als nächstes: Web-Services 73