Подтвердить что ты не робот

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. Думаю, я бы упомянул об этом, если один инструмент сборки лучше работает с ним, чем другой.

4b9b3361

Ответ 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