I have 5 years of experience with .NET using the C# language, and I am very familiar with the associated tools, from Windows, SQL Server and IIS to Visual Studio and MSBuild. Now I have a good idea for a web application which I could develop using those tools, but if (when) it becomes a success I will have to pay the Microsoft 'tax' eventually.<p>Instead I could try building it on other platforms like Ruby on Rails, MySQL and Apache and learn as I go. I love the idea of learning all that but I don't feel comfortable because I don't know how exactly it's going to work out for my app.<p>Picture this: you have (as I do) a MacBook Pro running OS X and all the tools needed for the experimental approach. Only a reboot away on the same drive is a Bootcamp partition running Windows 7 with the very familiar and free (for 3 years) Microsoft tools. Which one would you choose, the red pill or the blue pill?
If this is a web application that you're doing as a possible startup or side business, then I'd stick with the technology stack that you already know. You'll make quicker progress and all of the challenges you'll be solving will be in the actual problem domain you're developing for.<p>If it's more of just a side project or there's no real time constraints, go ahead and spread your wings and learn the new stack.
You don't have to switch completely away from ".net" do you?<p>I guess i'm not so sure of the maturity of the open source tools, but why not move in that direction?<p>I must admit to not being that involved in that community, but can't you rely on tools like IronRuby if you want to try new things while still being in a familiarish setting?
Open source. if you learnt properly with the .net platform, you should be able to transition... and from there, you can scale faster and cheaper, and look cool doing it. :)