Frage

Was ist der Unterschied zwischen OpenWrap und NuGet. Und was bevorzugen Sie?

War es hilfreich?

Lösung

OpenWrap ist ein Open-Source-Projekt in Anwendungen für Abhängigkeitsmanagement, nicht nur bei der Erstellung, sondern auch zur Laufzeit.

Als solche unsere Funktionen bei dynamischen Auflösung von Abhängigkeiten abgezielt werden, sei es für Composite WPF-Anwendungen, Web-App-Entwicklung oder systemweite Dienstprogramme. Das macht unsere Implementierung sehr verschieden von dem, was NuGet der Fall ist.

Also hier sind die Dinge, die anders sind (ich wahrscheinlich viel vergessen werden, aber ah gut).

  • Keine Abhängigkeit von Visual Studio, und der Fokus auf die Produktivität in der Befehlszeile und nicht in einem UI
  • Keine Abhängigkeit von Powershell, kommt OW mit seinem eigenen Befehlssystem, das Sie, deploy und führen Sie Ihre eigenen Befehle, sei es aus unserer Schale (die o.exe-Tool) oder von MSBuild lässt entwickeln sich.
  • OpenWrap verwendet OpenWrap zu bauen und einzusetzen selbst und ist xcopy freundlich bei jedem Schritt des Weges.
  • Hat ein systemweites Repository von Paketen, so dass Sie Ihre Dienstprogramm Befehle einmal anstatt einmal pro Lösung bereitstellen können
  • Unterstützt dynamische Auflösung von Abhängigkeiten zur Laufzeit, sollten Sie, dass
  • tun wollen
  • Hat ein erweiterbares Paket-Format, so dass Sie neue Arten von Abhängigkeiten in einem Paket erstellen und haben OpenWrap Hilfe Sie sie in Ihrer Anwendung verwenden
  • Unterstützt sowohl OpenWrap Pakete und NuGet Pakete und Repositories
  • Aufenthalte gut weg von den Komplikationen von XML und OData und steht für einfache textbasierte DSLs, die einfach und schnell sind
  • lernen
  • Unterstützung integriert zu bauen, so dass Sie bauen können und verpacken Sie Ihre Lösung in einem Rutsch
  • Unterstützt benutzerdefinierte Repositories auf einer Netzwerkfreigabe, die Sie von der openwrap Shell veröffentlichen können oder die msbuild Aufgaben
  • Stellt Abhängigkeit Nivellierung automatisch die Wahl, welche Kombination von Versionen von Paketen aufgelöst
  • ReSharper Integration bedeutet, dass jede Änderung, die Sie auf Ihre Abhängigkeiten zu tun in VS reflektiert wird in Echtzeit
  • Teamcity Integrationsmittel Sie bauen können, verpacken und verteilen Ihr Paket mit genau den gleichen Prozess, von einem MSBuild-Skript oder aus der Befehlszeile
  • Extensible Builder Mittel können Sie ändern, wie der Build innerhalb OpenWrap ausgelöst wird,
  • Unterstützung für Testläufer und Versand Tests neben Pakete
  • unterstützt Uses MSBuild Erweiterungspunkte auf Montage Referenzen umfassen, und Blätter der Code, den Sie gebaut allein. Sobald Sie Binärdateien versenden, Sie haben keine openwrap Code Abhängigkeit , nur zur Build-Zeit.

Das ist nur für die Unterschiede, wie das ist, was Sie gefragt, also werde ich nicht, dass Sie mit Mühe, was wir das gleiche wie andere Paketmanager tun.

Andere Tipps

Ich wollte nur Glockenspiel in mit einigen Gedanken von der NuGet Seite der Dinge. Seb Blätter aus ein paar Details, die es wert sind Hinweis.

  • Während unsere primäre UI VS basiert, wobei der Kern NuGet Baugruppe hat keine Verbindungen zu VS. Das ASP.NET Web Pages Produkt hat einen web-basierte Paket-Manager. Ich schrieb einen Blog-Post, die ein Beispiel NuGet der Verwendung einer Website zu bauen, die sich zur Laufzeit aktualisiert. http://haacked.com /archive/2011/01/15/building-a-self-updating-site-using-nuget.aspx
  • NuGet bietet eine leistungsfähige Powershell-Konsole. NuGet Pakete können neue Befehle an die Konsole. Siehe http : //blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/ . Wie zuvor ist dies ein Client NuGet und NuGet Kern nicht erfordert.
  • NuGet für die Installation über die VS-Erweiterung verfügbar Galerie und ist sehr einfach, mit sofort zu beginnen.
  • NuGet Stützen zeigt den Client in einem Verzeichnis (oder Netzwerkfreigabe) einen Satz von Paketen enthalten und automatisch behandelt es als Repository. Also, wenn Sie mit OData nicht beschäftigen möchten, müssen Sie nicht auf. Aber wir sind auch eine Umsetzung unserer Galerie, so gibt es keine Notwendigkeit, manuell mit OData / XML in jedem Fall befassen.
  • NuGet es nicht erforderlich, einen Teil NuGet als Teil Ihrer Anwendung bereitstellen. Es bleibt die Hände ab und konzentriert sich auf die Schritte zu automatisieren Sie ohne NuGet zu erwerben nehmen und Ihre Abhängigkeiten bereitstellen. Um es klar, wie Seb weist darauf hin, ebenso wenig wie OpenWrap. Ich wollte nur klarstellen, dass NuGet dies nicht erfordert auch.

Einer der wichtigsten Grundsätze der NuGet (und ein wichtiger Unterschied mit OpenWrap) ist, dass es den Weg nicht versuchen, Sie zu ändern, arbeiten. Stattdessen macht es viel einfacher, die Dinge zu tun, dass Sie bereits heute tun.

Sagen Sie zum Beispiel, dass Sie versuchen, eine Foo-Bibliothek zu verwenden, die auf einer Bar-Bibliothek abhängt. Heute müssten Sie manuell diese Bibliotheken finden, kopieren Sie sie auf Ihren Computer und fügen Sie Verweise auf sie. Dann später neuere Versionen herauskommen wird, und Sie werden durch ähnliche Bewegungen gehen, um sie aktualisiert.

In einem solchen Szenario sowohl NuGet und OW wird es leicht machen, in diesen Referenzen zu bringen, aber der wesentliche Unterschied besteht darin, dass NuGet tut es in einer Weise, die vollständig nicht-invasiv ist. das heißt es wird die Binärdateien auf Ihrem Rechner und Verweise sie auf die gleiche Art und Weise erhalten, als ob Sie es manuell getan hatte. Nachdem es getan hat, dass die Projektdatei völlig ‚normal‘ ist, ohne Bindung an NuGet bei der Erstellung oder die Laufzeit.

Das bedeutet, dass, wenn Sie einige Bibliotheken über NuGet erhalten und Ihr Projekt in Quellcodeverwaltung gestellt, ein anderer Entwickler dann in der Lage ist, das Projekt zu verwenden, ohne NuGet überhaupt erforderlich ist.

Der OpenWrap Ansatz hat Verdienste als gut, aber diesen Weg zu gehen, müssen Sie bereit sein, den ganzen Weg zu sein mit OpenWrap und nicht leicht in der Lage sein, von ihm weg zu bewegen.

Es gibt viele andere Unterschiede (wie reich VS Unterstützung in NuGet), aber das ist das, was ich als die grundlegendste Unterschied sehen zwischen den beiden.

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