Question

Quelle est la différence entre OpenWrap et NuGet. Et ce que vous préférez?

Était-ce utile?

La solution

OpenWrap est un projet open-source fournissant la gestion de la dépendance dans les applications, non seulement au moment de la construction, mais aussi lors de l'exécution.

En tant que tel, nos caractéristiques sont à Ciblée résolution dynamique des dépendances, que ce soit pour les applications composites WPF, le développement d'applications Web ou des utilitaires système à l'échelle. Cela rend notre implémentation très différent de ce que fait NuGet.

Voici donc les choses qui sont différentes (je vais probablement oublier beaucoup, mais ah bien).

  • Pas de dépendance visual studio, et de se concentrer sur la productivité à la ligne de commande plutôt que dans une interface utilisateur
  • Pas de dépendance à l'égard Powershell, OW est livré avec son propre système de commande qui vous permet de développer, déployer et exécuter vos propres commandes, que ce soit de notre coquille (l'outil o.exe) ou de MSBuild lui-même.
  • OpenWrap utilise OpenWrap pour construire et se déployer, et est xcopy amicale à chaque étape du chemin.
  • Est-ce un dépôt de l'ensemble du système de paquets, de sorte que vous pouvez déployer vos commandes utilitaires une fois plutôt qu'une fois par solution
  • Prise en charge la résolution de dépendance dynamique à l'exécution, si vous voulez faire
  • a un format de package extensible, de sorte que vous pouvez créer de nouveaux types de dépendances dans un paquet et ont OpenWrap vous aider à les utiliser dans votre application
  • Prend en charge les forfaits et forfaits OpenWrap NuGet et dépôts
  • reste bien loin des complications de XML et OData, et va pour DSLs simples à base de texte qui sont faciles et rapides à apprendre
  • Prise en charge intégrée de construction, de sorte que vous pouvez construire et emballer votre solution en une seule fois
  • Prise en charge des référentiels personnalisés sur un partage réseau que vous pouvez publier à partir du shell openwrap ou les tâches MSBuild
  • Fournit le nivellement de la dépendance, le choix automatiquement la combinaison de versions de paquets sont résolus
  • des moyens d'intégration ReSharper que tout changement que vous faites à vos dépendances se reflète dans VS en temps réel
  • des moyens d'intégration de TeamCity vous pouvez construire, package et déployer votre package en utilisant exactement le même processus, à partir d'un script MSBuild ou de la ligne de commande
  • Les Bâtisseurs extensibles de moyens, vous pouvez changer la façon dont la construction est déclenché dans OpenWrap
  • Support pour les coureurs de test et des tests d'expédition aux côtés des paquets
  • Utilise pris en charge les points de MSBuild pour inclure extensibilité assemblage des références et des feuilles le code que vous avez construit seul. Une fois que vous expédiez les fichiers binaires, vous ne dépendent pas de code openwrap , seulement à la compilation.

C'est juste pour les différences, comme c'est ce que vous a demandé, donc je ne vais pas vous ennuyer avec ce que nous faisons la même chose que les autres gestionnaires de paquets.

Autres conseils

Je voulais juste carillon avec quelques réflexions du côté NuGet des choses. Seb feuilles sur quelques détails qui méritent d'être signalées.

  • Bien que notre interface utilisateur primaire est VS basée, l'assemblage ne NuGet noyau pas de liens avec VS. Le produit Pages Web ASP.NET a un gestionnaire de paquets basé sur le Web. J'ai écrit un billet de blog montrant un exemple d'utilisation NuGet pour construire un site Web qui se met à jour lors de l'exécution. http://haacked.com /archive/2011/01/15/building-a-self-updating-site-using-nuget.aspx
  • NuGet fournit une console PowerShell puissante. paquets NuGet peuvent ajouter de nouvelles commandes à la console. Voir http : //blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/ . Comme précédemment, il est un client à NuGet et le noyau NuGet ne nécessite pas.
  • NuGet est disponible pour l'installation via la Galerie VS Extension et il est très facile de commencer immédiatement.
  • NuGet supports pointant le client dans un répertoire (ou partage réseau) contenant un ensemble de paquets et automatiquement le traite comme un dépôt. Donc, si vous ne voulez pas traiter OData, vous n'avez pas. Mais nous incluons aussi une mise en œuvre de notre galerie donc il n'y a pas besoin de traiter manuellement avec OData / XML dans tous les cas.
  • NuGet ne vous oblige pas à déployer une partie de NuGet dans le cadre de votre demande. Il reste les mains hors et se concentre sur l'automatisation des étapes que vous prendriez sans NuGet pour acquérir et utiliser vos dépendances. Pour être clair, comme le souligne Seb sur, ni ne OpenWrap. Je voulais juste qu'il soit clair que NuGet ne nécessite pas aussi bien.

L'un des principes clés de NuGet (et une différence importante avec OpenWrap) est qu'il ne cherche pas à changer la façon dont vous travaillez. Au lieu de cela, il est beaucoup plus facile de faire les choses que vous faites déjà aujourd'hui.

Dites par exemple que vous essayez d'utiliser une bibliothèque de Foo, qui dépend d'une bibliothèque Bar. Aujourd'hui, vous devriez trouver manuellement ces bibliothèques, les copier sur votre machine et ajouter des références à leur disposition. Ensuite, les versions ultérieures nouvelles sortiront et vous passer par des mouvements semblables pour obtenir leur mise à jour.

Dans un tel scénario, les deux NuGet et OW fera facile d'apporter ces références, mais la principale différence est que NuGet il le fait d'une manière qui est totalement non invasive. à-dire qu'il va obtenir les binaires sur votre machine et les références les de la même manière que si vous aviez fait manuellement. Après avoir fait cela, votre fichier de projet est tout à fait « normal », sans aucun lien avec NuGet à la construction ou l'exécution.

Ce que cela signifie est que si vous obtenez des bibliothèques via NuGet et mettez votre projet dans le contrôle de la source, un autre développeur est alors en mesure d'utiliser votre projet sans avoir besoin NuGet du tout.

L'approche OpenWrap a des mérites aussi bien, mais pour aller dans cette voie, vous devez être prêt à l'utilisation OpenWrap tout le chemin, et pas facilement être en mesure de se déplacer loin de.

Il y a beaucoup d'autres différences (comme le soutien riche en VS NuGet), mais ce que je considère comme la plus grande différence fondamentale entre les deux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top