Die Entwicklung der MVC-Architektur und des Webs
Mit der Weiterentwicklung des Webs entwickelt sich auch unser Konzept der MVC-Architektur (Model View Controller) weiter. Da Webanwendungen immer komplexer und interaktiver werden, wird der Browserseite der Anwendung immer mehr Logik hinzugefügt. Infolgedessen beginnen Webanwendungen, Desktopanwendungen besser zu simulieren. Diese Art von Anwendungen werden RIAs (Rich Internet Applications) genannt und verbreiten sich schnell im Mainstream. Javascript stößt an seine Grenzen und neue RIA-Technologien wie Flash 4 und Silverlight erobern langsam das Web. Was ist denn hier los?
Wie wurde die MVC-Architektur in der Vergangenheit implementiert?
In der Vergangenheit befanden sich alle drei Komponenten der MVC-Architektur, Modell, Ansicht und Controller, auf dem Webserver (siehe Abbildung unten).
Implementierung der alten MVC-Architektur:
Wenn eine Anfrage an den Webserver gestellt Städtebaumodell 3D Druck wurde, entschied der Controller, zu welcher Seite der Benutzer weitergeleitet werden sollte, welche Daten vom Datenserver abgerufen werden sollten, wie das Modell erstellt werden sollte und wie die Ansicht erstellt werden sollte. Sobald die Ansicht erstellt wurde, wurde HTML generiert und als Antwort an den Client-Computer zurückgesendet. Dies war in der Vergangenheit der fatale Fehler von Webanwendungen. Im Gegensatz zu Desktop-Anwendungen müsste die Anwendung die gesamte Seite neu laden, wenn Benutzer mit der Schnittstelle interagieren müssten, da alle Komponenten der MVC-Architektur auf dem Webserver hängen blieben.
Aus diesem Grund wurde AJAX im Jahr 1995 geboren. Ajax ermöglichte Benutzern eine viel bessere Interaktion mit der Benutzeroberfläche einer Webanwendung als zuvor, da einzelne Anfragen an den Webserver gestellt werden konnten, der dann wiederum mit neuen Daten reagierte, um Teile der Anwendung zu aktualisieren Webseite, ohne die gesamte Seite neu laden zu müssen. AJAX war jedoch immer noch keine perfekte Lösung, da jede Benutzerinteraktion immer noch separate Anfragen an den Webserver stellen musste.
Wie wird die MVC-Architektur heute implementiert?
Als die Webwelt begann, AJAX zu akzeptieren, begann sich eine neue Bewegung namens RIAs zu entfalten. Mit diesem Modell könnte der Benutzer ein umfassendes Anwendungserlebnis haben, ohne bei jeder Aktion Anfragen an den Webserver zu stellen, da sich die Ansichtskomponente der MVC-Architektur im Client befindet (siehe Abbildung unten).
Neue Implementierung der MVC-Architektur:
Das ist eine große Sache, denn es bedeutet, dass wir überdenken, wie die MVC-Architektur für Webanwendungen implementiert wird.
Hier ist ein Beispiel. Nehmen wir an, Sie verwenden eine Webanwendung, die Daten anzeigt. Sie geben einige Eingaben ein, drücken die Eingabetaste und die Webanwendung sendet eine Anfrage an den Webserver. Der Controller ruft dann die entsprechenden Daten vom Datenserver ab, erstellt ein Modell dieser Daten und sendet es über JSON an den Client zurück. Der Client empfängt das JSON und repliziert das Modell als native Objekte. Wenn der Benutzer diese Daten als Kreisdiagramm sehen möchte, kann das native Modell verwendet werden, um ein Kreisdiagramm (eine Ansicht) zu erstellen, ohne eine Anfrage an den Server zu stellen. Wenn der Benutzer die Daten ebenfalls als Balkendiagramm sehen möchte, kann das native Modell zum Generieren eines Balkendiagramms verwendet werden, wiederum ohne eine Anfrage an den Server zu stellen. Dies alles geschieht ohne Neuladen der Seite und es wurde nur eine Anfrage an den Webserver gestellt.