it-swarm.com.de

client-MVC vs Server-MVC

Ich möchte von anderen Benutzern Anregungen zu den Vorteilen von serverseitigem MVC erhalten. Mit der Kraft vieler Javascript-Bibliotheken. Welchen guten Zweck hat der serverseitige MVC-Server noch?

Sie können auf einfache Weise clientseitige MVC mit Vorlagen und einer REST -API verwenden, um eine viel reaktionsfreudigere Anwendung mit weniger Aufwand für das Neuladen einer ganzen Seite bei geringfügigen Änderungen zu erstellen.

21
Justin

Server MVC Vorteile:

  1. Reifen.
  2. Weithin angenommen.
  3. Der größte Teil des Codes befindet sich auf dem Server und sollte daher sicherer sein.

Aber definitiv geht die Tendenz dahin, auf Client/Server-Computing zurückzugreifen, statt auf Fat Clients, die in C oder einer anderen Sprache geschrieben sind. Jetzt haben Sie jedoch eine sehr gute Plattform: den Browser.

Ich habe eine einfache Richtlinie darüber, wann ich serverseitige MVC und clientseitige MVC verwende:

  1. Gelegenheitsbenutzer mit wenigen Interaktionen: Server + Ajax.
  2. BVG-Anwendung (Rechnungswesen, ERP, CRM usw.): Mandant.

Übrigens verwende ich Java Server Faces für # 1 und ExtJS, die von JAX-RS-Diensten für # 2 gesichert werden.

Grüße.

5
ssamayoa

So wie ich das sehe, bleibt die serverseitige MVC relevant, wenn Sie das V als Ihre clientseitige MVC betrachten, die in eine Blackbox gehüllt ist. Die Sache ist, dass es um Zusammenarbeit und Skalierbarkeit geht. Die serverseitige MVC treibt die REST APIs (z. B.) weiter mit dem Gedanken an, dass Sie die Anzeigetechnologie technisch in ein separates Framework auslagern, das in Ihrem Browser ausgeführt wird.

Da der Browser zunehmend als Anwendungsentwicklungsplattform angesehen wird, können Sie große Datenmengen von Ihrer "Backend-Plattform" auf den Client (Browser) exportieren und die Daten dann als lokale "Datenbank" in Ihrem Browser behandeln, was eine schnelle Reaktionszeit ermöglicht.

Die Kombination dieser beiden MVC-Frameworks ermöglicht Folgendes:

  1. Geringer Datenverkehr zwischen Server und Client, wodurch die Latenz verringert wird
  2. Steigern Sie die Reaktionsfähigkeit Ihrer Web-Apps, indem Sie den Zugriff auf relevantere Datensätze lokalisieren
  3. Verteilen der Last von einem einzelnen serverseitigen Controller auf Hunderte von Browsern

Die hier verwendete Architektur ist den CDNs - Content Delivery Networks - sehr ähnlich! In Wirklichkeit geht es darum, Daten zu lokalisieren und sie näher an Verarbeitungszentren heranzuführen.

Wenn Sie die architektonischen Anforderungen Ihres Produkts verstehen, können Sie weiterhin exklusiv aufeinander zurückgreifen. Richtiges Werkzeug für den richtigen Job.

11
Kingz

Nun, Sie benötigen noch eine erste Seite, die von einer serverseitigen MVC-Engine bereitgestellt werden könnte.

Abgesehen davon könnte client-MVC + REST funktionieren, aber ich denke, dass Sie in großen Anwendungen immer noch verschiedene Abschnitte haben und diese Abschnitte miteinander verknüpfen müssen. Dies wäre auf der Client-Seite möglich, aber ich denke, es ist einfacher, dies auf der Server-Seite zu tun.

Im Moment kann ich beide glücklich zusammenleben sehen. Sie könnten auf der Client-Seite und über REST noch so viel wie möglich tun, aber wenn auf der Client-Seite etwas nicht möglich ist, profitieren Sie dennoch von den serverseitigen Vorteilen von MVC

6
Kenneth

Der Vergleich von just MVC von einem Endpunkt zum anderen ist nicht sehr konstruktiv. MVC ist die Struktur, in der Sie Ihren Code organisieren. Es handelt sich um eine Familie von Entwurfsmustern, mit deren Hilfe Sie Ihren Code entkoppeln und leichter warten können. Das wollen wir immer.

Alle sind sich einig, dass Sie, egal ob Sie auf dem Server oder dem Client aufbauen, eine gute Architektur mit getrennten Interessen haben müssen. Es gibt dort keinen Wettbewerb.

Die eigentliche und wichtigere Frage lautet: Client-seitiges vs. Server-seitiges Rendering? Wo möchten Sie Ihre HTML-Ansichten auf dem Server oder dem Client generieren? Dies ist eine andere Frage, die sich mehr mit der Seitengeschwindigkeit und der Reaktionsfähigkeit der Benutzeroberfläche beschäftigt. Es wurde auch mehrfach an mehreren Stellen beantwortet. Suche ex: https://stackoverflow.com/search?q=client+rendering+vs+server+rendering

3
givanse

Ich denke, dass MVC ein großartiges Muster für einfache Webanwendungen ist. Es hilft jedoch nicht wirklich, wenn moderne und umfangreiche Webanwendungen wie Facebook oder Google Mail erstellt werden. Schauen Sie sich diesen Beitrag für weitere Gründe an, warum Sie MVC nicht verwenden sollten:

http://dennis-nerush.blogspot.co.il/2016/04/should-we-use-mvc-for-modern-web.html

0
Dennis Nerush