As a Microsoft developer with 10+ years experience, I have seen many Microsoft technologies come... and many subsequently go. As the years go by, I find it hard to keep up with the seemingly splintering array of technologies available to us as developers. It seems that Visual Studio 2005 will introduce one way of doing things, only to be replaced by a different way in Visual Basic 2008, etc. When I look at the project template choices under Workflow projects in VS2008 I see totally different choices than VS2010. So here is my quesiton...

Given the array of .NET technologies released since .NET 3.0 (including LINQ, WCF, WF, WPF, CardSpace, EntityFramework, etc.)... which ones of these are actually being used (i.e. taken hold) and which ones are going the way of the Microsoft do-do bird so to say? I'm trying to brush up on my skills and the last thing I want to do is spend 3 months learning a technology that Microsoft was all about 3 years ago but never ever caught on in the business world.

Also, when I think of the .NET framework 1.0, 1.1 and 2.0 (and the technologies therein) I think of a toolchest that has hammers, nails, 2x4's, etc... all the components I need to build what I want. But when I think of these later technologies (Entity Framework, WPF, WF, etc.) it seems like they are more "pre-fab" walls, etc - things that are great if they meet your needs exacty but very "custom" and therefore "dangerous". In other words, it seems like you could easily paint yourself in a corner by basing your project designs on these more advanced layers of the framework. Any thoughts from anyone?


P.S. I am new to this forum and just now seeing the "poll" feature. Maybe I should start a poll to see how many developers are actually using each of these technologies in their actual work environments!!