Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Psake против rake для сборок .NET

Автор вопроса: Todd MenierОтветов: 3

Я исследую инструменты сборки для использования с приложением ASP.NET MVC 2. Мне нравится идея использовать язык сценариев, а не XML, и я сузил свой выбор до psake или rake. У меня нет большого опыта работы с Ruby или PowerShell, но я тоже хочу учиться. Я не против установить Ruby на свой сервер сборки, если это лучший вариант.

В моем телосложении нет ничего слишком сложного или необычного. Мне нужно будет извлечь мой источник из репозитория Mercurial, создать решение Visual Studio 10, выполнить некоторые преобразования файлов конфигурации, построить / запустить сценарий SQL на основе проекта Database (Data Dude), реплицировать веб-публикацию VS и, возможно, выполнить другую базовую синхронизацию файлов.

У кого-нибудь есть опыт работы с rake и psake, который мог бы их сравнить? Есть ли у одного преимущество перед другим с точки зрения возможностей, или все сводится к предпочтениям языка сценариев?

Заранее спасибо.

РЕДАКТИРОВАТЬ: У меня еще нет решения CI, но я склоняюсь к использованию TeamCity. Подумал, что стоит упомянуть об этом на случай, если один инструмент сборки будет работать с ним лучше, чем другой.

buildrakepsake

Ответы

Ответ 1 · рейтинг 18 · Derick Bailey

Если вы еще этого не сделали, взгляните на мой проект Albacore. это набор задач rake для создания решений .NET, который значительно упростит работу с решениями .NET. Вы можете получить всю необходимую информацию на http://albacorebuild.net

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

..................

Честно говоря, я думаю, что вопрос не столько в том, какой инструмент делает то, что вы хотите, сколько в том, какой инструмент соответствует вашему набору навыков и уровню комфорта. и psake, и rake + albacore имеют примерно одинаковую функциональность. они оба работают очень хорошо. они оба значительно упрощают вашу работу по сравнению с другими инструментами. но у них разные подходы и установки, в зависимости от их опыта и происхождения.

Вам удобнее использовать набор инструментов, полностью состоящий из платформы Microsoft? или вам удобны инструменты, которые выходят за рамки типичного стека MS, но по-прежнему представляют ценность для людей, которые создают программное обеспечение на стеке MS.

Вы бы предпочли получить поддержку вашего инструмента сборки прямо из коробки с помощью PowerShell? Вы бы предпочли иметь опыт работы с C #, с возможностью включения C # и другого кода .NET в процесс сборки? хотите ли вы использовать различные плагины для PowerShell, которые помогают автоматизировать различные аспекты Windows для развертывания?

или вы бы предпочли иметь кросс-платформенную, очень открытую систему, которая дает вам более естественный язык с кодом, который вы пишете, в ruby ​​/ rake? Вам удобны инструменты и команды в стиле * nix, ssh и удаленное выполнение процессов для ваших развертываний?

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

Если вам удобнее работать со стеком MS и вы хотите получить готовый к работе инструмент на основе MS, тогда выбирайте PowerShell. если вы хотите расширить свой кругозор и немного выйти из стека MS, с набором инструментов, который легко интегрировать и с которым легко работать, чтобы получить представление о том, что такое мир Ruby, тогда используйте ruby ​​/ rake / альбакор.

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

Ответ 2 · рейтинг 24 · James Kovacs

Я должен согласиться с оценкой Дерика. На самом деле это зависит от того, чувствуете ли вы себя и ваша команда более комфортно с Ruby или Powershell (а также от того, что вы считаете более ценным в обучении). У обоих есть свои сильные и слабые стороны. Либо лучше, чем XML ИМХО. И, как сказал Дерик, у меня тоже есть собственная предвзятость, поскольку я являюсь оригинальным автором псаке. :)

Несколько преимуществ psake / PowerShell:

  1. PowerShell уже установлен в Windows 7 и Server 2008. Легко устанавливается в XP и 2003.
  2. Легко включается в ваше решение в систему контроля версий. (Меньше движущихся частей.)
  3. Вы можете взять командную строку PowerShell и вставить ее vertabim в задачу psake.
  4. Microsoft и сторонние компании создают множество командлетов.
  5. Ваши ИТ-специалисты / девушки, вероятно, знают немного PowerShell, что может помочь им чувствовать себя более комфортно при автоматизации развертывания. (Сценарий развертывания не такой уж черный ящик.)

Несколько преимуществ rake / Ruby:

  1. Rake имеет более широкое сообщество, поскольку он широко используется в сообществе Ruby.
  2. Ruby - более выразительный язык, чем PowerShell, хотя вы, вероятно, захотите упростить свои сценарии сборки.
  3. Albacore значительно упрощает создание .NET-проектов с помощью rake.
  4. В Rake есть удобный механизм размещения имен для группировки задач.

Оба решения работают на создание вашего решения. Выберите тот, который подходит вашей команде. Надеюсь, это поможет.

Ответ 3 · Thomas Maierhofer

В настоящее время я разрабатываю инструменты сборки на основе PowerShell, которые сочетают конфигурацию XML с возможностью использования и расширения системы с помощью самой PowerShell. Я хочу иметь простые инструменты сборки, которые можно расширять и настраивать для большинства процессов сборки. Вот пример страницы проекта:

Примеры инструментов сборки Crawler-Lib

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы