.net reminds me of a fully developed version of vb 6.0, where everything is wrapped in objects and the developer sees none of the apis; not to mention that windows is completely sealed so that anytime you get an automatic update your computer could go boom or get a trojan installed, or as happend to me when i refused the windows checking software, my printer functions were completely disabled (nothing illegal with my system, just didn't want to be checked by big brother), then i had to wipe the my system reinstall everything and allow all the windows auditing software so my system wasn't crippled.
Sure Windows may be good for a while, but how would anyone know if and when it goes bad, there is no way of telling with closed source is there? not that i am necessarily saying that penguins and daemons are the way to go either (don't mention apples as they are also based on daemons); why isn't there a flavour of linux with birds that can actually fly that has been properly exorcised?
btw don't believe everything you read regarding leaks, poor programming creates leaks, not abstractions; and there is no "one api" there are many that's why the abstraction is required so the higher level developer wouldn't be working with .net objects they would be working with higher than MS level objects. think of it in object terms rather than api terms.