Also, you're stuck with their platform for everything. The advantage in using an open package is that you can mix and match. If you're willing to do some research and work, you can find the tools that best match your specific requirements and hack together your dream application.
In the end it really depends on your temperament as a developer. If you prefer easy gains initially and can live with the limitations down the road, plus you don't really care how it all works under the hood and rather just have something that works OK in the end, then I guess MS should be your choice.
The reason that you find mainly "microsoft sucks" answers in hacker forums, is that hackers love the freedoms that being locked in to the MS platform takes away.