Quelle est la différence entre OpenWrap et NuGet. Et ce que vous préférez ?
Réponses
Trop de publicités?OpenWrap est un projet open-source en fournissant pour la gestion de la dépendance dans les applications, et pas seulement au moment de la construction, mais aussi au moment de l'exécution.
En tant que tel, nos caractéristiques sont visées à la résolution dynamique des dépendances, que ce soit pour composite applications WPF, développement d'applications web ou à l'échelle du système des services publics. Ce qui rend la mise en œuvre très différentes de ce que NuGet.
Donc, voici les choses qui sont différentes (je vais sans doute oublier beaucoup de choses, mais ah bien).
- Pas de dépendance à visual studio, et de se concentrer sur la productivité de la ligne de commande plutôt que dans une INTERFACE utilisateur
- Pas de dépendance à powershell, OW est livré avec son propre système de commande qui vous permet de développer, de déployer et d'exécuter vos propres commandes, que ce soit à partir de notre interpréteur de commandes (le o.exe l'outil) ou de MSBuild lui-même.
- OpenWrap utilise OpenWrap de construire et de déployer lui-même, et est xcopy friendly à chaque étape de la manière.
- A l'échelle du système référentiel de packages, de sorte que vous pouvez déployer votre utilitaire de commandes une fois plutôt qu'une fois par solution
- Prend en charge dynamique de la résolution des dépendances lors de l'exécution, si vous voulez le faire
- A un extensible format de paquet, 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 deux OpenWrap forfaits et packages NuGet et référentiels
- Reste bien à l'écart des complications de XML et OData, et va pour du texte simple, à base de DSLs qui sont facile et rapide à apprendre
- Support intégré de construire, de sorte que vous pouvez construire et assembler votre solution en une seule fois
- Prend en charge personnalisée des référentiels sur un partage réseau que vous pouvez utiliser dans le openwrap shell ou les tâches msbuild
- Fournit la dépendance de nivellement, automatiquement le choix de la combinaison de versions de paquets sont résolus
- Resharper intégration signifie que tout changement que vous faites à votre dépendances obtient reflète dans VS en temps réel
- TeamCity l'intégration signifie que vous pouvez construire, assembler et déployer votre colis en utilisant exactement le même processus, à partir d'un script MSBuild ou à partir de la ligne de commande
- Extensible constructeurs signifie que vous pouvez changer la façon dont la construction est déclenché dans OpenWrap
- Un soutien pour les coureurs de l'épreuve et de l'expédition des tests aux côtés de paquets
- Utilise des prises en charge MSBuild points d'extensibilité pour inclure des références d'assembly, et laisse le code que vous avez construit seul. Une fois que vous fournir des fichiers binaires, vous n'avez pas de openwrap code de la dépendance, seulement au moment de la construction.
C'est juste pour les différences, c'est ce que vous m'avez demandé, donc je ne vais pas vous ennuyer avec ce que nous faisons la même chose que les autres gestionnaires de paquets.
Voulais juste mentionner quelques réflexions à partir de la NuGet côté des choses. Seb laisse quelques détails qui méritent d'être soulignés.
- Bien que notre principal UI est VS base, le noyau de NuGet à l'assemblée n'ont pas de liens de VS. L'ASP.NET Pages Web produit a un basé sur le web du gestionnaire de package. J'ai écrit un post de blog montrant un exemple de l'utilisation de NuGet pour construire un site web qui met à jour lui-même au moment de l'exécution. http://haacked.com/archive/2011/01/15/building-a-self-updating-site-using-nuget.aspx
- NuGet est un puissant outil de console PowerShell. Les packages NuGet pouvez 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 avant, c'est un client à NuGet et NuGet de base n'en a pas besoin.
- NuGet est disponible pour les installer via le VS Extension de la Galerie et est très facile à prendre en main immédiatement.
- NuGet prend en charge pointant le client à un répertoire (ou un partage réseau) contenant un ensemble de paquets et automatiquement le traite comme un référentiel. Donc, si vous ne voulez pas avoir affaire avec OData, vous n'avez pas à. Mais nous avons aussi inclus 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 nécessite pas le déploiement d'une partie de la NuGet dans le cadre de votre demande. Il reste en mains et se concentre sur l'automatisation de mesures doit-on prendre sans NuGet d'acquérir et de déployer vos dépendances. Pour être clair, comme Seb points, ni ne OpenWrap. Je voulais juste préciser que NuGet n'a pas besoin de ce.
L'un des principes clés de la NuGet (et une différence importante avec OpenWrap), c'est qu'il n'essaie pas de changer la façon dont vous travaillez. Au lieu de cela, il rend beaucoup plus facile de faire les choses que vous faites déjà aujourd'hui.
Dire par exemple que vous essayez d'utiliser une bibliothèque Foo, qui dépend d'un Bar de la bibliothèque. Aujourd'hui, vous auriez à trouver manuellement les bibliothèques, les copier sur votre machine et ajouter des références. Puis, plus tard, des versions plus récentes, viendra et vous allez passer par les mêmes mouvements pour obtenir les mises à jour.
Dans un tel scénario, les deux NuGet et de l'écoulement, il sera facile d'apporter dans ces références, mais la principale différence est que NuGet il le fait dans une manière qui est complètement non-invasive. c'est à dire que les binaires sur votre machine et les références de la même manière que si vous aviez fait manuellement. Après il a fait, votre fichier de projet est complètement "normal", sans aucun lien NuGet lors de la compilation ou de l'exécution.
Ce que cela signifie est que si vous obtenez un certain nombre de bibliothèques via NuGet et de mettre votre projet en contrôle de code source, un autre développeur est alors en mesure d'utiliser votre projet sans avoir besoin de NuGet.
Le OpenWrap approche a des avantages, mais aller dans cette voie, vous devez être prêt à utiliser OpenWrap tous les sens, et non pas facilement être en mesure de s'en éloigner.
Il y a beaucoup d'autres différences, comme les riches et les soutenir dans NuGet), mais c'est ce que je considère comme la différence la plus fondamentale entre les deux.
Il semble que OpenWrap repo-serveur (wraps.openwrap.org) est en baisse, et par conséquent, vous ne pouvez pas installer ou utiliser OpenWrap en suivant les docs (au moins autant que je peux dire.)
Donc à partir de maintenant, les différences entre les deux sont hors de propos, il ressemble à NuGet est la seule façon d'aller.
S'il vous plaît corrigez-moi si je me trompe -- je le sais bien! =)