Система документации и сборки для Mono / C # - PullRequest
6 голосов
/ 14 января 2011

Я начинаю новый проект, и один из членов команды решил использовать C # в качестве языка реализации.У меня нет большого опыта в C #, но краткое чтение показывает, что он очень способен быть полным кроссплатформенным vm.Помимо языка, у меня были проблемы с выбором инструментов и рабочих процессов для управления кодом по мере роста проекта.Он должен быть довольно маленьким (<10 тыс. Строк), но я хотел бы иметь возможность генерировать документацию по мере роста проекта, управлять любыми внешними зависимостями, которые мы решим использовать, и автоматизировать сборки и тестирование.Мне интересно, какие инструменты обычно используются или считаются лучшими практиками для этого языка. </p>

Меня больше всего интересует, как система сборки может работать как на * nix, так и на окнах?Существуют ли инструменты, специфичные для C #, или Make более распространен?Кроме того, я хотел бы использовать dvcs, но не похоже, что Visual Studio и MonoDevelop поддерживают одни и те же.Каковы распространенные VCS выбора для C #?Для тестирования доступен тип юнит-тестирования для C # / Mono?Наконец, я знаю, что есть хорошие генераторы документов, но с вопросом о системе сборки мне бы очень хотелось, чтобы это был всего лишь один шаг в сборке, аналогичный тому, как тестирование является шагом.Обычно я автоматизирую с Hudson, но мне интересно, есть ли что-то более специфичное для платформы.

В целом, я хотел бы увидеть решение, которое обеспечивает достойный рабочий процесс как для Windows, так и для * nix безтяжелое административное бремя.Я почти уверен, что это святой Грааль управления проектами, поэтому все, что выводит меня на этот путь, просто потрясающе.

Ответы [ 5 ]

4 голосов
/ 14 января 2011

В проекте, над которым я работаю, мы используем Visual Studio 2010, MonoDevelop / XBuild, Git и monodoc.Файлы проектов, созданные в Visual Studio 2010, могут быть легко прочитаны MonoDevelop и XBuild.Кроме того, Git - превосходная VCS для распределенной разработки (мне особенно нравится ее ветвление).Monodoc, с некоторыми изменениями параметров командной строки, может генерировать документацию из комментариев XML в коде.

1 голос
/ 14 января 2011

Я предлагаю вам в основном использовать одну IDE. Я думаю, что большинство Mono IDE поддерживают форматы Visual Studio. По крайней мере, SharpDeveblop делает.

http://mono -tools.com кажется правильным способом разработки для .NET и Mono только в Windows (не бесплатно). Я думаю, что это лучший вариант, если я когда-либо всерьез подхожу к разработке для моно в коммерческой среде, но не уверен в 1005.

http://sharpdevelop.com тоже выглядит многообещающе, но все равно выглядит как вариант для бедняка.

http://monodevelop.com/ - это способ разработки Mono для Linux.

Для DVCS вы всегда можете использовать черепаху и быть независимым от IDE. git прекрасно работает в Linux, а TortoiseGit в Windows очень хорош. Однако, с точки зрения известности, SVN (конечно, не DVCS) все еще доминирует, особенно его клиент может подключаться к TFS через мост. Mercurial и Git начинают появляться в сообществе C #.

1 голос
/ 14 января 2011

Вы можете использовать любые DVC, которые вы хотите с ним. MonoDevelop (по крайней мере в транке, не уверен, выпущен ли он еще) как встроенная поддержка Git. Есть несколько плагинов для Visual Studio, которые также предоставляют вам Git.

В любом случае, вам не нужно, чтобы ваш источник управления был интегрирован в IDE, хотя я предпочитаю, чтобы он не использовался, и используйте Git из TortoiseGit, если я в Windows, или из командной строки в OS X хотя я смотрю на Gitti для OS X).

Для сборки я бы предложил TeamCity, так как он поддерживает до трех удаленных агентов, что позволяет вам использовать Windows / Linux / Mac с бесплатной версией.

Для сборки я бы использовал NAnt, хотя xbuild под моно работает с файлами решений, так что это может быть проще, чем поддержка двух скриптов сборки. Мне нравится NAnt для CI просто потому, что мне легче разбить на части сборки, тестирования, покрытия, упаковки, развертывания и т. Д.

Я обнаружил, что комбинация MonoDevelop, Git, TeamCity и NAnt дает вам несколько хороших настроек кросс-платформенной разработки.

0 голосов
/ 18 августа 2016

Cake (C # Make) - это система автоматизации сборки с открытым исходным кодом, основанная на языке домена C #, которая может выполнять такие функции, как компиляция кода, копирование файлов / папок, запуск модульных тестов, сжатие файлов и сборка NuGet.пакеты.Он имеет множество других встроенных функций и может быть легко расширен с помощью пользовательского кода.Он доступен для Windows, Linux и OS X и может использоваться с несколькими системами непрерывной интеграции, такими как AppVeyor, TeamCity, TFS, VSTS или Jenkins.

0 голосов
/ 14 января 2011

CruiseControl.Net - довольно хорошая система сборки / непрерывной интеграции. Он может интегрировать загрузку приложений в процесс сборки; мы используем NAnt для сборок, модульных тестов NUnit и FXCop для анализа кода.

...