The technology industry changes a lot. In fact if you use Microsoft technology it seems like it changes every season. You start out feeling like you're finally getting the hang of programming MS-DOS through interrupts, when along comes Windows. Then you start to get the hang of Win16 and DLLs… which becomes Win32… and then comes along OLE… which becomes ActiveX, we discover Visual Basic but the Internet takes over and we're briefly diverted to JavaScript and DHTML, then Microsoft start developing frameworks for Java and so everyone jumps on that bandwagon. Then by surprise they make a huge anouncement and we start all over again with .Net. Couple of revisions later we get told that the APIs we're using in .Net will be made obsolete in favor of some new technologies - Windows Presentation Foundation to name but one. And this happens all in the space of about 12 years.
Now given it takes a good few years to develop a decent product, it sometimes feels like you're trying to stand upright on a moving rug that just won't stop moving. In fact it sometimes feels like this might just be a deliberate ploy to stop ISVs from making money. It looks like competition through distraction.
Microsoft is a huge company. They certainly do have direction, they certainly have the concepts right, but the implementation can sometimes seem like it's stabbing in very dim light. They're really so big that they have a huge playground in which they can play lots of different games and see which one lasts the longest and performs the best. Usually they're forced to release intermediate technologies simply to stay relevant and stay in the market.
I think WPF, WCF, WWF and all those W acronyms are great technologies and are definitely the future. If this is what comes out of a decade of attempts, then that's a whole lot better than being stuck with text mode DOS screens and using escape sequences to make pretty colors.
Does this mean we should start all over again every time Microsoft has a new idea? Of course not. For ISVs the most important thing they should spend their time doing is creating an asset that makes money. If you want to hammer a nail into a wall, you pick up a hammer. If every time you pick up the hammer someone hands you a new one, or you sit waiting for a zero gravity automatic hammer to become available, you'll spend a whole lot of money and time and you probably won't have anything to hang that picture on. For an ISV this can be a fatal mistake.
Competitors and market forces ensure that we stay on the bleeding edge of technology. But it's always important to keep in mind the customer: The users drive the requirements, not the latest technology.
I will certainly start introducing bits of WPF and WCF into my applications. But only when it makes sense, and only a component at a time. I certainly won't be throwing away 8 years of development on a product so I can rewrite it using the latest technology, because who would that be serving?