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

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

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

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

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

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


person Todd Menier    schedule 05.10.2010    source источник


Ответы (3)


Если вы еще этого не сделали, взгляните на мой проект 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 / альбакор.

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

person Derick Bailey    schedule 05.10.2010
comment
Спасибо Дерику и Джеймсу, всегда приятно получать ответы прямо из уст лошадей! Хотя у меня не было проблем с выходом за пределы стека MS, я остановился на psake. Переносимость и широта доступных командлетов в конечном итоге победили, и хотя PowerShell не может прикоснуться к Ruby в классном отделе, это довольно выразительный маленький язык сам по себе и вполне соответствует моим потребностям. Еще раз спасибо! - person Todd Menier; 20.10.2010
comment
Я. - командлеты - это удивительные мелочи. мы используем PowerShell для наших автоматических развертываний, и это замечательно. правильный инструмент для работы, не так ли? :) - person Derick Bailey; 20.10.2010
comment
ссылка не работает. - person Chazt3n; 12.06.2019

Я должен согласиться с оценкой Дерика. На самом деле это зависит от того, чувствуете ли вы себя и ваша команда более комфортно с 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 есть удобный механизм размещения имен для группировки задач.

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

person James Kovacs    schedule 07.10.2010
comment
сейчас мы используем PowerShell для наших развертываний. в eval между ruby ​​/ rake / capistrano / chef и powershell со всеми его командлетами, powershell имеет наибольший смысл по всем причинам, которые вы указали. это действительно хорошо для таких вещей на окнах. но мы по-прежнему используем ruby ​​/ rake / albacore для сборок :) - person Derick Bailey; 08.10.2010
comment
Я большой поклонник Powerhsell, поэтому для моих проектов естественным выбором стал Psake. Система императивной сборки - это глоток свежего воздуха по сравнению с более традиционными системами декларативной сборки. - person Peter Stephens; 09.05.2011

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

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

person Thomas Maierhofer    schedule 12.08.2014