MVVM für die Webentwicklung

7

Ich habe auf MVVM gelesen und es bis jetzt sehr interessant gefunden. Die meisten Beispiele, die ich gefunden habe, sind jedoch für Windows-Apps im Gegensatz zu Web-Apps. Ich habe auch eine Menge von MVVM erwähnt, die mit Silverlight verwendet werden, und ich weiß, dass Silverlight für Web- oder Windows-Apps verwendet werden kann.

Meine Frage ist also - ist MVVM ein gültiges Muster für webbasierte Apps? Wenn dies der Fall ist, muss die Benutzeroberfläche Silverlight sein? Ich bin dabei, zu entscheiden, welche Technologien für eine neue mittelgroße Website verwendet werden sollen, die wir entwerfen müssen, und Silverlight kann für die Mächtigen ein harter Verkauf sein, obwohl es nicht wichtig ist, was wir hinter den Kulissen verwenden so sehr.

Alle Informationen, die jeder über MVVM in einer Webumgebung bereitstellen kann, wären willkommen. Beispiel Code wäre auch gut.

    
BDW 06.08.2010, 13:35
quelle

10 Antworten

12

DotVVM ist ein Open-Source-ASP.NET-basiertes MVVM-Framework basierend auf Knockout JS. Es ist einfach zu bedienen und Sie müssen nicht Tonnen von Javascript-Code schreiben. Für die meisten Szenarien benötigen Sie nur C # und HTML mit CSS.

Die Ansicht sieht folgendermaßen aus: Es handelt sich um einen HTML-Code, der um Serversteuerelemente und Datenbindungen erweitert wurde:

%Vor%

Das Viewmodel ist eine C # -Klasse, die wie folgt aussieht:

%Vor%

Es gibt auch eine Visual Studio-Erweiterung , die IntelliSense- und Projektvorlagen hinzufügt.

Das Framework behandelt Validierung, Lokalisierung, SPAs und andere häufig verwendete Funktionen. Es unterstützt sowohl .NET Framework als auch .NET Core.

    
Tomáš Herceg 11.10.2015 13:35
quelle
6

Natürlich ist MVVM ein gültiges "Web" -Muster, aber zur Zeit ist es sehr eingeschränkt einsetzbar.

Der Hauptunterschied zwischen MVC und MVVM liegt in der Aktualisierung Ihrer Anwendungsdaten. Für aktuelle Web-Anwendungen wird MVC bevorzugt, da Web meist eine einseitige Kommunikation ist und alle Benutzereingaben mit Formularen gekapselt sind.

MVVM wird nützlich beim Erstellen wirklich interaktiver Anwendungen mit Rich-UI.

Also, um es einfach zu machen. Wenn Sie eine Weblösung mit ASP.NET (oder einer anderen serverseitigen Technologie) erstellen, verwenden Sie MVC. Wenn Sie eine Rich-UI-Anwendung erstellen, verwenden Sie MVVM, und wenn Sie Silverlight nicht mögen, versuchen Sie KnockoutJS for Javascript solution.

    
Bizniztime 03.01.2012 09:13
quelle
5

MVVM kann im Web und in XAML-basierter Technologie gut funktionieren. XAML-Technologie hat einen Vorteil in seinen tollen Bindungsfunktionen, die eingebrannt sind. Aber mit JavaScript-Bibliotheken wie Knockout (was exzellent ist) und JsViews / JsRender (dem man nachgehen sollte, sobald JsViews beta wird).

Um Sie speziell zu beantworten: Ja, Sie können MVVM mit Web-Apps ausführen. Ist es gut? Ja, wenn Sie eine Bibliothek wie Knockout (http://knockoutjs.com) verwenden. Die Schlüssel zu MVVM sind, dass es ein einfaches Trennungsmuster ist:

  1. trennt die Ansicht (die Seite)
  2. trennt das Modell (die Rohdaten)
  3. trennt das Viewmodel (Präsentationslogik)

Nirgendwo gibt es die von MVVM vorgeschriebene Technologie. Die Ansicht ist dein HTML, deine Struktur. Das Modell ist Ihre Daten (vielleicht JSON). Das Viewmodel ist Ihr JavaScript-Objekt, das die Logik für Ihre spezifische Ansicht trennt.

Knockout bietet die Möglichkeit, Daten über ein Konzept, das Observables genannt werden, zu binden. Stellen Sie sich im Prinzip das INotifyPropertyChanged-Interface vor, aber für JavaScript. Knockout unterstützt auch observableArray (ähnlich wie ObservableCollection in XAML). Knockout verfügt über eine Reihe weiterer Funktionen, mit denen Sie Datenänderungsereignisse abonnieren, Verhalten erstellen, benutzerdefinierte Bindungen erstellen und vieles mehr können. Wie auch immer ... mit Knockout bekommst du ziemlich viel.

Wenn Sie sich für MVVM ohne eine Bibliothek wie Knockout entscheiden, können Sie es trotzdem tun, aber Sie verlieren die Datenbindungsfunktionen und würden wahrscheinlich selbst etwas schreiben wollen. Aber ich empfehle dringend, mit einer Bibliothek zu bleiben, die das für Sie tut.

Lange Antwort ... aber ich wollte dir genug geben, um zu erkunden.

    
John Papa 04.01.2012 02:23
quelle
4

Für Web-Web (html) ist es nicht wirklich brauchbar, da der Punkt mvvm eine Schnittstelle hat, die Änderungen im View-Modell sofort wiedergibt. (über Datenbindung / Ereignisse).

Für Web ist eine Änderung im Viewmodel normalerweise eine post + komplette Neuerstellung des Bildschirms.
Wieso sich die Mühe machen..

Allerdings, wenn Sie eine AJAX-Website mit einer festen HTML-Seite haben, bei der der Inhalt ständig mit Javascript aktualisiert wird. Dann wird es interessant.

    
Julian de Wit 07.08.2010 05:47
quelle
3

MVVM ist im Wesentlichen das MVC-Muster mit spezifischen Änderungen zur Unterstützung der Entwicklung von Anwendungen mit Windows Presentation Foundation.

  

Modell - View - ViewModel
  Modell - Ansicht - Controller

Das ViewModel ist also der Controller in MVVM. Das Muster ist sehr gut; Es macht es sehr einfach, Anwendungen zu erstellen, die einfach und dennoch leistungsstark sind und die einfach zu testen und zu warten sind.

Wenn Sie MVVM in einer Webanwendung verwenden möchten, die nicht Silverlight ist, schauen Sie in ASP.NET MVC nach. MVVM ist auch eine Option, wenn Sie Silverlight verwenden. Sie können die beiden sogar kombinieren, indem Sie Ihre Silverlight-App auf einer MVC-Website hosten.

    
Will 06.08.2010 13:43
quelle
2

MVVM ist absolut akzeptabel für die Web-Entwicklung. In der Tat wird es für die Entwicklung von Silverlight empfohlen. Unsere Firma nutzt MVVM + Silverlight für viele unserer Projekte mit großem Erfolg. Die anfängliche Lernkurve kann hart sein, aber sobald sie klickt, bietet sie eine Menge Vorteile.

Meiner Meinung nach, um MVVM wirklich funktionieren zu lassen, brauchen Sie einen Rahmen, der die richtige verbindliche Unterstützung bietet. Andernfalls müssen Sie eine Menge "Klebstoff" -Code schreiben, um Ihrem Ansichts- und Ansichtsmodell beizutreten. Silverlight bietet eine hervorragende Bindungsunterstützung und wenn Sie es richtig gemacht haben, können Sie den Großteil des Code-Behind in Ihrer Ansicht eliminieren, sodass Ihre gesamte Geschäftslogik in Ihrem ViewModel erhalten bleibt.

Tim Heuer hat einige hervorragende Tutorials und Videos zu MVVM mit Silverlight. Ich empfehle sehr, seine Sachen durchzugehen. Ссылка

    
Jordan Parmer 06.08.2010 13:38
quelle
1

Für Web-Entwicklung würde ich lieber für MVC gehen. Wenn es sich nur um Silveright handelt, kann MVVM als

betrachtet werden     
ajay_whiz 06.08.2010 13:43
quelle
1

Ich habe eine MVVM-Implementierung für das Web mit verschiedenen Technologien, Knockout, jQuery, Websockets und .NET. Schauen Sie sich den Artikel hier an: Ссылка

    
splusq 06.03.2013 19:09
quelle
0

MVVM ist bei WPF und auch bei Silverlight völlig akzeptabel. Wenn Sie MVVM für die Webentwicklung verwenden möchten, müssen Sie viel JScript-Code schreiben. Es gibt Beispiel auf MSDN wie das getan wird:

Überprüfen Sie den folgenden Link: Ссылка

    
Asaf Pala 18.10.2011 22:05
quelle
0

Wie bereits erwähnt, ist Knockout.js eine fantastische Bibliothek, die viele der Funktionen bietet, die für MVVM auf der Netz. Ich habe ein zusammengesetztes Framework erstellt, das ein wesentlich vollständigeres MVVM-Framework ist. Es hat Ähnlichkeiten mit dem Prism von Microsoft und wird in einem ziemlich großen und komplexen Produkt eingesetzt, das auf Web- und mobile Plattformen abzielt.

Schau es dir an: Ссылка

    
Dale Anderson 16.01.2013 03:27
quelle

Tags und Links