Причины использовать Rake over NAnt или MSBuild - PullRequest
1 голос
/ 03 марта 2011

Я видел несколько проектов .NET (например, FluentNHibernate), использующих грабли Ruby для запуска своей сборки, вместо использования инструментов .Net, таких как NAnt или MSBuild. В чем преимущество этого? Мы находимся в процессе запуска нового проекта и пытаемся выяснить, следует ли придерживаться нашей существующей сборки NAnt или перейти на что-то другое. Любой совет будет принят во внимание.

Мы используем .Net 3.5, если это имеет значение.

1 Ответ

5 голосов
/ 03 марта 2011

Я не могу говорить с Rake, поскольку я никогда не использовал его, но я использовал SCons , что, как я полагаю, то же самое, что и Rake, но в Python.

Основным преимуществом инструментов make на основе сценариев является то, что файлы сборки являются фактически исполняемыми сценариями. Другими словами, в Rake файл сборки - это скрипт Ruby, а в SCons - скрипт Python. Если вы можете что-то кодировать на языке, который поддерживает система сборки, вы можете сделать это во время сборки. Таким образом, гибкость там по сути неограниченна. Сравните это с NAnt, где файл сборки представляет собой серию инструкций и объявлений в XML. Конечно, вы можете встраивать скрипты и еще что-то в файл сборки NAnt, но вы все еще застряли с потоком, процедурой и синтаксисом языка, используемого для выражения задач.

Тогда есть и кривая обучения. NAnt относительно прост, но если вы разработчик C #, который никогда не видел файл компоновки, на первый взгляд он может быть немного ошеломляющим. Если вы начинающий разработчик Ruby и выбрали Rake, кривая обучения гораздо менее крутая.

Я никогда не сталкивался с тем, с чем не мог справиться NAnt, хотя я признаю, что некоторые крайние вещи, как правило, трудны. Если бы я использовал SCons, то было бы гораздо проще, если бы у меня была возможность написать скрипт Python (с доступом к превосходной стандартной библиотеке Python) для начала.

...