Programmiertechniken Content Management -Systeme & -Frameworks Eine Übersicht der gängigsten Programmiertechniken und Frameworks Robin Stenger & Pia Linnemann Agenda 1 2 Programmiertechniken 1.1 Was sind Programmiertechniken 1.2 Die gängigsten Sprachen Content Management Systems & Frameworks 2.1 Überblick, Besonderheiten und Anwendungsbeispiele CMS & CMF 2.2 Übersicht CMS/F und Programmiertechniken Robin Stenger & Pia Linnemann Programmiertechnik – Was ist das? • Eine Programmiertechnik ist eine formale Sprache zur Formulierung von Datenstrukturen und Algorithmen, d. h. von Rechenvorschriften, die von einem Computer ausgeführt werden können. • Sie setzen sich aus Anweisungen nach einem vorgegebenen Muster zusammen, der sogenannten Syntax. Robin Stenger & Pia Linnemann Agenda 1 2 Programmiertechniken 1.1 Was sind Programmiertechniken 1.2 Die gängigsten Sprachen Content Management Systems & Frameworks 2.1 Überblick, Besonderheiten und Anwendungsbeispiele CMS & CMF 2.2 Übersicht CMS/F und Programmiertechniken Robin Stenger & Pia Linnemann Programmiertechniken – Welche sind die wichtigsten? • Die Wikipedia verzeichnet Hunderte von Programmiersprachen, wirtschaftliche Bedeutung haben aber nur vergleichsweise wenige davon. • TIOBE Index Robin Stenger & Pia Linnemann Java • Java ist eine objektorientierte Programmiersprache und eine eingetragene Marke des Unternehmens Sun Microsystems (Oracle) • Plattformunabhängig • Oracle selbst bietet Laufzeitumgebungen für die Betriebssysteme Linux, OS X, Solaris und Windows an. • Andere Hersteller lassen eigene Java-Laufzeitumgebungen für ihre Plattform zertifizieren. • Auch in Autos, HiFi-Anlagen und anderen elektronischen Geräten wird Java verwendet. Robin Stenger & Pia Linnemann C / C++ • • • • Imperative Programmiersprache 1970 Anwendungsbereiche: System- und Anwendungsprogrammierung Zahlreiche Sprachen, wie C++, Objective-C, C#, Java oder PHP, orientieren sich an der Syntax und anderen Eigenschaften von C. Robin Stenger & Pia Linnemann C# (C-Sharp) • • • • • typsichere, objektorientierte Allzweck-Programmiersprache Plattformunabhängig .NET Ursprünglich exklusiv für Windows OS X, iOS und Android auch möglich Robin Stenger & Pia Linnemann Phyton • ist eine universelle, üblicherweise interpretierte höhere Programmiersprache • Ihre Entwurfsphilosophie betont Programmlesbarkeit, außerdem ist Python-Code im Vergleich zu anderssprachigem Code teilweise deutlich kürzer • Eine Reihe von Web-Application-Frameworks nutzt Python • Ferner gibt es einen Python-Interpreter für das Symbian-Betriebssystem, so dass Python auf verschiedenen Mobiltelefonen verfügbar ist. • Außerdem basieren mehrere bekannte kommerzielle Projekte, etwa Google und YouTube, in Teilen auf Python. • Auch in der Spieleindustrie findet die Sprache bisweilen Einsatz Robin Stenger & Pia Linnemann PHP • „Hypertext Preprocessor“, ursprünglich „Personal Home Page Tools“ • Skriptsprache mit einer an C angelehnten Syntax, die hauptsächlich zur Erstellung dynamischer Webseiten oder Webanwendungen verwendet wird. • PHP zeichnet sich durch breite Datenbankunterstützung und InternetProtokolleinbindung sowie die Verfügbarkeit zahlreicher Funktionsbibliotheken aus. • PHP wurde Anfang 2013 auf etwa 244 Millionen Websites eingesetzt und Ende 2015 von 82 % aller Websites als serverseitige Programmiersprache verwendet. PHP ist die am häufigsten verwendete Programmiersprache zum Erstellen von Websites. Zudem ist sie bei den meisten Webhostern vorinstalliert. Robin Stenger & Pia Linnemann Visual Basic .NET • ist eine Programmiersprache, die auf dem Microsoft .NET Framework aufbaut (objektorientiert) • Visual Basic .NET produziert einen Zwischencode für eine von Microsoft entwickelte virtuelle Maschine, die Common Language Runtime (CLR) • Diese Maschine ist im .NET Framework enthalten. • Der Zwischencode wird erst zur Laufzeit in Maschinencode übersetzt, durch diese Zwischenstufe der virtuellen Maschine bleibt sie mit anderen .NET-Sprachen interoperabel, zur Ausführung wird jedoch das .NET Framework benötigt. Robin Stenger & Pia Linnemann HTML (Hypertext Markup Language) • ist eine textbasierte Auszeichnungssprache zur Strukturierung digitaler Dokumente wie Texte mit Hyperlinks, Bildern und anderen Inhalten. • HTML-Dokumente sind die Grundlage des World Wide Web und werden von Webbrowsern dargestellt. Neben den vom Browser angezeigten Inhalten können HTML-Dateien zusätzliche Angaben in Form von Metainformationen enthalten, z. B. über die im Text verwendeten Sprachen, den Autor oder den zusammengefassten Inhalt des Textes. • HTML dient als Auszeichnungssprache dazu, einen Text semantisch zu strukturieren, nicht aber zu formatieren. Die visuelle Darstellung ist nicht Teil der HTML-Spezifikationen und wird durch den Webbrowser und Gestaltungsvorlagen wie CSS bestimmt. Robin Stenger & Pia Linnemann JavaScript • JavaScript ist eine Skriptsprache, die ursprünglich für dynamisches HTML in Webbrowsern entwickelt wurde, um Benutzerinteraktionen auszuwerten, Inhalte zu verändern, nachzuladen oder zu generieren und so die Möglichkeiten von HTML und CSS zu erweitern. • Heute findet JavaScript auch außerhalb von Browsern Anwendung, so etwa auf Servern und in Microcontrollern. • In JavaScript lässt sich je nach Bedarf objektorientiert, prozedural oder funktional programmieren. Robin Stenger & Pia Linnemann JavaScript Typische Anwendungsgebiete von JavaScript im Webbrowser sind: • dynamische Manipulation von Webseiten über das Document Object Model • Plausibilitätsprüfung (Datenvalidierung) von Formulareingaben noch vor der Übertragung zum Server • Anzeige von Dialogfenstern • Senden und Empfangen von Daten, ohne dass der Browser die Seite neu laden muss (Ajax) • Vorschlagen von Suchbegriffen während der Eingabe • Werbebanner oder Laufschriften • Verschleierung von E-Mail-Adressen zur Bekämpfung von Spam • mehrere Frames auf einmal wechseln oder die Seite aus dem Frameset lösen • Schreib- und Lesezugriff auf Cookies und den Web Storage innerhalb des Browsers Robin Stenger & Pia Linnemann Agenda 1 2 Programmiertechniken 1.1 Was sind Programmiertechniken 1.2 Die gängigsten Sprachen Content Management Systems & Frameworks 2.1 Überblick, Besonderheiten und Anwendungsbeispiele CMS & CMF 2.2 Übersicht CMS/F und Programmiertechniken Robin Stenger & Pia Linnemann Was ist ein CMS? • Content-Management-System (CMS) • Ortsunabhängige Web Software • zur gemeinschaftlichen Erstellung, Bearbeitung und Darstellung von Websiteinhalten • Meistens ohne Programmierkenntnisse bedienbar grafische Oberfläche • je nach System verschiedene Spezialisierung (Content, Shop usw.) • Zuteilung von individuellen Bearbeitungsrechten • Basieren auf CMF Robin Stenger & Pia Linnemann Welche CMS gibt es? Robin Stenger & Pia Linnemann Wann ist ein CMS nötig? • Content-Management-System (CMS) • Wenn Seiteninhalte häufig geändert werden z.B. Content News, Blogs, größere Online Shops, Communitys usw. • Basic-Websites ohne große spezielle Bedürfnisse Robin Stenger & Pia Linnemann Was ist ein Content Management Framework? • Content-Management-Framework (CMF) • Basis zur Entwicklung von CMS • beschleunigt Programmierung einer Website • Baukastensystem: Software Bausteine stellen grundlegende Funktionalitäten bereit wie z.B.: Zugriffsschutz, Datenbankschnittstellen, Templates & Suchfunktionalitäten • meisten CMF sind mittels Skriptsprachen abgebildet • Programmierkenntnisse nötig • anfangs teure Entwicklungskosten, langfristig günstiger • flexibler, da eigene Bedürfnisse besser im Code bearbeitet werden können • Vorzüge: geringer zeitlicher Aufwand & Budget schnell sehr professionelle Oberflächen anzulegen Robin Stenger & Pia Linnemann Snstige Technologien jQuery • größte Java-Skript Bibliothek, teilweise bei CMS mitgeliefert wie bei Joomla, Wordpress & Drupal • JavaScript-Datei, in der alle grundlegenden Ereignis-, Effekt- und Ajax-Funktionen enthalten sind • Framework-Datei wird in HTML eingebaut Bootstrap • Gestaltungsvorlagen für Typografie, Formulare, Buttons, Tabellen & Navigationsgestaltungselemente & optional Java Skript Elemente • z.B. von NASA, und US-Nachrichtensender MSNBC genutzt Robin Stenger & Pia Linnemann • Seit 2003, kostenlos & plattformunabhängig, 60% Marktanteil weltweit • besonders geeignet zum Aufbau und zur Pflege für Webblogs & einfacher Websites, da jeder Beitrag einer oder mehrerer Kategorien zuordnen kann • Besonderheiten: u.a Leserkommentare zu prüfen, Linkverwaltung, Zugriffe für Benutzerrollen & Möglichkeit externer Plug-ins • große Community die ständig neue Module & Templates entwickelt • kostenlose Hilfe bei Community • Beispiel Websites: Crack Magazine, Vouge India Robin Stenger & Pia Linnemann Robin Stenger & Pia Linnemann Robin Stenger & Pia Linnemann Robin Stenger & Pia Linnemann Joomla! • • • • Seit 2005, kostenlos & plattformübergreifend, 7% Marktanteil weltweit Durch lange Präsenz – ausgereiftes System große Community die ständig neue Module & Templates entwickelt Erweiterungen wie Plugins, Komponenten, Module und Templates meist kostenfrei vorhanden • kostenlose Hilfe bei Community • Beispiel Website: IKEA & Ebay Robin Stenger & Pia Linnemann Robin Stenger & Pia Linnemann Robin Stenger & Pia Linnemann Robin Stenger & Pia Linnemann • Seit 1998, kostenlos & plattformunabhängig, 2% Marktanteil weltweit • besonders viele Erweiterungen, ohne eigenen Programmcode geschrieben werden muss wie Shopsysteme, Galerien, Gästebuch • allerdings vergleichsweise hohe Komplexität und hohe Einarbeitungszeit • Oft genutzt von öffentl. Organisationen wie Beispielseite die Grüne Robin Stenger & Pia Linnemann Robin Stenger & Pia Linnemann Robin Stenger & Pia Linnemann • Seit 2001, kostenlos & serverunabhängig, 5% Marktanteil weltweit • Umsetzung von Ansätzen einer Social Software • unterstützt den Aufbau von Communitys, die gemeinsam an Inhalten arbeiten, austauschen und informieren wollen • Nutzer eigene Weblogs anlegen, sich in Foren austauschen oder Artikel veröffentlichen • Beispielwebsites: 11 Freunde, die Zeit, Flixbus usw. Robin Stenger & Pia Linnemann Robin Stenger & Pia Linnemann Robin Stenger & Pia Linnemann Agenda 1 2 Programmiertechniken 1.1 Was sind Programmiertechniken 1.2 Die gängigsten Sprachen Content Management Systems & Frameworks 2.1 Überblick, Besonderheiten und Anwendungsbeispiele CMS & CMF 2.2 Übersicht CMS/F und Programmiertechniken Robin Stenger & Pia Linnemann Übersicht Content Management Systeme Techniken Wordpress PHP, MySQL Typo3 PHP, MySQL, PostgreSQL, Microsoft SQL Server Joomla! PHO, MySQL Drupal PHP, MySQL, MariaDB, PostgreSQL, SQLite MS Sharepoint .NET Framework, SQL Server, Windows Internal Database MODX PHP, MySQL Mombo PHP, MySQL Midgard GLib, D-Bus, PHP, Python, MySQL eZ Publish PHP5, MySQL, PostgreSQL, SQL Server Symphony PHP, NoSQL, RDBMS through PHOCR Silverstripe PHP5, MySQL, PostgreSQL, SQL Server Robin Stenger & Pia Linnemann