Я исследую инструменты сборки для использования с приложением ASP.NET MVC 2. Мне нравится идея использовать язык сценариев, а не XML, и я сузил свой выбор до psake или rake. У меня нет большого опыта работы с Ruby или PowerShell, но я тоже хочу учиться. Я не против установить Ruby на свой сервер сборки, если это лучший вариант.
В моем телосложении нет ничего слишком сложного или необычного. Мне нужно будет извлечь мой источник из репозитория Mercurial, создать решение Visual Studio 10, выполнить некоторые преобразования файлов конфигурации, построить / запустить сценарий SQL на основе проекта Database (Data Dude), реплицировать веб-публикацию VS и, возможно, выполнить другую базовую синхронизацию файлов.
У кого-нибудь есть опыт работы с rake и psake, который мог бы их сравнить? Есть ли у одного преимущество перед другим с точки зрения возможностей, или все сводится к предпочтениям языка сценариев?
Заранее спасибо.
РЕДАКТИРОВАТЬ: У меня еще нет решения CI, но я склоняюсь к использованию TeamCity. Подумал, что стоит упомянуть об этом на случай, если один инструмент сборки будет работать с ним лучше, чем другой.
Ответ 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:
- PowerShell уже установлен в Windows 7 и Server 2008. Легко устанавливается в XP и 2003.
- Легко включается в ваше решение в систему контроля версий. (Меньше движущихся частей.)
- Вы можете взять командную строку PowerShell и вставить ее vertabim в задачу psake.
- Microsoft и сторонние компании создают множество командлетов.
- Ваши ИТ-специалисты / девушки, вероятно, знают немного PowerShell, что может помочь им чувствовать себя более комфортно при автоматизации развертывания. (Сценарий развертывания не такой уж черный ящик.)
Несколько преимуществ rake / Ruby:
- Rake имеет более широкое сообщество, поскольку он широко используется в сообществе Ruby.
- Ruby - более выразительный язык, чем PowerShell, хотя вы, вероятно, захотите упростить свои сценарии сборки.
- Albacore значительно упрощает создание .NET-проектов с помощью rake.
- В Rake есть удобный механизм размещения имен для группировки задач.
Оба решения работают на создание вашего решения. Выберите тот, который подходит вашей команде. Надеюсь, это поможет.