Вопрос

В чем разница между OpenWrap и NugeT. И что вы предпочитаете?

Это было полезно?

Решение

OpenWrap - это проект с открытым исходным кодом, предусматривающий управление зависимостями в приложениях, не только по времени сборки, но и во время выполнения.

Таким образом, наши функции нацелены на динамическое разрешение зависимостей, будьте его для композитных приложений WPF, разработке веб-приложений или системных утилит. Это делает нашу реализацию сильно отличаться от того, что делает Nuget.

Итак, вот то, что разные вещи (я, вероятно, забуду много, но ах хорошо).

  • Нет зависимости от Visual Studio и сосредоточиться на производительности в командной строке, а не в интерфейсе
  • Нет зависимости от PowerShell, OW поставляется с собственной командой системы, которая позволяет вам разрабатывать, развернуть и выполнять свои собственные команды, будь то из нашей оболочки (инструмент O.exe) или от самого MSBUILD.
  • OpenWrap использует OpenWrap для создания и развертывания, а также является дружелюбным XCopy на каждом этапе пути.
  • Имеет системное хранилище пакетов, поэтому вы можете развернуть ваши команды утилиты один раз, чем один раз на решение
  • Поддерживает разрешение динамической зависимости во время выполнения, если вы хотите сделать это
  • Имеет расширяемый формат пакета, поэтому вы можете создавать новые типы зависимостей в пакете и иметь помощь в OpenWrap, вы используете их в своем приложении
  • Поддерживает как пакеты OpenWrap, так и пакеты Nuget и репозитории
  • Остается хорошо вдали от осложнений XML и Odata и идет на простые текстовые DSL, которые легко и быстро учиться
  • Поддержка встроенной сборки, поэтому вы можете создавать и упаковать ваше решение в одном режиме
  • Поддерживает пользовательские репозитории на долю сети, которые вы можете опубликовать от оболочки OpenWrap или задачи MSBuitild
  • Обеспечивает выравнивание зависимостей, автоматически выбирая, какая комбинация версий пакетов решена
  • Интеграция Resharper означает, что любые изменения, которые вы делаете с вашим зависимостями, отражаются в против в режиме реального времени
  • Интеграция TeamCity означает, что вы можете создавать, пакет и развернуть ваш пакет, используя ровно тот же процесс, из сценария MSBUILD или из командной строки
  • Расширяющиеся строители означает, что вы можете изменить, как запускается сборка в OpenWrap
  • Поддержка тестовых бегунов и испытаний доставки рядом с пакетами
  • Использует поддерживаемые точки расширения MSBuild для включения ссылок на сборку и покидают код, который вы построили в одиночку. Как только вы отправляете двоичные файлы, У вас нет зависимости кода OpenWrap, только во время сборки.

Это только для различий, как это то, о чем вы спрашивали, поэтому я не буду беспокоить вас тем, что мы делаем так же, как и другие менеджеры по пакетам.

Другие советы

Просто хотел перезвонить с некоторыми мыслями от ногущей стороны вещей. SEB оставляет несколько деталей, которые стоит указывать.

  • Хотя наша основная интернет-пользовательский интерфейс основан на основе VS, узел Core Nuget не имеет никаких связей к против. Продукт ASP.NET Web Pages имеет веб-менеджер пакетов на базе. Я написал сообщение в блоге, показывающий один пример использования Nuget, чтобы построить веб-сайт, который обновляет себя во время выполнения. http://haacked.com/Archive/2011/01/15/building-avels-uppdating-site-using-nuget.aspx.
  • Nuget предоставляет мощную консоль PowerShell. Пакеты Nuget могут добавлять новые команды на консоль. Видеть http://blog.stevensanderson.com/2011/01/13/1scaffold-your-aspnet-mvc-3-project-with-the-mvcscafting-package/. Отказ Как и прежде, это один клиент для Nuget и Nuget Core не требует этого.
  • Nuget доступен для установки через галерею VS Extension и очень легко начать работу сразу.
  • Nuget поддерживает, указывая клиенту в каталоге (или доля сети), содержащий набор пакетов, и автоматически обрабатывает его в качестве хранилища. Так что, если вы не хотите иметь дело с Odata, вам не нужно. Но мы также включаем внедрение нашей галереи, поэтому нет необходимости вручную справиться с Odata / XML в любом случае.
  • Nuget не требует от вас развертывания любой части Nuget в рамках вашего приложения. Он остается вручком и ориентирован на автоматизию шагов, которые вы взяли без Nuget, чтобы получить и развернуть ваши зависимости. Чтобы быть понятным, как SEB отмечает, ни OpenWrap. Я просто хотел понять, что Nuget тоже не требует этого.

Один из ключевых принципов Nuget (и важное различие с OpenWrap) заключается в том, что он не пытается изменить способ работы. Вместо этого ему гораздо легче делать то, что вы уже делаете сегодня.

Скажите, например, вы пытаетесь использовать библиотеку FO, которая зависит от библиотеки бар. Сегодня вам придется вручную найти эти библиотеки, скопируйте их на свою машину и добавляем их ссылки. Затем появится позже новые версии, и вы пройдете подобные движения, чтобы получить их обновления.

В таком сценарии, как Nuget, и OW облегчат эти ссылки, но ключевое отличие заключается в том, что NugeT делает это таким образом, который полностью неинвазивен. Т.е. она получит двоичные файлы на вашу машину и ссылается на них так же, как если бы вы делали это вручную. После этого сделали это, ваш файл проекта полностью «нормальный», без каких-либо галстуков для Nuget при сборке или время выполнения.

Что это значит, что если вы получите некоторые библиотеки через Nuget и поместите свой проект в исходном управлении, другой разработчик может вообще использовать ваш проект без необходимости вообще NUGET.

Подход OpenWrap также имеет заслуги, но чтобы пойти на этот маршрут, вы должны быть готовы использовать openWrap полностью, и не легко быть в состоянии отойти от него.

Существует много других различий (например, богатая поддержка VS в Nuget), но это то, что я считаю как наиболее фундаментальное различие между двумя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top