Let me clarify, then. I believe that all Windows apps should have been written in .NET. .NET provided a superior layer for security and sandboxing - something a lot of Windows apps suffer from. I'm not alluding that we forego OS-level API's, but at least clean up the OS API's and force the use of .NET. Java can still run on Windows - whether it chooses to abstract its windowing API's to use Windows GDI (or whathaveyou). I'm jsut saying, for Microsoft developers, it would have been a huge benefit if the API were cleaner.
What Windows apps are you talking about? Since I moved to Vista, and most definitely since Windows 7, I have not had any instability with any applications at all. I don't see any lack in security or sandboxing?
I'll step back from my "I don't like XAML"-ness and say that if you ARE going for a consistent UX, then stick to one technology! I love HTML5, I really do. But as a developer, there's already a plethora of tools that MS has in their arsenal for UX development. It pisses me off that MS told us to use XAML and only to find out that XAML is stuck to WinMo7 development? WTF? HTML5 on the desktop is not a bad idea, it's a bad idea when MS already has XAML! I would love to see MS deliver with consistency (and not consistently deliver buggy OS'): pick a tech stack and run with it. XAML for UX, .NET for apps, and simplify the OS-level API's - not that hard for a $60B company who has a two to four year timeline between OS'.
XAML is what runs WPF, which was supposed to be the replacement for Win Forms. How is XAML limited to Windows Phone 7? Windows 7 isn't "buggy" at all? I don't understand. It seems like you have a welled up predjudice and still hold ME and Vista against MS. Even though Vista was no worse than XP when it was released. You so BOTH XP and Vista get loads more stable with updates and SP 1 releases. After SP 2 XP was rock solid. I haven't had a BSOD for anything other than hardware failure in almost 6 years...
That's the thing, even if .NET sticks around, what's it good for? Will we end up like COBOL programmers? Will we suffer the same fate as VB6 guys? That's the messed up part of it all, I always loved .NET (it's my first job out of college, has paid the bills and has helped me travel the world), but MS seems to be making one terrible decision after the next. It seems like the VS guys and the Windows guys exists into separate planes of existence - and none can talk to the other.
VB6 is old, and they all SHOULD have migrated to VB.NET. You can still use .NET to write desktop applications, ASP.NET websites, web services, etc. I don't understand where all of this doom and gloom is coming from....
Now that I began to experiment with other languages and frameworks, I noticed a few things that irritated me. Ruby on Rails has a flexible unit-test model. Don't like Test::Unit? There's RSpec. RSpec has Steak, Cucumber and BBQ (yes, those are products, don't laugh). Also, Unit Testing doesn't exist in a separate project, you can test using TDD or BDD, and you can trigger your testing module to run after a file edit.
Meh, isn't an issue really. TDD and BDD are kind of fadish anyway (IMO). I think Unit testing can be, and should be, a useful thing to have in your solution. Use whatever framework you want; it really isn't that hard to do.
VS2010 is nice. I like IDE's, but the IDE can be a big hindrance as well. Also, there are lots of awesome tools for VS2010 (Resharper, Redgate) but I feel that tools like Resharper should have been included in VS2010 and part of your development workflow. It seems that VS2010 chops up certain activities (i.e., tests in one project, app in the other)...it doesn't feel cohesive.
How is VS2010 a hindrance? Sure, it would be "nice" to have all of resharpers features included. Although IMO, they aren't doing it because ReSharper exists. Because Code Rush exists, etc. Why reinvent the wheel? They made VS extensible for a reason. Resharper isn't expensive and it should be fairly easy to justify its cost to your company. If management can't see how it is helpful then you probably don't wanna work for them anyway. I don't know of any other IDE that comes even close to being as powerful and as helpful as VS 2010 is.
I firmly believe that you should have different areas of the solution separated in different projects. There is no reason not to do that. If somebody breaks a feature in a shared library for example, I should be able to still build my data access library and test it. Having thins separate allows for that. QA broke the unit test project? You can exclude it from the build and still do your development and testing without having to wait for them to fix it. I guess I don't see it being disjointed at all. It enforces some logical separation and helps organize the solution. I hate nothing more than opening a project/solution and seeing hundreds of code files. That is just tedious and next to impossible to work with.