Как написать, скомпилировать и запустить C # бесплатно (в Windows) - PullRequest
9 голосов
/ 12 апреля 2009

Возможно ли использовать C # бесплатно? Какие инструменты вы бы использовали?

  1. Для развлечения / учебы: я почти уверен, что вы можете, но тем не менее, вопрос об инструментах остается.
  2. Для программ, которые вы хотите продать?

Инструменты, которые я ищу:

  1. IDE (максимально полно: отладка, рефакторинг, библиотеки, IntelliSense и т. Д.) - также, если он не включен в IDE, компилятор.
  2. Модульное тестирование,
  3. Документирование (извлечение комментариев как с JavaDoc),
  4. Развертывание.

Другие предложения для хороших бесплатных инструментов также приветствуются.

Обратите внимание, что IMO, Visual Studio Express НЕ предлагает все эти инструменты.

Ответы [ 9 ]

18 голосов
/ 12 апреля 2009

Ида:

автономный компилятор:

  • csc.exe, vbc.exe и msbuild.exe являются частью .NET Framework. Инструменты Windows SDK также бесплатны. Или вы можете использовать компилятор из Mono project .

Модульное тестирование:

  • NUnit, mbUnit, xUnit и многие, многие другие.

Документирование: (извлечение комментариев в стиле JavaDoc)

Установка:

9 голосов
/ 13 апреля 2009

Пока ОП говорит:

Visual Studio Express НЕ предлагает все эти инструменты, как заявлено!

Что не дает C # Express, что вы хотите?

серьезное развертывание, модульное тестирование, документирование

Тем не менее, IMO, вы можете сделать это с помощью Visual Studio Express.

Развертывание

Проекты развертывания Visual Studio, безусловно, отсутствуют в Visual Studio Express, но, честно говоря, это не так много. Вся функция наполовину запечена, достаточно хороша, чтобы отметить список возможностей, достаточно хороша для развертывания игрушек, но, возможно, не совсем соответствует требованиям реального мира.

Установщик Windows XML (WiX) - это набор инструментов с открытым исходным кодом от Microsoft для создания установщиков. Установщик для Microsoft Office 2007 был , по сообщениям , собранный с WiX, поэтому разумно полагать, что он может справиться с любым меньшим случаем.

Другим инструментом установки является Nullsoft Scriptable Install System , возможно, ее легче понять, чем WiX, но она также не используется с технологией MSI, встроенной в Windows, и, следовательно, сложнее управлять в случае Enterprise.

Модульное тестирование

Среда тестирования Microsoft - MSTest , и хотя она и справляется с задачей, она не является лидером пакета. На самом деле, если вы поищите ответы на MSTest, вы найдете многих, кто считает, что это грабеж NUnit .

Было время, когда вы могли интегрировать любой из инструментов тестирования в Visual Studio Express, используя Test Driven.Net , хотя это больше не работает.

Что делает 1044 *, так это работает с внешними программами запуска для вашего инструмента модульного тестирования - все основные платформы модульного тестирования поставляются с ними. Когда я использую VS Express, у меня обычно есть бегущий на заднем плане; повторное выполнение тестов включает переключение задач.

NUnit - это дедушка фреймворков для .NET, и он работает очень хорошо. Хотя есть и другие, такие как mbUnit и xUnit .

Документация

Ни в одной версии Visual Studio нет хорошей истории для документации. На самом деле все они имеют одну и ту же историю - переключатель компилятора для генерации файлов XML на основе комментариев документации.

Чтобы преобразовать эти XML-файлы в настоящую документацию, вам понадобятся другие инструменты. NDoc раньше был стандартом, но этот проект, к сожалению, сейчас мертв ( довольно печальная история ). Sandcastle (еще один проект Microsoft с открытым исходным кодом), вероятно, станет новым золотым стандартом, но инструмент еще не настолько развит и прост в использовании, как хотелось бы. DocU - новый релиз в этой области, возможно, стоит продолжить.

Выводы

Как видите, есть хорошие способы достижения поставленных целей, даже с помощью Visual Studio Express. На самом деле, переход на платную версию Visual Studio дает вам только две вещи.

  1. Вы получите MSTest, если хотите.
  2. Вы сможете установить расширения / плагины, такие как TestDriven.NET и Resharper.

Для кого-то, начинающего, я не думаю, что ценностное предложение есть. Начните с бесплатных инструментов и тратьте деньги, когда у вас достаточно опыта, чтобы тратить их хорошо.

5 голосов
/ 13 апреля 2009
  1. IDE (насколько возможно, отладка, рефакторинг, библиотеки, intellisense, ...)
    => Sharpdevelop (#develop) IDE с открытым исходным кодом для .Net с поддержкой нескольких языков .
  2. Если не в IDE, компилятор
    => Как упомянул Йозеф
  3. Модульное тестирование
    => Sharpdevelop, NUnit встроен внутрь
  4. Документирование (извлечение комментариев, например, cf javadoc)
    => Sharpdevelop, SandCastle и SHFB интегрированный
  5. Развертывание
    => Sharpdevelop, WIX встроенный.

Проверьте все функции Shardevelop на Функции SharpDevelop

Это бесплатно создавать программы и продавать. Для развлечения вы можете разработать еще несколько функций внутри него:)

4 голосов
/ 12 апреля 2009
  1. Visual C # express edition
  2. Visual C # express edition
  3. Nunit
  4. SandCastle
  5. Не знаю, я дам кому-нибудь еще ответить.
4 голосов
/ 12 апреля 2009

Вы можете скачать Visual Studio Express. Включает в себя все, что вы просите. Вот ссылка:)

Удачи!

http://www.microsoft.com/express/download/

2 голосов
/ 12 апреля 2009

Посмотрите Visual C # Express для вашей IDE и компилятора, NDoc для вашей документации, MbUnit или NUnit для модульного тестирования, и я верю, что C # Express также справится с развертыванием.

2 голосов
/ 12 апреля 2009

Visual Studio 2008 Express , (или Visual C # 2008 Express, если вы не хотите использовать другие языки) - хороший выбор. Это бесплатно.

Non-Microsoft, попробуйте SharpDevelop

Изменить: если вы студент, и ваш университет сертифицирован MSDN AA, вы можете получить Visual Studio 2008 Professional бесплатно. Да, бесплатно.

1 голос
/ 12 апреля 2009

Также посмотрите на WiX для развертывания - это позволяет вам создавать файлы MSI.

1 голос
/ 12 апреля 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...