I have a fairly slick approach to doing C# development using the above tools/methodologies. Specifically i follow the "Jeffrey Palermo Agile Bootcamp" onion architecture. I feel like I'm a strong developer/architect using these tools and that these make me more productive and help make more maintainable code. I think these are all important things for any senior developer to know. I have been writing code for over 10 years, mostly in MS technology.
What i am finding though, is that Microsoft shops don't really care about any of this stuff. All they care about is you know C#, sql server, stored procs and often some WCF. Its not that I don't think its valuable to know how to write hand coded stored procs on occasion or that wcf is not useful technology. Its just that most .NET shops think that is the way you should always build applications using MS technology. Code up some stored procs, write a hand-coded DAL to talk to it, MAYBE use some dumb anemic data objects to pass around to and from WCF. Put all behavior in the stored procs or some sort of service like classes. Very procedural stuff. OOP, DDD, TDD, O/R mapping are either downplayed or non-existent at most of these shops. Certainly my last job was like this. Everything was stored procs to WCF. Not an object or unit test to be found.
Should I be looking to switch my skills over to java, ruby or some other technology to do the style of development that I like and think produces the best quality? I feel like the .NET community has matured quite a bit but still i feel undervalued in the marketplace for what i know. I feel like .NET shops place great value on WCF and SOA but ignore OOP/DDD and design patterns. Everything is data centric. I'm not even thinking about the hordes of "drag and drop" coders out there...
Maybe this is just due to the economy or the part of the country i'm in (fort worth, tx). Should I bail on microsoft development, and if so, what could I move to that has the same pay and this style of development is more accepted or expected?
Thanks.
UPDATE. I'm closing this. The .NET community has gotten a bit better, although there are still lots of corporate jobs and developers that do things the old crappy way. My choice has been to switch to Ruby, regardless of the consequences to my career. It doesn't mean I won't do .NET/C# where appropriate, but I find the community, code, and tools better in Ruby overall. No offense to any .NET people, but this has been a hard, well thought out decision over the source of a couple of years. Thanks for everyone's input.