2009-08-01 5 views
2

Ich bin in den Bereich der Web-Entwicklung nach zehn Jahren Desktop-Entwicklung Entwicklung tauchen. Ich lerne so schnell wie ich kann die High-Level-Konzepte, einer von ihnen ist MVC. Ich habe bemerkt, dass Dinge wie JavaScript, CSS und HTML nicht in das M, V oder C fallen. Ich habe es nirgends explizit gelesen, aber ich habe recht, wenn ich verstehe, dass das MVC-Muster nur zum Organisieren verwendet wird Code und Daten auf der Serverseite einer Website? Ich entschuldige mich, wenn das eine seltsame Frage ist, erinnere mich, ich bin ein Noob! :)Für eine Website stimmt es, dass das MVC-Muster nur auf der Serverseite verwendet wird?

Vielen Dank im Voraus für Ihre Hilfe!

Antwort

5

Die gerenderte Seite kann Javascript, Jquery und andere Scripting-Mechanismen enthalten. Diese Dinge sitzen direkt in der Ansicht und machen alle ihre Arbeit clientseitig (im Browser).

Der Rest (Modell und Controller) läuft auf dem Server. Ein Großteil der Ansicht selbst wird von der Serverseite gerendert.

Hier ist ein kleines Beispiel für eine Ansicht, die Daten gruppiert und die Ausgabe an den Browser rendert.

<ul> 
<% foreach (var group in Model.GroupBy(item => item.Category)) { %> 

    <li><%= Html.Encode(group.Key) %> 
    <ul> 

    <% foreach (var item in group) { %> 
     <li><%= Html.Encode(item.Data) %></li> 
    <% } %> 

    </ul> 
    </li> 

<% } %> 
</ul> 

Beachten Sie, dass dort kein Javascript drin ist. Dieser Code wird vollständig vom Server ausgeführt. Die Tags li und ul werden an den Browser übergeben, wodurch eine ungeordnete Liste von Listenelementen erstellt wird.

Die Ausgabe sieht wie folgt aus etwas im Browser:

Key1 
    Data1 
    Data2 
    Data3 
Key2 
    Data4 
    Data5 

..etc.

Beachten Sie, dass der Code ALL auf dem Server sitzt, aber ein Teil davon auf dem Server ausgeführt wird und ein Teil davon (HTML und Javascript) an den Browser übergeben und dort ausgeführt wird.

+0

danke, robert! eine andere Frage, was sind einige Dinge auf dem Server, die in den Blick fallen würden? – BeachRunnerFred

+1

@Beep, Vorlagenbasierte Inhaltsgenerierungsseiten fallen in die Ansichtskategorie. (Zum Beispiel, jsp (java), aspx (net)) – adatapost

2

MVC ist eine Möglichkeit, Quellcode zu organisieren. Wo Quellcode ist, können Sie eine der drei haben. Es gibt keinen inhärenten Client- oder Serveraspekt zu irgendeinem Teil des MVC-Musters.

Zum Beispiel habe ich kürzlich ein Gadget-Portal in reinem Javascript (wie igoogle) implementiert. Ich hatte eine Modellklasse zum Laden und Speichern von Gadget-Konfigurationen aus einem JSON-Daten-Blob und zum Verwalten der Einstellungen dieser Gadgets. Dann hatte ich eine Ansicht, in der die aktuell geladenen Gadgets basierend auf den vom Modell geschickten Ereignissen automatisch in das Modell gerendert wurden. Schließlich hatte ich einen Controller, der im Rest der Anwendung Menüklicks weitergab, um das Modell zu aktualisieren. Das ist MVC, aber rein in Javascript und rein clientseitig.

0

CSS, HTML und Javascript behandeln die Ansicht, wenn eine serverseitige Sprache verwendet wird, die die MVC-Idee implementiert. Javascript ist etwas verworrener, da es jedoch mehr mit dem Controller interagiert.

0

Es ist nicht nur den Code und die Daten zu organisieren. In Bezug auf die Ansicht: Sie können tun, was Sie tun, mit einer allgemeinen Webseite: jQuery, JavaScript, Ajax, Knockout, etc. Und Sie können Ihre Ajax sprechen mit Ihrem Server-Seite (was ein Controller ist). MVC arbeitet schneller als eine allgemeine aspx Web App. Es ist besser für das Verständnis des Projekts/Codes, und es dauert weniger Zeit, den Code den neuen Leuten in Ihrem Team vorzustellen. Es ist besser zu warten und mit einem angemessenen architektonischen Design müssen Sie Ihren Prj nicht von Grund auf neu entwickeln.

Verwandte Themen