|
|
|
|
Edit v1.002 from 2019-09-12 to 2019-10-23 by TSc
Das NOOP! Framework
Das NOOP! Framework ist ein Homepage-Framework,
mit dem man Webseiten erstellen kann.
Damit können die HTML-Dateien neben den dazu gehörigen Dateien
wie Bilder, PDF's und Sounds stehen.
So können diese zum Beispiel einfacher über dem Windows Explorer
geordnet und zur Bearbeitung aufgerufen werden.
Auf dieser Seite erfahren sie
die Funktionen,
den Nutzen,
die Namensgebung und
die Geschichte von NOOP .
Da es hier sehr viele Fachbegriffe vorkommen,
gibt es unten dran noch ein Glossar.
Die offizielle Webseite ist momentan
https://noop.cisco211.de/.
|
Edit v1.000 from 2019-09-16 to 2019-09-16 by TSc
Funktionen und Nutzen
Bei NOOP handelt es sich nicht um ein
CMS wie Joomla oder Wordpress,
sondern um ein Framework ,
d.h. NOOP ist eher sowas wie CakePHP , Symfony und
Zend .
Man muss sich das so vorstellen,
als hätte man nicht den Feuerwehrwagen,
sondern eher einen Feuerwehrwagen-Baukasten,
mit dem man sich den individuellen Feuerwehrwagen zusammenbauen kann.
Nun eine Auflistung, was es kann und wofür man das braucht:
- Minimale Systemvorraussetzungen
-
Das Framework läuft auf
PHP 5 und 7.
Ein Datenbanksystem ist nicht zwingend erforderlich.
Vom 15 Jahre alten Rechner aus dem Keller bis zum Rootserver im
Rechenzentrum,
NOOP ist auf höchste Kompatibilität
ausgelegt.
- Statische Seiten
-
Erstellen von statischen Seiten,
wo nur der Seiteninhalt beschrieben werden muss.
Möglichkeit, Seitentitel, Meta-Angaben, Caching-Verhalten und
Sitemap-Einstellung
in HTML-Kommentaren zu beschreiben.
Beispielsweise kann man ein Word-Dokument nach
HTML exportieren und
diese mit kleinen Änderungen direkt in
NOOP übernehmen.
- Dynamische Seiten
-
Erstellung von dynamischen generierten Seiten mittels
PHP,
HTML,
CSS und
JavaScript nach dem
MVC-Pattern.
Das bedeutet man kann
NOOP mit beliebigen Funktionen erweitern.
Vom einfachen Blog bis zum speziell für den Zweck entworfenen Shop.
- Unterstützung beliebiger Datenbanksysteme
-
Das Framework eignet sich auch für komplexere Projekte,
welche eine Datenbank benötigen.
Funktionierender Code für
MariaDB und
MySQL
ist bereits enthalten.
- Suchfunktion
-
Wenn man 300 Unterseiten hat und
nichts mehr findet,
dann kann die Suchfunktion helfen.
Diese kommt momentan komplett ohne Datenbank aus und
dank der Volltextsuche findet man alles,
was je auf der Seite beschrieben wurde.
- Template-Unterstützung
-
Weil sich niemand wie ein Papagei gerne wiederholt,
beschreibt man das Design der Webseite einmalig als Template.
Das Template wird dann automatisch benutzt um alle Unterseiten genauso
darzustellen wie gewollt.
- Versenden von E-Mails
-
Das Framework hat,
sofern benötigt,
alles notwendige an Bord,
um eine funktionierende E-Mail versenden zu können.
Die E-Mail kann dabei, dank dem Template-System, frei gestaltet werden.
- Wartungsmodus
-
Wenn Änderungen an der Webseite vorgenommen werden,
kann man den Wartungsmodus benutzen,
damit die Besucher bescheid wissen,
das hier gerade gearbeitet wird.
- Eigene Fehlerseiten
-
Wenn ein Fehler auftritt,
wird dieser nicht im Design des Webservers,
sondern im Design ihrer Webseite dargestellt.
Das heißt auch im Fehlerfall gilt
Corporate Identity .
- Suchmaschinenfreundlicher Aufbau
-
Das Framework unterstützt von Haus aus sogenannte
SEO
URLs,
d.h. keine kryptischen Adressen zu den Seiten.
Zudem kann
NOOP automatisch eine
Sitemap
anhand der existierenden Seiten generieren.
- Integrierte Sicherheitsmechanismen
-
NOOP unterstützt moderne Sicherheitsmechanismen,
wie
HTTPS,
Captcha-Unterstützung mit
Google reCAPTCHA 2 ,
CSP,
CORS und
CSRF-Protection,
damit potentielle Kunden keine Gefahren wie
Identitätsdiebstahl und Hacking-Angriffe beführchten müssen.
Mit NOOP kann der Datenschutz eingehalten werden.
|
Edit v1.000 from 2019-09-12 to 2019-09-16 by TSc
Namensgebung und Geschichte
Hier ein wenig Text,
wie es dazu kam,
dieses Framework zu entwickeln und
warum es NOOP! Framework
heißt.
Namensgebung
Der Name wirkt auf den ersten Blick in etwa so als würde es
No Operation bedeuten,
das stimmt aber nicht.
NOOP! ist ein Akronym und
steht für
No Object Oriented Programming! ,
was auf deutsch soviel heißt wie
Keine objektorientierte Programmierung .
Der Begriff Framework wurde dann einfach hinten dran gehangen,
damit es etwas deutlicher wird.
Der offizielle Name ist somit NOOP! Framework und
es lässt sich auch direkt ableiten,
wo der Schwerpunkt in diesem Framework liegt.
Geschichte
Das Framework ist das Resultat aus meiner (TSc) Erfahrung von
vergangenen Projekten,
wie das Consequence Framework meiner eigenen Homepage
(cisco211.de)
und
vielen kleineren Unterprojekten,
wie die API-Schnittstelle von
Hostile Space Revived.
Ein großes Problem bei der Entwicklung von Webseiten ist folgendes:
Man möchte eine Webseite bauen,
aber sich nicht jedes mal mit sämtlichen Dingen drumherum
beschäftigen,
sondern sich um das wesentliche (Die Sache an sich) kümmern.
Sicherlich könnte man nun einfach eines dieser Frameworks
wie Symfony oder Zend benutzen,
allerdings sind diese sehr komplex aufgebaut und
man muss erstmal lernen,
wie man diese bedient.
Dann kommt noch dazu,
das die meisten davon mittels objektorientierter Programmierung das
Model-View-Controller-Pattern abbilden.
D.h. trotz Kenntnisse in HTML, CSS, Javascript und PHP müsste man
erstmal Symfony lernen,
um zu verstehen wie man Symfony benutzt.
Genau dieses Problem hat auch der Vorgänger von NOOP .
Das Consequence Framework ist ein objektorientierendes,
auf dem Model-View-Controller-Pattern aufbauendes Homepage-Framework.
Auch da müsste man sich als Neuling erst einmal einarbeiten,
um zu verstehen wie man dort neue Seiten einfügt.
Das alles braucht man aber sehr oft nicht,
wenn man einem Besucher einfach nur Inhalt ausliefern will.
Klar, man könnte auch einfach statische HTML-Seiten schreiben.
Da wiederrum hat man das Problem,
dass jede Seite ein vollständiges HTML-Dokument beschreiben muss,
d.h. jede Seite muss das Design,
das Menü und alles um den Inhalt drumherum enthalten.
Möchte man dann eine Änderung am Design vornehmen,
wo die HTML-Struktur verändert werden muss,
dann muss man dies in allen Seiten tun.
Genau das kostet einfach zu viel Zeit, die keiner hat.
Jetzt könnte man sagen,
"OK, dann machen wir das halt mit Frames!".
Aber auch das ist keine Lösung,
Frames gibt es nicht mehr und IFrames machen die Sache nicht besser.
Javascript ist übrigens auch keine Lösung,
weil Javascript nach wie vor optional ist.
Das heißt es gibt Geräte (Clients),
die die Webseite nicht darstellen können,
weil sie,
aus welchen Gründen auch immer,
kein Javascript beherrschen oder erlauben.
Und aus genau diesen Standpunkten hat sich immer mehr NOOP
herauskristallisiert.
NOOP v0.1 - v0.4
Die Urversion von NOOP war ursprünglich als
Proof of Concept für ein Hostingprojekt gedacht und
bestand aus einer einzigen PHP-Datei.
Dort wurde die grundlegende Arbeitsweise von NOOP festgelegt.
Das Hostingprojekt wurde später leider doch nicht umgesetzt und
NOOP lag dann einige Zeit brach.
NOOP v0.4 - v0.97
Im Projekt
Hostile Space Revived
besteht schon seit vielen Jahren das Bedürfnis die einzelnen,
unabhängigen Spieler-Charaktere in einen Accountsystem zusammen zu
fassen.
Das Framework wurde dementsprechend weiterentwickelt und
unterstützt seitdem
sicherheitsrelevante Features (CSP, CSRF−Protection, reCAPTCHA 2),
dynamische Unterseiten,
das Senden von E-Mails und
eine unabhängige Datenbankanbindung (MySQL/MariaDB).
NOOP v0.97 - heute
Bei Hilfe & Service von EDV-Fachleuten
wurde jahrelang Joomla! 1.5 verwendet.
Das hat auch recht gut geklappt,
allerdings gab es auch einige Nachteile.
Zum einen ist Joomla! 1.5 schon sehr alt und
wurde nie auf eine neuere Version aktualisiert.
Der Hostinganbieter war schon dabei die Ünterstützung für
PHP 5 nur noch mit extra Kosten weiterhin bereitzustellen.
Dann kommt noch dazu,
dass ein
CMS
für die Firmenwebseite eigentlich zu viel des guten
ist und ein einfaches Homepage-Framework vollkommen ausgereicht hätte.
Alle Unterseiten lassen sich vollständig in HTML beschreiben und
brauchen somit kein
CMS
mit einer Datenbank.
Und genau da wurde dann NOOP angesetzt und
mit der Möglichkeit erweitert,
einfache,
statische Seiten darstellen zu können.
Mittlerweile sind weitere nützliche Sachen dazugekommen,
wie die Suchfunktion und der Sitemap-Generator.
|
Edit v1.000 from 2019-09-16 to 2019-09-16 by TSc
Glossar
Hier eine Beschreibung zu all den Abkürzungen und Begriffen.
-
Captcha =
Completely automated public turing test
to tell computers and humans apart:
-
2019-09-16, Mo./TSc:
Bedeutet auf deutsch:
"vollautomatischer öffentlicher Turing-Test zur Unterscheidung
von Computern und Menschen".
Captcha's dienen zur Bestimmung ob ein Webseitenformular von einem
echten Mensch, oder einer Maschine (Computerprogramm) ausgefüllt
wurde.
Der einzige Zweck dient dem Schutz vor Mißbrauch von
Webseitenformularen,
z.B. Spam.
In der Regel sind Captcha's kleine Bildchen,
wo eine Zeichenfolge drin steht,
die man aptippen muss.
Für den Menschen ist das in der Regel eine einfach zu lösende
Aufgabe.
Ein Computer dagegen muss sehr viel Aufwand betreiben,
um den Text in diesem Bildchen korrekt zu erkennen.
-
CORS = Cross-Origin Resource Sharing:
-
2019-09-16, Mo./TSc:
Ist ein Mechanismus für
HTTPS in Webbrowsern,
der steuert,
ob externe Inhalte auf der aktuellen Seite geladen werden dürfen.
Standardmäßig dürfen keine externen Inhalte geladen werden.
Dabei muss der Server, der die Daten ausliefert, festlegen,
welche Webseiten (von außen) die Daten abrufen dürfen.
Der Server liefert diese Information per
Access-Control-Allow-* HTTP -Header
aus.
Dieser Mechanismus hat besonders dann Relevanz,
wenn man z.B. per JavaScript externe Inhalte
nachlädt.
- CSP = Content Security Policy:
-
2019-09-16, Mo./TSc:
CSP ist ein Sicherheitskonzept,
um Angriffe wie Cross Site Scripting durch einschleusen von Daten in
Webseiten zu verhindern.
Im Prinzip ist das eine Art Rechtesystem für Webbrowser,
wo man sehr genau bestimmen kann,
welche Inhalte geladen werden dürfen und wo sie her kommen
dürfen.
Bei der Verwendung von CSP nimmt man auch einige
Einschränkungen in Kauf.
Zum Beispiel kann man kein JavaScript mehr direkt
in den <script> schreiben,
sondern man muss auf eine externe
JavaScript -Datei referenzieren und
diese Referenz z.B. per nonce -Attribut authentifizieren.
Wie CORS dient dies zur Erhöhung der Sicherheit.
-
CSRF = Cross-Site-Request-Forgery:
-
2019-09-16, Mo./TSc:
Heißt auf deutsch in etwa soviel wie
Seitenübergreifende Anfragenfälschung .
Dabei versucht der Angreifer dem Webbrowser des Opfers eine URL
unterzuschieben,
welche eine Aktion ausführt,
auf die der Angreifer es abgesehen hat.
Ein gutes Abwehrmittel dagegen ist ein sogenanntes
Synchronizer Token Pattern .
Dabei wird ein Token (kryptische Zeichenkette) unsichtbar am Webformular
angehängt und
beim Absenden des Formulars erkennt der Server dann anhand eines
Vergleiches zwischen gemerkten Token und Absender-Token,
ob der Absender derjenige ist, der es sein sollte, oder nicht.
- CSS = Cascading Style Sheets:
-
2019-09-16, Mo./TSc:
Auf deutsch übersetzt sich das in etwa zu:
Gestufte Gestaltungsbögen .
Mit CSS beschreibt man wie eine HTML -Seite
optisch gestaltet werden soll,
z.B. Farben, Abstände, Größe und
Art der zu verwendeten Schrift, ...
-
HTML = HyperText Markup Language:
-
2019-09-16, Mo./TSc:
Auf deutsch übersetzt:
Hypertext-Auszeichnungssprache .
In dieser Sprache werden heutzutage alle Webseiten beschrieben,
so auch diese Seite hier.
-
HTTP = Hypertext Transfer Protocol:
-
2019-09-16, Mo./TSc:
In deutsch:
Hypertext-Überetragungsprotokoll .
Wird hauptsächlich benutzt um Webseiten an Webbrowsern auszuliefern,
Downloads zu ermöglichen und
sogar um Musik über das Internet zu streamen.
-
HTTPS = Hypertext Transfer Protocol
Secure:
-
2019-09-16, Mo./TSc:
Wie
HTTP jedoch mit Übertragungsverschlüsselung.
Heutzutage sollte jede Webseite HTTPS verwenden,
wenn mit den Daten der Anwender gearbeitet wird,
bzw. der Anwender sich z.B. auf der Seite anmelden kann.
- JavaScript:
-
2019-09-16, Mo./TSc:
Auch in der Kurzform
JS ist eine von Netscape entwickelte
Scriptsprache u.a. zur Manipulation von HTML-Strukturen im Webbrowsern.
Auch wenn der Name es vermuten lässt hat JavaScript nichts
mit der Programmiersprache Java zu tun.
Genau genommen hieß die Sprache anfangs LiveScript ,
wurde aber dann aufgrund der Verbreitung von Java-Applets ,
um die Popularität zu steigern, in JavaScript umbenannt.
Später hat sich aus der Sprache ein Standard durch
ECMA International entwickelt,
deswegen wird, sofern dem Standard folgend, JavaScript auch
ECMAScript genannt.
Die Scriptsprache ist auch der Ursprung vom Web 2.0 -Boom,
da durch die Sprache erst die erweiterte Interaktivität der Webseite
möglich wird.
- MariaDB:
-
2019-09-16, Mo./TSc:
Die
MariaDB ist ein freies, kostenloses,
relationales Datenbankmanagementsystem das durch die Abspaltung von
MySQL entstanden ist.
Das System ist weitestgehends mit dem SQL von MySQL
kompatibel.
- MVC = Model View Controller:
-
2019-09-16, Mo./TSc:
Zu dt.
Modell Ansicht Steuerung ist ein Strukturierungsmuster
zur Unterteilung eines Programmes in die drei Komponenten
Datenmodell , Ansicht und Programmsteuerung .
Idee dabei ist, die Daten von der Ansicht und der Steuerung zu trennen,
damit man unabhängig an einer Komponente arbeiten kann.
Dadurch wird eine wesentlich bessere Flexibilität und
Wiederverwendbarkeit des Programmcodes ermöglicht.
Wie man MVC umsetzt ist nicht festgelegt,
es ist eher ein Prinzip oder ein Konzept nach dem man sich richten kann.
- MySQL:
-
2019-09-16, Mo./TSc:
MySQL ist ein relationales Datenbankmanagementsystem,
welches mittels der Sprache SQL Daten ausliefern,
oder entgegennehmen kann.
Die Daten werden dabei in Tabellenform gespeichert.
Das Datenbanksystem hat besonders in Kombination mit PHP für
Webseiten eine weite Verbreitung gefunden.
-
PHP = PHP Hypertext Preprocessor:
-
2019-09-16, Mo./TSc:
PHP ist eine serverseitig interpretierte Skriptsprache und
bedeutete ursprünglich:
Personal Home Page Tools .
Der Großteil der heutigen Webseiten sind mittels PHP realisiert.
Aktuell ist momentan die Version 7.
-
SEO = Search Engine Optimization:
-
2019-09-16, Mo./TSc:
SEO beschreibt eine Reihe von Maßnahmen zur
Suchmaschinenoptimierung .
Der grundsätzliche Zweck ist die Erhöhung der Reputation einer
Webseite.
Suchmaschinen haben ein Bewertungssystem,
welches festlegt,
in welcher Reihenfolge die Suchergebnisse angezeigt werden.
Wie genau das Bewertungssystem funktioniert ist meistens nicht bekannt.
Man versucht also in diesem System eine bessere Bewertung gegenüber
der Konkurenz zu bekommen.
Suchmaschinenoptimierung ist ein Unterbereich des
Suchmaschinenmarketings.
- Sitemap:
-
2019-09-16, Mo./TSc:
Die
Sitemap (zu dt. Seitenübersicht )
ist eine Liste von vollständigen Links einer Seite,
welche von Suchmaschinen abgefragt werden,
um genau zu wissen welche Inhalte indexiert werden sollen.
Im Prinzip so eine Art Inhaltsverzeichnis für Suchmaschinen.
-
URL = Uniform Resource Locator:
-
2019-09-16, Mo./TSc:
Zu deutsch in etwa
einheitlicher Ressourcenzeiger ist eine
vollständige Referenzierung auf eine Ressource,
z.B. ein Link zu einer Webseite.
|
|
|
|