Какой набор инструментов подойдет разработчикам Java, которым необходимо создавать проекты на C # / F # с моно? - PullRequest
3 голосов
/ 14 октября 2011

Я работаю с командой, которая разрабатывает приложение Java с использованием следующего хорошо зарекомендовавшего себя набора инструментов для автоматизированного построения, тестирования и непрерывной интеграции:

  • ОС: Ubuntu
  • IDE: Eclipse
  • Инструменты сборки: Муравей
  • Среда тестирования: JUnit
  • Контроль версий: Subversion
  • CI сервер: Дженкинс

Типичное задание Jenkins будет извлекать исходный код Java из Subversion и запускать целевые объекты Ant для создания кода, выполнения автоматических тестов и создания артефактов развертывания.

Сейчас мы рассматриваем возможность написания плагина .Net для клиентов Windows для доступа к API нашего приложения из MS Excel. Мы, вероятно, напишем его с использованием C # или F # - это первые дни, и мы еще не остановились на языке, но F # кажется, что он может предложить некоторые преимущества с точки зрения возможности выражать действия API с помощью комбинатора DSL.

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

Мое первое впечатление, что набор инструментов будет выглядеть примерно так:

  • ОС: Linux
  • IDE: Monodevelop / VIM (поддержка Eclipse для Mono, и особенно для F #, кажется, отсутствует)
  • Инструмент для сборки: NAnt
  • Среда тестирования: NUnit
  • Контроль версий: Subversion
  • CI сервер: Jenkins, с плагином NAnt

У кого-нибудь есть опыт разработки с таким набором инструментов? Я хотел бы ответить на два вопроса:

  • Каковы основные подводные камни в этом подходе для разработчиков, использованных в экосистеме Java?
  • Есть ли лучшие альтернативы NAnt и NUnit для построения и запуска автоматических тестов, особенно для F #?

Ответы [ 2 ]

2 голосов
/ 14 октября 2011

Использование F # с MonoDevelop в Linux кажется правильным, если вы разрабатываете кроссплатформенные или серверные приложения, которые можно разрабатывать в Linux (и время от времени тестировать на Mac / Win).

Однако я не думаю, что вы сможете разработать плагин Excel для Linux, если ориентируетесь на пользователей Windows.Вам определенно нужно будет запустить Excel в Windows и для тестирования, возможно, вам также потребуется (часть) разработка для Windows (я полагаю, интеграция сложная задача - хотя вы могли бы разработать и протестировать какое-то ядрофункциональность в Linux).

В Windows вы можете использовать бесплатную оболочку Visual Studio с F # .Интеграция MonoDevelop для F # (надеюсь) довольно хорошая, но Visual Studio дает вам, вероятно, лучший опыт, и вам придется использовать Windows для решения многих задач в любом случае ...

1 голос
/ 14 октября 2011

Каковы основные подводные камни в этом подходе для разработчиков, использованных в экосистеме Java?

Вы используете операционную систему Linux для разработки расширения для Excel, в первую очередь для Windows. Платформа Mono довольно хороша, но вы можете сталкиваться с ошибками - либо с C #, либо с F #. Это не такая большая проблема, как несколько лет назад, но стоит задуматься. Если вы решили использовать платформу Mono / Linux - MonoDevelop - это то, что вам нужно.

Существуют ли лучшие альтернативы NAnt и NUnit для построения и запуска автоматических тестов, особенно для F #?

Посмотрите на FsUnit , если вы планируете использовать F #. У него есть несколько хороших синтаксических утверждений и т. Д. Он бесплатный для NUnit, поэтому вы не окажетесь в неизведанных водах.

...