Vorlesung 1
Web- Anwendungen

Eine Webanwendung ist eine Software oder ein Programm, das über einen Webbrowser zugänglich ist und mit Hilfe von Webtechnologien wie HTML, CSS und JavaScript entwickelt wird. Im Gegensatz zu herkömmlichen Desktop-Anwendungen, die auf dem lokalen Computer installiert werden müssen, werden Webanwendungen auf einem Server gehostet und über das Internet bereitgestellt. Dies ermöglicht Benutzern den Zugriff von jedem Gerät mit Internetverbindung und einem Webbrowser.

Kernkomponenten von Webanwendungen

Frontend (Client-Side)

Technologien: Das Frontend einer Webanwendung ist der Teil, den der Benutzer sieht und mit dem er interagiert. Es wird hauptsächlich mit HTML, CSS und JavaScript erstellt.

Frameworks und Bibliotheken: Beliebte JavaScript-Frameworks und -Bibliotheken wie React, Angular und Vue.js werden oft verwendet, um reichhaltige und interaktive Benutzeroberflächen zu erstellen.

Responsive Design: Da Webanwendungen auf verschiedenen Geräten und Bildschirmgrößen funktionieren müssen, ist ein responsives Design, oft erreicht durch CSS und spezielle Frameworks wie Bootstrap, entscheidend.

Backend (Server-Side)

Server: Der Server ist verantwortlich für die Geschäftslogik, Datenverarbeitung und -speicherung. Er verarbeitet Anfragen vom Frontend, führt Operationen aus und sendet die Ergebnisse zurück.

Programmiersprachen: Für die Server-Entwicklung können verschiedene Sprachen wie JavaScript (Node.js), Python (Django, Flask), Ruby (Ruby on Rails), PHP, Java (Spring) und viele andere verwendet werden.

Datenbanken: Die meisten Webanwendungen benötigen eine Datenbank zur Speicherung von Daten. Datenbanken können SQL-basiert (wie MySQL, PostgreSQL) oder NoSQL-basiert (wie MongoDB) sein.

Kommunikation zwischen Client und Server

HTTP-Anfragen: Die Kommunikation zwischen Client (Browser) und Server erfolgt über das HTTP/HTTPS-Protokoll.

APIs: Oftmals wird eine RESTful API oder GraphQL genutzt, um Daten zwischen Frontend und Backend auszutauschen.

WebSockets: Für Echtzeit-Kommunikation können WebSockets verwendet werden, die eine dauerhafte Verbindung zwischen Client und Server ermöglichen.

Beispiele für Webanwendungen

E-Commerce-Plattformen (z.B. Amazon, eBay): Diese ermöglichen Benutzern, Produkte zu durchsuchen, in den Warenkorb zu legen und online zu kaufen.

Soziale Netzwerke (z.B. Facebook, Twitter): Sie bieten Plattformen für soziale Interaktionen, Teilen von Inhalten und Netzwerkbildung.

E-Mail-Dienste (z.B. Gmail, Outlook): Web-basierte E-Mail-Clients ermöglichen das Senden, Empfangen und Verwalten von E-Mails direkt im Browser.

Projektmanagement-Tools (z.B. Trello, Asana): Diese Anwendungen helfen Teams, Projekte zu organisieren, Aufgaben zuzuweisen und den Fortschritt zu verfolgen.

Cloud-Speicher-Dienste (z.B. Google Drive, Dropbox): Sie ermöglichen das Speichern, Teilen und Bearbeiten von Dateien in der Cloud.

Vorteile von Webanwendungen

Plattformunabhängigkeit: Sie sind über jeden modernen Webbrowser zugänglich, unabhängig vom Betriebssystem oder Gerät.

Keine Installation erforderlich: Benutzer müssen keine spezielle Software installieren oder aktualisieren.

Zentralisierte Daten: Da die Daten auf dem Server gespeichert werden, können sie von überall und von jedem Gerät aus sicher abgerufen werden.

Einfachere Wartung und Updates: Updates können schnell und einfach auf dem Server durchgeführt werden, ohne dass Benutzer beteiligt sind.

Herausforderungen bei der Entwicklung von Webanwendungen

Sicherheit: Webanwendungen sind oft Ziel von Sicherheitsbedrohungen, daher ist die Implementierung robuster Sicherheitsmaßnahmen unerlässlich.

Performance: Da Webanwendungen über das Internet laufen, können Netzwerklatenz und -geschwindigkeit die Performance beeinflussen.

Kompatibilität: Es muss sichergestellt werden, dass die Webanwendung in verschiedenen Browsern und auf unterschiedlichen Geräten korrekt funktioniert.


Webanwendungen bieten eine flexible und zugängliche Lösung für eine Vielzahl von Anwendungen und haben die Art und Weise, wie wir Software nutzen, revolutioniert. Von einfachen Webseiten bis hin zu komplexen Unternehmensanwendungen bieten sie die Möglichkeit, Benutzern weltweit Dienste und Informationen effizient bereitzustellen.

Skriptsprachen

Eine Skriptsprache ist eine Art Programmiersprache, die für das Schreiben von Skripten verwendet wird. Skripte sind Programme, die in der Regel für automatisierte Aufgaben verwendet werden und in einer Laufzeitumgebung ausgeführt werden. Im Kontext des Webdesigns und der Webentwicklung spielen Skriptsprachen eine zentrale Rolle.

Was sind Skriptsprachen?

Interpretiert, nicht kompiliert: Im Gegensatz zu kompilierten Sprachen wie C++ oder Java, die in Maschinencode übersetzt werden müssen, bevor sie ausgeführt werden, werden Skriptsprachen direkt vom Interpreter zur Laufzeit verarbeitet. Das bedeutet, dass Skripte in diesen Sprachen in einem interpretierten Umfeld (wie einem Webbrowser) direkt ausgeführt werden können.

Automatisierung und Aufgabenvereinfachung: Skriptsprachen werden häufig für Automatisierungsaufgaben, schnelle Entwicklung kleinerer Programme oder für spezifische Funktionen innerhalb größerer Anwendungen verwendet.

Dynamische Typisierung: Viele Skriptsprachen sind dynamisch typisiert, was bedeutet, dass Variablentypen zur Laufzeit bestimmt werden, was die Sprachen flexibel, aber auch anfälliger für Laufzeitfehler macht.

Skriptsprachen im Webkontext

Im Webkontext sind die bekanntesten Skriptsprachen JavaScript, PHP, Python (für serverseitige Skripte) und JavaScript (für clientseitige Skripte).


JavaScript (Client-seitig): JavaScript ist die vorherrschende Sprache für clientseitige Skripte in Webbrowsern. Es ermöglicht interaktive Funktionen auf Webseiten, wie z.B. das Reagieren auf Benutzereingaben, das Ändern von HTML-Inhalten in Echtzeit und das Erstellen dynamischer Effekte.

PHP, Python, Ruby, Node.js (Server-seitig): Diese Sprachen werden auf dem Server ausgeführt und sind verantwortlich für die Back-End-Logik von Webanwendungen, Datenbankinteraktionen, Authentifizierung und vieles mehr.

HTML und Skriptsprachen

HTML selbst ist keine Skriptsprache, sondern eine Auszeichnungssprache (Markup Language), die zur Strukturierung und Präsentation von Inhalten im Web verwendet wird. HTML definiert, was auf einer Webseite angezeigt wird, während Skriptsprachen definieren, wie sich die Webseitenelemente verhalten.


Integration von Skriptsprachen in HTML: Skriptsprachen wie JavaScript können in ein HTML-Dokument integriert werden, um dynamische und interaktive Webseiten zu erstellen. Dies geschieht meist über das <script>-Tag in HTML.

Zweck von Skriptsprachen

Interaktivität und Dynamik: Skriptsprachen ermöglichen es, Webseiten interaktiv und dynamisch zu gestalten. Zum Beispiel können Benutzerinteraktionen verarbeitet und darauf reagiert werden, ohne die Seite neu laden zu müssen.

Automatisierung von Aufgaben: Skriptsprachen werden häufig für automatisierte Prozesse wie das Ausfüllen von Formularen, Datenüberprüfungen, automatische Updates von Inhalten und mehr verwendet.

Serverseitige Logik: Auf dem Server ermöglichen Skriptsprachen das Verarbeiten von Benutzeranfragen, Interaktion mit Datenbanken und das Generieren dynamischer Inhalte.


Zusammenfassend sind Skriptsprachen essenziell für die Entwicklung moderner, interaktiver und funktionaler Webseiten und Webanwendungen. Sie ergänzen HTML und CSS, indem sie Logik und Interaktivität hinzufügen, die über die reine Präsentation von Inhalten hinausgeht.

JavaScript

JavaScript ist eine leistungsstarke und vielseitige Skriptsprache, die vorrangig in der Webentwicklung verwendet wird. Sie ermöglicht es, interaktive und dynamische Elemente auf Webseiten zu erstellen. Ursprünglich für das clientseitige Skripting in Webbrowsern entwickelt, wird JavaScript heute auch auf dem Server (z.B. mit Node.js) und in vielen anderen Umgebungen eingesetzt.

Was ist JavaScript?

Clientseitiges Skripting: Im Webkontext wird JavaScript hauptsächlich für clientseitige Skripte verwendet, was bedeutet, dass der Code im Browser des Benutzers ausgeführt wird. Dies ermöglicht interaktive Funktionen wie das Ändern von Webseiteinhalten, Reagieren auf Benutzeraktionen, Validieren von Formulareingaben, Animieren von Elementen und vieles mehr.

Serverseitige Anwendungen: Mit der Einführung von Node.js kann JavaScript auch auf dem Server ausgeführt werden, was es ermöglicht, JavaScript für die gesamte Webentwicklungs-Pipeline zu verwenden.

Event-Driven und Asynchron: JavaScript unterstützt ein ereignisgesteuertes Programmiermodell und kann asynchrone Operationen durchführen, was besonders nützlich ist für Funktionen wie das Laden von Daten ohne Neuladen der Seite (AJAX).

Grundlegende Verwendung von JavaScript

JavaScript wird in HTML-Dokumenten über das <script>-Tag eingebunden. Dies kann entweder direkt im HTML-Dokument geschehen oder durch Verlinkung auf externe JS-Dateien.

Inline JavaScript:


<script>
    alert("Hallo Welt!");
</script>
                

Externes JavaScript:


<script src="meinSkript.js"></script>
                    

Grundlegende Konzepte

Variablen: Speichern von Daten.


let nachricht = "Hallo Welt!";
                    

Funktionen: Codeblöcke, die eine bestimmte Aufgabe ausführen.


function gruessen() {
    alert("Hallo Welt!");
}
                    

Ereignishandler: Reagieren auf Benutzeraktionen wie Klicks, Tastatureingaben usw.


document.getElementById("meinButton").onclick = function() {
    alert("Button wurde geklickt!");
};
                    

DOM-Manipulation: Ändern von HTML- und CSS-Elementen.


document.getElementById("meineID").innerHTML = "Neuer Inhalt";
                    

Asynchrone Anfragen (AJAX): Daten von einem Server abrufen, ohne die Seite neu zu laden.


fetch('url')
    .then(response => response.json())
    .then(data => console.log(data));
                    

Beispiele für die Verwendung von JavaScript

Formularvalidierung: Überprüfen der Eingaben in einem Formular, bevor es abgeschickt wird.


function validiereFormular() {
    let x = document.forms["meinFormular"]["fname"].value;
    if (x == "") {
    alert("Name muss ausgefüllt werden");
    return false;
    }
}   
                    

Dynamisches Ändern von Inhalten: Ändern von Inhalten auf einer Webseite basierend auf Benutzerinteraktionen.


function aendereInhalt() {
    document.getElementById("meinText").innerHTML = "Willkommen auf meiner Seite!";
}    
                    

Animationen und Interaktive Elemente: Erstellen von bewegten Elementen oder interaktiven Features.


document.getElementById("meinElement").addEventListener("mouseover", function() {
    this.style.color = "red";
});