White-paper: Jäger zwischen zwei Welten

Ähnliche Dokumente
Erstellen eines HTML-Templates mit externer CSS-Datei

Web-Anwendungsentwicklung mit dem Delivery Server

Dynamische Websites mit XML und PHP4

Cross Platform Development mit SharePoint

JavaScript und das Document Object Model

Cross-Platform Mobile Apps

Publizieren im Internet

Tutorial zum erstellen einer Webseite

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS 2015 PHP MVC. Dr. Christian Senger. PHP MVC 1 von 21

Eigene Themes from Scratch Stefan Fröhlich.! WordCamp Berlin 2015

Eine wirklich große Hilfe war die Typo3-Dokumentation der Firma Mittwald:

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

Responsive Web Design

6.9 Java Server Pages

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

{ Light up the Web } Oliver Scheer. Evangelist Microsoft Deutschland

HERZLICH WILLKOMMEN SHAREPOINT 2013 DEEP DIVE - APPS IOZ AG 1

Besser PHP Programmieren mit Design Pattern. Model-View-Controller (MVC) Robert Westenkirchner. C O N T R O L L E R 1.

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

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS XML Programmierung - Grundlagen PHP Programmierung - Grundlagen...

Extension- Entwicklung in TYPO3 am Beispiel einer Seminarverwaltung

Das Zend Framework. Hält der Name, was er verspricht?

Entwicklung und Integration mobiler Anwendungen. <Speaker> Oracle Deutschland B.V. & Co. KG

Benutzerverwaltung mit ASP.NET Membership

Joomla Schulung. Open Source CM-System. Projekt-Nr Thomas Haussener, MA. 20. Juni 2007

Was gibt es Neues im Office 365 Umfeld?

HTML und CSS. Eine kurze Einführung

Die Erkenntnis von gestern muss heute mit einem neuen TEAM - Ihr Partner für IT 2

Security Component Bundle

Spezifische Anpassungen Katalog zum eigenständigen Adaptieren von levatis Personalplanung für Bau und Handwerk

XPages Good to know. Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015

XML Kurs LRZ 1

Dokumentation Externe Anzeige von Evento Web Dialogen

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Web-Technologien. Fachbereich AI, Web-Technologien 1

MOC Entwicklung von ASP.NET MVC 4 Webapplikationen

Offline-Webanwendungen mit Google Gears. Schuster Stefan - Irian.at

PPS-Veranstaltung. 1. Praxisveranstaltung

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Ein UI in zwei Welten - Controls in HTML5 und WPF. Timo Korinth

Social Data Mining. Albert Weichselbraun. May 2009

Apache Wicket Web Framework: Reinvented the Wheel? Stärken und Schwächen: Ein Erfahrungsbericht aus drei Projekten

Tutorial: HTML Vorlage

Web Data Mining. Albert Weichselbraun

Schnell performante Web-Applikationen entwickeln. Markus Zapke-Gründemann LinuxTag 2012

Web Dynpro / FloorPlanManager / NWBC

Mobile Backend in der

Business Objekte. Der Schlüssel für Applikationen mit Zukunft TMN Systemberatung GmbH Folie 1

The app the crashes, before the breakpoint is reached: Code to the event:

Design Patterns MVC. Marcus Köhler Markus Merath Axel Reusch. Design Patterns MVC Marcus Köhler Markus Merath Axel Reusch Seite 1

PHP JavaScript Kapitel 9. Java-Script-Objekte und das Event-Modell

SharePoint 2010 Mobile Access

HERZLICH WILLKOMMEN SHAREPOINT 2013 DEEP DIVE APPS IOZ AG 1

Web 2. Gang. Python User Group Köln Christopher Arndt

Einführung Responsive Webdesign

Content Management System für die Webpräsenzen der Freien Universität Berlin

Einfluss der Treatment Sets auf Ladezeiten und Datenvolumen am Beispiel von SharePoint Server 2010

Portal-Entwicklung mit der Enterprise Portal und der Enterprise Application Platform von JBoss

Signatur mit Formatierung

Einfaches Testen von Webapplikationen mit

Microsoft ASP.NET 2.0 Crashkurs

Der Inhalt dieses Foliensatzes ist nicht klausurrelevent!!! - aber trotzdem interessant ;-)

Joomla! 1.5 Extensions

Gut zu wissen... Lorenz Keller Server Technologies Competence Center Nord

Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen. KNF Kongre 2001 Henning P. Schmiedehausen

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Der IBM Websphere Portalserver

GIS mit Ruby on Rails

Di 8.4. Silverlight: Windows Presentation Foundation für s Web. Christian Wenz

Design anpassen eine kurze Einführung

Zend PHP Cloud Application Platform

Fragen Arthur Zaczek. Apr 2015

Django - ein Python Web-Framework

Die Alternative zum Web-Form Modell

Business-Information in Bestform

Unternehmer Programmierer

Deploy Early oder die richtigen. Zutaten für Ihren Relaunch

inews: XML in der Praxis Konvertierung von Objekten nach XML und zurück Dr. St. Seefeld / INGTES AG

Frontend-Entwicklung mit JavaScript

Tipps, Struktur und Fragen

1 Definition der Selektoren Einbinden der CSS 3 Möglichkeiten Farbangaben Schriftformatierung Abstände...

FensterHai. - Integration von eigenen Modulen -

Mini-Dokumentation zur Bearbeitung der Website massweiler.de

JavaScript: Von einfachen Scripten zu komplexen Anwendungen. MMT Dezember 2011

Angewandte Informatik

Verteilte Systeme Hochschule Mannheim

Web Engineering.

Application Frameworks

TYPO3 und TypoScript

<Insert Picture Here> Application Express: Stand der Dinge und Ausblick auf Version 5.0

JavaScript Frameworks für Mobile

Model-View-ViewModel (MVVM)

Dr. Alex Kohn. APEX: Zentrale Rechteverwaltung leicht gemacht

Vorlesung Software-Engineering I

Application Designer & Framework unlimited

Fachbereich Wirtschaftswissenschaften Klausur: Übung 1 zur Vorlesung E-Business und Web-Site-Engineering Sommersemester 2007 Deckblatt Hinweise

Silverstripe CMS und das Sapphire Framework

Gestalten von WebPoint-Anwendungen mit Hilfe von Struts-Tiles. Torsten Walter

Komponenten & Hypermedia Seminar Prof. Dr. Frank Thiesing Struts Java-Framework für Web-Applikationen. Referenten: Fabian Bartelt Jens de Witt

Transkript:

White-paper: Jäger zwischen zwei Welten Einleitung Nicht die Augen vor guten Technolgie-Strategien verschliessen, sondern die guten Applikations Desings aus verschiedenen Welten zusammenführen, ist meine Empfehlung. Manfred Jehle CEO / General Manager CeTris GmbH Die Ansätze der ASP.NET Technologie in PHP übertragen Die Vorteile des Code-Behind-Ansatzes von Microsoft können zusammen mit dem MVC (Model-View-Control) Designpattern zu einem einfachen Aufbau der Webseiten genutzt werden. Dabei ist im weiteren der Seiten-Template-Ansatz zusätzlich auf einfache Weise integrierbar. Die Basis des.net-frameworks muss nicht einmal in PHP übertragen werden. Die Grundstrukturen von PHP 4 reichen zur Erstellung einer Webpräsenz mit diesem Ansatz. Welche Vorteile der ASP.NET-Welt bringen in der PHP-Welt Vorteile? Die Trennung eines Templates von den seitenspezifischen Inhalten braucht einen Ansatz, der im ASP.NET mit Custom-Page verfolgt wird. Einzelne Seitenbereiche werden dabei als Control-Parts angesehen. So sind Bereiche für Header, CSS-Einbindung, Navigation, Title und Content fest im Template eingebaut. Diese werden zum Zeitpunkt der Seitengenerierung an die entsprechenden Templatebereiche ausgeliefert. Dies entspricht dem ASP.NET Ansatz der Render. Umsetzungsstrategie Das MVC-Pattern wird konsequent eingesetzt und zusätzlich mit einer Mehrschicht-Architektur verknüpft. Zudem wird ein SecurityLayer eingesetzt, um die Zugriffsberechtigungen zu prüfen und die entsprechenden Berechtigungen für den User für die anderen Schichten zugänglich zu machen. Durch die strikte Aufteilung der Aufgabengebiete auf die Klassen konnte eine einfache und übersichtliche Codestruktur erstellt werden. Die ViewLayer-Class wird pro Seite instanziert. Das Management der Instanzierung erfolgt in der ViewLayer-Class.

Erfahrung Durch die konsequente Trennung von Page Template Klassenstruktur konnte effizient eine grössere Web-Applikation in kurzer Zeit erstellt werden. Zudem wurde für Erweiterungen eine optimale Basis geschaffen, um auf einfache Weise neue Seiten einzubauen oder bestehende Seiten umzubauen. Das Security- Management inklusive Zugriff und Bearbeitungsberechtigungen wurde zentralisiert. Die Entflechtung von HTML und Code bringt den von ASP.NET gewohnten Vorteil und einen entscheidenden Überblick über den vorhandenen Code und dessen Funktion. Die Grenzen liegen ganz klar bei PHP 4. Die beschnittene Objektorientierung vor allem mit dem Fehlen des Überladens von Methodenbringt entscheidende Nachteile gegenüber ASP.NET. Dasselbe gilt für das Fehlen eines Event- Managements. Dieses zu integrieren, sprengt den Rahmen kleinerer Budgets. Somit muss es umgangen werden, was die Möglichkeiten gegenüber der ASP.NET-Struktur massiv einschränkt. Damit ist der Aufbau einer Pre-Render- und Render-Architektur nicht möglich. Fazit Durch den Blick über den eigenen Grenzzaun hinaus wurde eine strategisch wertvolle Architektur erstellt, auf welcher auch in Zukunft aufgebaut werden kann und ein Wachstum sowohl im Umfang als auch beim Einsatz der Datenbank ermöglicht. Der Austausch der Datenbank bedingt lediglich den Austausch der DatabaseLayer-Class. Code Auf den nächsten Seiten finden Sie Ausschnitte aus dem Code.

Page <?php $controllayer->controller($pagename,'','');?> <?php include_once('template.php');?> Template <html> <head> <title><?php echo($controllayer->gettitle());?></title> <link rel="stylesheet" href="css/basic.css" type="text/css" media="screen" /> <?php echo($controllayer->getscriptpart());?> </head> <body <?php echo($controllayer->getbodytagextention());?>> <?php echo($controllayer->getformpart());?> <table id="total" cellpadding="0" cellspacing="0"> <tr id="header"> <td colspan="2"> <div id="header"> <div id="logohomeleft"><a href="<?php echo('jobs.php?phpsessid='.session_id ().'&lan='.$controllayer->getlanguageid());?>"><img src="../img/x.gif" height="50px" width="100" alt="home" border="0"></a></div> <div id="logohomeright"></div> <div id="logohometext"><?php echo($controllayer->gettitle());?></div> <div id="header_trenner"><a href=""><img src="../img/x.gif" height="10px" width="100px" alt="home" border="0"></a></div> <div id="header_infoline"><a href=""><img src="../img/x.gif" height="15px" width="13px" alt="home" border="0"></a> <?php echo($controllayer->getcontentstatus());?> </div> </div> ControllLayer-Class class ControlLayer var $databaselayer; var $businesslayer; var $SecurityLayer; var $ViewLayer; var $Login; var $PW; var $spagename; // Constructor function ControlLayer() $this->databaselayer = new DatabaseLayer(); $this->businesslayer = new BusinessLayer($this->databaseLayer); $this->securitylayer = new SecurityLayer($this->businessLayer); function Controller($action,$UserLogin,$UserPw) // do all for controlling the flow function GetNavigation() return $this->viewlayer->snavigation; function GetContentTitle() return $this->viewlayer->scontenttitle;

function GetContentStatus() return $this->viewlayer->scontentstatus; function GetHidenFields() return $this->viewlayer->shiddenfields; function GetScriptPart() return $this->viewlayer->sscriptpart; function GetContent() return $this->viewlayer->scontent; function GetTitle() return $this->viewlayer->stitle; function GetFormPart() return $this->viewlayer->sformpart; function GetBodyTagExtention() return $this->viewlayer->sbodytagextention; function GetHiddenFields() return $this->viewlayer->shiddenields; function GetBusinessLayer() return $this->businesslayer; function Destructor() $this->businesslayer->destructor(); function GetUserName() return $this->securitylayer->getusername(); function GetUserID() return $this->securitylayer->getuserid(); function IsAdmin() return $this->securitylayer->isadmin(); function GetViewState() return $this->sviewstate;

ViewLayer Class class ViewLayer // Constructor function ViewLayer($parent,$businessLayer,$action) $this->parent = $parent; $this->businesslayer = $businesslayer; // now its ready to produce Content $this->init(); function Init() $this->inistate(); $this->getviewstate(); $this->geterrorfield(); $this->createtitle(); $this->createstatusline(); $this->createcontentheader(); $this->createformpart(); $this->createnavigation(); $this->createcontent(); $this->createhiddenfields(); $this->createbodypartextention(); $this->createscriptpart(); Manfred Jehle, Zug Weder Auszüge mit oder ohne Quellenangabe, noch der ganze Text darf ohne Erlaubnis von Manfred Jehle weiterverwendet werden. Dasselbe gilt für die verwendeten Skizzen, Bilder und Codeausschitte.