2010-10-05 2 views
18

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

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

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

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

EDIT: У меня пока нет решения CI, но я склоняюсь к использованию TeamCity. Думаю, я бы упомянул об этом, если один инструмент сборки лучше работает с ним, чем другой.

ответ

18

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

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

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

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

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

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

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

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

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

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

+0

Благодаря Дерик и Джеймс, всегда приятно получить ответы прямо из уст лошадей! Хотя у меня не было проблем с выходом за пределы стека MS, я закончил с psake. Переносимость и широта доступных командлетов выиграла в конце, и хотя PowerShell не может касаться Ruby в прохладном отделе, это довольно выразительный маленький язык в своем собственном праве и достаточный для моих нужд. Еще раз спасибо! –

+0

ya - командлеты - удивительные мелочи. мы используем powershell для наших автоматических развертываний, и это довольно замечательно. правильный инструмент для работы, не так ли? :) –

24

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

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

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

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

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

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

+2

теперь мы используем PowerShell для наших развертываний. в eval между ruby ​​/ rake/capistrano/chef и powershell со всеми его командлетами, powershell имеет наибольший смысл по всем причинам, перечисленным вами. это действительно хорошо для такого рода вещей в окне окна. но мы все еще используем ruby ​​/ rake/albacore для сборки :) –

+0

Я большой поклонник Powerhsell, поэтому Psake был естественным выбором для моих проектов.Система обязательной сборки - это глоток свежего воздуха по сравнению с более традиционными декларативными системами сборки. –

0

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

Crawler-Lib Build-Tools Samples

Смежные вопросы