Dateien in .net werden verkleinert und kombiniert
Ich freue mich auf die Umsetzung einige performance-Optimierung um meine javascript/css. Insbesondere wollen die Verkleinerung und Kombination einer solchen. Ich bin in der Entwicklung in .net/c# web-Applikationen.
Habe ich ein paar Optionen und auf der Suche nach feedback auf jede:
Erste ist dieses clevere tool stieß ich auf Chirpy, die über visual studio kombiniert, minimiert etc -> http://chirpy.codeplex.com/ Dies ist ein visual studio add-in aber da bin ich in einer team-Umgebung, dieses tool ist nicht ideal.
Meine nächste option ist die Verwendung einer Msbuild-Aufgabe (http://yuicompressor.codeplex.com/) zu minifizieren der Dateien und kombinieren Sie (vielleicht lese aus einer xml-Datei, was muss kombiniert werden). Das funktioniert zwar für minifying gut, die Sorge, die ich habe, ist, dass ich werde zu halten, was kombiniert werden muss, könnte ein Kopfschmerz.
3. option ist die Verwendung von msbuild-task nur für die minifying und zur Laufzeit mit einigen Hilfsklassen, kombinieren Sie die Dateien auf einer basis pro Seite. Dies würde kombinieren der Dateien, geben Sie einen Namen und fügen Sie eine version.
Alle anderen Optionen, die ich prüfen könnte? Mein Anliegen mit der letzten option ist, dass es performance-Probleme wie ich hätte, die Datei zu öffnen von der lokalen Festplatte, den Inhalt gelesen und dann kombinieren Sie die Dateien. Dies ist eine Menge der Verarbeitung zur Laufzeit. Ich war auf der Suche, so etwas wie Squishit - https://github.com/jetheredge/SquishIt/downloads Dies minimiert die Dateien zur Laufzeit, aber ich würde schauen, tun dies zur compile-Zeit.
Also keine Rückmeldung auf meine Ansätze wäre toll? Wenn die 3. option würde nicht dazu führen, dass performance-Probleme, bin ich Weg.
InformationsquelleAutor der Frage amateur | 2010-12-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben wir etwas ähnliches gemacht mit mehreren ASP.NET web-Anwendungen. Insbesondere verwenden wir die Yahoo Yui compressordie hat eine .NET-library-version, die Sie verweisen können, in Ihren Anwendungen.
Unser Ansatz war, um die notwendigen zusammengeführt/minified Dateien zur Laufzeit. Wir wickelte alle diese Logik in eine ASP.NET Kontrolle, aber das ist nicht notwendig, abhängig von Ihrem Projekt.
Als einige Sahnehäubchen auf dem Kuchen:
Wir haben festgestellt, dass dieser Prozess funktioniert außergewöhnlich gut. Wir Bauten es in eine Bibliothek, so dass alle unsere ASP.NET Websites nutzen können. Die post-build-scripts kann kompliziert werden, wenn jede Seite hat unterschiedliche Abhängigkeiten, aber die Laufzeit bestimmen kann, dies ganz einfach. Und, wenn jemand braucht, um eine schnelle Lösung, um eine CSS-Datei, können Sie dies tun, löschen Sie die zusammengeführten Versionen von Dateien, und der Prozess wird automatisch starten, ohne zu müssen, die post-build-Verarbeitung mit MSBuild oder NAnt.
InformationsquelleAutor der Antwort Matt
RequestReduce bietet eine wirklich schöne Lösung für die Bündelung und minifying von javascript und css zur Laufzeit. Es wird auch versucht, sprite Ihre hintergrund-Bilder. Es speichert die verarbeiteten Dateien und serviert Sie mit benutzerdefinierten ETags und Fernen Zukunft-Header. RequestReduce verwendet eine response-filter zum transformieren der Inhalte, so dass kein code oder Konfiguration ist erforderlich, um die grundlegenden Funktionen nutzen. Es kann konfiguriert werden, um in einer Webfarm-Umgebung und Synchronisation von Inhalten zwischen mehreren Servern und kann konfiguriert werden, um ein CDN. Es kann heruntergeladen werden unter http://www.RequestReduce.com oder aus Visual Studio via Nuget. Die Quelle ist verfügbar unter https://github.com/mwrock/RequestReduce.
InformationsquelleAutor der Antwort Matt Wrock
haben Sie schon von Combres ?
gehen Sie zu : http://combres.codeplex.com und check it out
es minimiert Ihre CSS-und JS-Dateien zur Laufzeit, das heißt, Sie können ändern, die Datei und laden Sie Sie, und jeder Anfrage der client funktioniert es minimiert.
alles was du tun musst ist, fügen Sie die Dateien u wanna zu komprimieren, um eine Liste in der combres-XML-Datei und rufen Sie die Liste von Ihrer Seite /masterpage.
wenn Sie mit VS2010 können Sie ganz einfach installieren Sie es auf Ihrem Projekt mit NuGet
hier ist der Combres NuGet-link: http://combres.codeplex.com/wikipage?title=5-Minute%20Quick%20Start
InformationsquelleAutor der Antwort danfromisrael
Habe ich eine wirklich schöne Lösung, um diesem ein paar Jahre zurück, aber ich habe nicht die Quelle Links. Die Lösung wurde für webforms, aber es sollte funktionieren, um die Portierung auf MVC. Ich werde es einmal versuchen zu erklären, was ich Tat, in einigen einfachen Schritt. Zunächst müssen wir registrieren die Skripts, und wir schrieb einen speziellen controller, der genau das Tat. Wenn der controller wurde gerendert, dauerte es drei Dinge:
Der nächste Schritt ist die Implementierung einer speziellen HttpHandler verarbeitet Anforderung für Dateien in dem speziellen Ordner. Wenn eine Anfrage gemacht wird, dass spezielle Ordner, die Sie machen eine Suche im zwischengespeicherte Lexikon-und gibt den string zurück, bascially.
Ein wirklich nettes feature ist, dass die zurückgegebenen Skript ist immer gültig, sodass der Benutzer nie Fragen Sie nach einem update des Skripts. Der Grund dafür ist, dass, wenn Sie eine änderung an den script-Dateien der hash-Wert ändert und der client fragt nach einem neuen script.
Können Sie diese verwenden für die css-Dateien auch ohne Probleme. Ich remebered macht es konfigurierbar, so könnte man ausschalten, Dateien kombinieren, minimieren Dateien, oder einfach nur ausschließen eine Datei aus dem Prozess, wenn Sie das tun wollten einige debugging.
Könnte ich verpasst haben, einige details, aber es war nicht so schwer zu implementieren und es stellte sich heraus sehr gut.
Update: ich habe implementiert eine Lösung für MVC und veröffentlicht es auf nuget und die Quelle bis auf github.
InformationsquelleAutor der Antwort Tomas Jansson
Microsoft Ajax minifier ist erstaunlich gut, wie eine Verkleinerung tool. Ich schrieb einen blog-post über die Kombination von Dateien, die mit Ihr minifier in einem javascript-und stylesheet-handler:
http://www.markistaylor.com/javascript-concatenating-and-minifying/
InformationsquelleAutor der Antwort Markis
Lohnt es sich, die Kombination der Dateien zur Laufzeit zu vermeiden, synchronisieren Sie neue Versionen. Allerdings, wenn Sie programmgesteuert kombiniert, cache Sie auf der Festplatte. Dann der code, der ausgeführt wird jedes mal, wenn die Dateien abgerufen werden, brauchen nur zu überprüfen, dass die Dateien nicht geändert, vor dem servieren die zwischengespeicherte version.
Wenn Sie sich geändert haben, dann ist die Kompression code kann ausgeführt werden als ein-aus.
Zwar gibt es einen leichten performance-Kosten, Sie erhalten auch einen performance-Vorteil von weniger Anträge.
Dies ist der Ansatz, dass die Verkleinern tool verwendet zum komprimieren von JS/CSS, die funktionierte wirklich gut für mich. Es ist Linux/PHP nur, aber Sie könnten sich ein paar mehr Ideen gibt es auch.
InformationsquelleAutor der Antwort g t
Brauchte ich eine Lösung für das kombinieren/minifying CSS/JS auf .NET 2.0 web-app und SquishIt und anderen tools, die ich fand, waren nicht .NET 2.0-kompatibel ist, habe ich meine eigene Lösung verwendet, die eine syntax ähnlich SquishIt, ist aber kompatibel mit .NET 2.0. Da ich dachte, dass andere Leute Sie nützlich finden könnten, ich habe es auf Github. Sie können es hier finden: https://github.com/AlliterativeAlice/simpleyui
InformationsquelleAutor der Antwort AlliterativeAlice