Psake vs. rake для .NET builds
Я изучаю инструменты сборки для использования с приложением ASP.NET MVC 2. Мне нравится идея использования языка сценариев, а не XML, и сузили мой выбор до пейки или грабли. У меня нет большого опыта работы с Ruby или PowerShell, но я тоже хочу учиться. Я не против установки Ruby на моем сервере сборки, если это мой лучший вариант.
Ничего сложного или необычного в моей сборке. Он должен будет вытащить мой источник из репозитория Mercurial, создать решение Visual Studio 10, сделать некоторые преобразования конфигурационных файлов, построить/запустить SQL script на основе проекта Database (Data Dude), реплицировать VS Web Publish, и, возможно, выполните некоторую другую базовую синхронизацию файлов.
У кого-нибудь есть опыт работы с rake и psake, которые могли бы их сравнить? У кого-то есть преимущество над другими с точки зрения возможностей, или это просто сводится к предпочтениям языка сценариев?
Спасибо заранее.
EDIT:
У меня пока нет решения CI, но я склоняюсь к использованию TeamCity. Думаю, я бы упомянул об этом, если один инструмент сборки лучше работает с ним, чем другой.
Ответы
Ответ 1
Если вы этого еще не сделали, взгляните на мой проект Albacore. это набор задач rake для создания .NET-решений и упростит работу с Rake для решений .NET. Вы можете получить всю необходимую информацию из http://albacorebuild.net
сказав, что - у меня, очевидно, есть свои собственные предубеждения и предпочтения, для которых я бы скорее использовал инструмент. так что возьмите это с солью и понимайте мои предпочтения...
..................
Я честно думаю, что это меньше вопрос о том, какой инструмент делает то, что вы хотите, и еще вопрос о том, какой инструмент соответствует вашим навыкам и уровню комфорта. как psake, так и rake + albacore имеют практически такую же функциональность. они оба работают очень хорошо. они оба делают вашу работу очень легко по сравнению с другими инструментами. но они имеют разные подходы и наборы разума, основанные на их предыстории и месте, откуда они происходят.
Вам удобнее с пакетом инструментов, который является платформой Microsoft? или вам удобны инструменты, которые находятся за пределами обычного стека MS, но при этом обеспечивают ценность для людей, которые создают программное обеспечение в стеке MS.
Скорее всего, у вас будет поддержка вашего инструмента построения прямо из коробки, с powershell? скорее всего у вас будет опыт работы с С#, с возможностью включения С# и другого .NET-кода в ваш процесс сборки? вам нужна возможность использовать различные плагины для powershell, которые помогают автоматизировать различные аспекты окон для развертывания?
или у вас есть кросс-платформенная, очень открытая система, которая даст вам более естественный опыт работы с кодом, который вы пишете, в рубине/грабли? вам удобны инструменты и команды стиля nix, ssh и удаленное выполнение процесса для развертывания?
вы говорите, что не против установки ruby на сервере сборки, который отвечает на часть этого вопроса и оставляет вас открытым для вариантов. тем не менее, есть много вопросов, которые еще нужно ответить.
если вам более удобно работать с MS-стеком и вы хотите использовать готовый инструмент для MS-based, а затем перейдите в PowerShell. если вы хотите расширить свои горизонты и немного выйти из стека MS, с набором инструментов, с которым легко интегрироваться и работать, чтобы получить представление о том, что такое мир Ruby, затем перейдите с помощью ruby /rake/альбакор.
Надеюсь, что это поможет, хотя я не дал вам прямого ответа на тот, который вы должны использовать. надеюсь, я дал вам достаточно, чтобы подумать, чтобы определить, какой из них лучше для вас/вашей команды.
Ответ 2
Я бы согласился с оценкой Дерика. Это действительно зависит от того, чувствуете ли вы и вашу команду себя более комфортно с Ruby или Powershell (а также с тем, что вы больше цените в обучении). У обоих есть свои сильные и слабые стороны. Либо лучше, чем XML IMHO. И, как сказал Дерик, у меня тоже есть своя предвзятость, поскольку я являюсь оригинальным автором psake.:)
Несколько преимуществ psake/PowerShell:
- PowerShell уже установлен на Windows 7 и Server 2008. Легко устанавливается в XP и 2003 году.
- Легко включается с вашим решением в управлении версиями. (Меньше движущихся частей.)
- Вы можете взять командную строку PowerShell и вставить ее вертикально в задачу psake.
- Microsoft и сторонние стороны создают множество командлетов.
- Ваши ИТ-ребята/галы, вероятно, знают некоторые PowerShell, которые могут заставить их чувствовать себя более комфортно при автоматизации развертываний. (Развертывание script не является таким черным ящиком.)
Несколько преимуществ rake/Ruby:
- Rake имеет более крупное сообщество, поскольку оно широко используется через сообщество Ruby.
- Ruby - более выразительный язык, чем PowerShell, хотя вы, вероятно, хотите, чтобы все было проще в сценариях сборки.
- Albacore значительно упрощает создание .NET-проектов с помощью рейка.
- Rake имеет хороший механизм пространственного пространства для группировки задач.
Оба решения работают над созданием вашего решения. Выберите тот, который работает для вашей команды. Надеюсь, что это поможет.
Ответ 3
В настоящее время я разрабатываю инструменты сборки на основе PowerShell, которые объединяют конфигурацию XML с возможностью использования и расширения системы с помощью самой PowerShell. Я хочу иметь простые инструменты сборки, которые можно расширить и настроить для большинства процессов сборки. Вот пример страницы проекта:
Образцы сборки Crawler-Lib