Это зависит от многих факторов, я бы сказал, что если вы планируете использовать сторонние элементы управления, например, то вам, вероятно, лучше придерживаться Windows и Visual Studio. Если вы собираетесь выполнять P / Invokes (вызывать методы Win32 API), то, опять же, лучше придерживаться Windows.
Дело в том, что многие функциональные возможности, которые имеет платформа .Net, доступны только для распространяемого установщика Microsoft / установщика Visual Studio и т. Д. Если вы присоединяетесь к команде, у которой уже есть проект и он связан с любым из этих пространств имен (Microsoft. * Приходит на ум), тогда определенно установите windows и visual studio, с другой стороны, если вы только начинаете новый проект, может быть легко разрабатывать на linux с monodevelop, если вы будете придерживаться всего, что полностью поддерживается по монофоническим рамкам.
Еще одна вещь, которую вы должны рассмотреть, это лицензии. Если у вашей команды уже есть лицензии на Visual Studio и Windows, переход на Linux не имеет особого смысла, поскольку я люблю linux и mono / monodevelop, и лучший способ разработки для .net - это, без сомнения, стек Microsoft.
Что имеет смысл, так это пытаться соблюдать моно, чтобы ваше программное обеспечение могло работать в инфраструктуре unix / linux, если оно у вас уже есть и если его переключение на сервер Windows, например, слишком сильно увеличивает стоимость.
К сожалению, все дело в стоимости, так что рассматривайте эти инструменты именно так, инструменты, они являются средством для достижения цели и просто так. Если разработка и развертывание с помощью windows и to-windows обходится дешевле, продолжайте, если у вас уже работает большой набор серверов unix / linux и вы хотите развернуть его, а затем используйте mono, просто учтите, что он имеет небольшую кривую обучения, поскольку он НЕ визуален студия / .net per se .