Frage

Ich arbeite derzeit an einem Prototyp einer ASP.NET MVC 3-Lösung, die als Basis für mehrere Projektumschreibungen (aus Webformularen) verwendet wird.

Eines der Ziele, die ich habe, ist die Implementierung einer Skriptverwaltung in allen Anwendungen, im Gegensatz zu keiner, die wir derzeit haben.

MVC 3 weist meiner Meinung nach einen Fehler auf: Wenn Sie ein bestimmtes Skript benötigen, das in einer Teilansicht oder Vorlagenansicht angegeben ist, verlieren Sie möglicherweise entweder die Kontrolle darüber, wo sich der Skriptblock in gerendertem HTML befindet, oder müssen Geben Sie jede einzelne abhängige Javascript-Datei in der übergeordneten Ansicht an.

Ich habe ernsthaft darüber nachgedacht, http://getcassette.net/ als Framework zur Lösung des beschriebenen Problems zu verwenden. Die letzte Version von MVC4 Beta hat mich jedoch erneut an mir zweifeln lassen: Die Bundles von MVC sehen den Bundles von Cassette sehr ähnlich, und ich bin erneut verwirrt:

  1. Soll ich jetzt eine Kassette implementieren und dann auf MVC4-Bundles migrieren?

  2. Sollte ich selbst einen vereinfachten Skriptmanager implementieren (etw. wie die Scripts-Hilfsklasse in der MVC4-Vorschau) und dann auf MVC4 migrieren

  3. Oder sollte ich die Kassette in das Projekt integrieren und hoffen, dass sie zukunftssicherer ist als die Implementierung von MVC (diese Option gefällt mir derzeit wirklich nicht, nur weil die Kassette so viele Abhängigkeiten enthält).

    Ich habe keine Erfahrung mit der Kassette selbst und finde es sehr schwierig, den Vergleich selbst durchzuführen. Ich würde mich über Antworten oder Hinweise freuen.

    BEARBEITEN: Ich habe gerade herausgefunden, dass es eine andere Option gibt: die Installation des Beta-Nuget-Pakets für die MVC-Bündelung: https:// nuget. org / packages / Microsoft.Web.Optimization

    SCHLUSSFOLGERUNG: Je mehr ich mich mit der Implementierung von MVC4-Bundles befasse, desto größer ist der Unterschied, den ich bemerke: MVC4-Bundles behandeln das oben beschriebene MVC3-Problem nicht - sie bündeln und minimieren nur. Darüber hinaus ist die Kassette nicht nur in der Lage, Skript-Tags an einem bestimmten Ort zu rendern, sondern auch in der richtigen Reihenfolge zu bestellen, was nicht trivial ist. Im Moment bin ich mit keiner der beiden Lösungen zufrieden und werde versuchen, meine eigene minimalistische Implementierung zu entwickeln, in der Hoffnung, dass sich die Situation in Zukunft verbessern wird.

    Wenn Sie jedoch keine Angst haben, 5+ Abhängigkeiten und eine Reihe von Änderungen an web.config in Ihr Projekt aufzunehmen, wählen Sie eine Kassette. Ich hoffe, dass es irgendwann aktualisiert wird, um die MVC-Bündelung im Inneren zu verwenden, um die Duplizierung von Funktionen zu reduzieren, und hoffentlich modularer wird.


    UPDATE: Ab Version 2.0 von Cassette ist es nicht mehr erforderlich, Kaffeeskript und andere Funktionen von Cassette einzuschließen, wenn Sie nur Bundles und js-Abhängigkeitsauflösung benötigen. An diesem Punkt ist Cassette für mich ein klarer Gewinner.

War es hilfreich?

Lösung

Informationen zur ASP.NET MVC-Bündelung finden Sie hier: http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx .

ASP.NET fügt eine Funktion hinzu, die das "Bündeln" oder "Bündeln" erleichtert Kombinieren Sie mehrere CSS- und JavaScript-Dateien zu weniger HTTP-Anforderungen. Dies führt dazu, dass der Browser viel weniger Dateien anfordert und dies wiederum reduziert die Zeit, die zum Abrufen benötigt wird.

In der nächsten Version von ASP.NET wird außerdem eine neue Funktion hinzugefügt, mit der dies möglich ist Es ist einfach, die Downloadgröße des Inhalts zu reduzieren oder zu "minimieren".

Sieht so aus, als wäre es im Wesentlichen dasselbe wie Kassette.Wenn alle anderen Dinge gleich sind, verwenden Sie die für ASP.NET MVC native Lösung.

Andere Tipps

Ich habe bei meinem letzten Projekt Kassette verwendet und es funktioniert ziemlich gut.Wenn Sie NuGet verwenden, ist die Konfiguration wirklich nicht sehr umfangreich. Ich denke daher, dass es nicht allzu schwierig ist, die Kassette ab und zu zu verwenden und später zu wechseln, wenn Sie möchten.

Eine andere zu berücksichtigende Sache ist, dass die Kassette weniger kompiliert.Ich bin mir nicht sicher, ob die MVC4-Bündelung dies tut oder nicht, da ich keine Zeit hatte, mich darüber zu informieren.

Kassette ist immer noch eine interessante Alternative, da sie native Unterstützung für weniger und Coffescript bietet.Es unterstützt auch HTML-Vorlagen, wenn Sie an clientseitigen MVC-Frameworks (Backbone, Knockout usw.) interessiert sind

Genau wie ein Update dazu wurde im Update 2-Paket für Visual Studio 2012 die Unterstützung für WENIGER und CoffeeScript hinzugefügt, sodass es immer mehr so aussieht, als wäre es besser, der nativen Implementierung von die erforderlichen Transformationen hinzuzufügenDie Bündelung / Minifizierung wurde in MVC4 gesichert, als langfristig mit Kassette verbunden zu sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top