به نظر من بهتره برای ویندوز از Visual studio استفاده کنی
ولی به نظر من پروژه Mono برای این خوبه که بتونی نرم افزاری رو که با Microsoft visual studio تولید کردی با ایجاد تغییراتی به کمک پروژه Open Source ای به نام MonoDevelop برنامه ویندوزی که تولید کردی رو به لینوکس هم Port کنی.و این طوری نیاز نیست از صفر شروع کنی برای لینوکس با Qt و ... کد بزنی.
همون پروژه ویندوزی رو به لینوکس تبدیل میکنی.این طوری حدودا ۷۰ درصد کدها قابلیت استفاده مجدد دارند.و فقط ۳۰ درصد کدها باید تغییر کنند.اگر هم دیتابیس داشته باشه.باید دیتابیسی شبیه به دیتابیس MS SQL server با استفاده از MySQL بسازی.
این طوری کمی هم به شعار Cross Platform نزدیک میشی.هدف مقدس : یک بار بنویس همه جا اجرا کن!
نظر شما چیه؟؟؟
درضمن نصبت به C شارپ هم نباید تعصبی برخورد کرد.به شخصه از مایکروسافت خوشم نمیاد.ولی چون پول و قدرت داره.هرکی باهاش در میفته ور میفته.به همین دلیل استفاده از زبان C# به نظر من کار منطقیه.چون در ASP.net هم مایکروسافت بسیار قدرتمند بوده و از PHP سبقت گرفته(با تحقیق این حرف رو میزنم).به همین خاطر مایکروسافت اگه سیستم عامل اش به خوبی لینوکس نیست.ولی در عوض توی Visual stdio IDE عملکرد خوبی رو داشته.دلیل این موفقیت هم به نظر من ثروت مایکروسافت و سرمایه گذاری های کلان اون هستش