Beginning of the year is always a good time for reflection and speculation on what is to come, so I thought I would put a few thoughts out there on what the technical forecast for 2009 looks like to me. I’ll do it in the context of some of the key technologies I work with on a regular basis.
WCF: Because this got great adoption from the outset, I don’t see a huge change in the rate of adoption of WCF. What I do see is more and more use of the REST programming model that came available in .NET 3.5. Unfortunately, I predict that more people will end up using that model instead of SOAP-based messages than probably should, just because it has the hype right now. REST makes a lot of sense for externally exposed, resource-oriented services to put a minimum bar for consumption of data out there. For secure, reliable enterprise services though, you need the additional protocols that the WS-* stack gives you. Consumption of a SOAP based service is also still far easier due to simple code generation of the proxy. So internal services should still be using SOAP in my opinion, but REST makes perfect sense for public exposure of data, whether read only or read-write.
Cloud Services: With the Azure platform announced and PDC, the .NET Services piece of that which has been available for a while in CTP form in its previous incarnation as “BizTalk Services”, third party vendors building lots of cloud-like services, expansion of the mobile application market with the explosion of iPhone and the chasing touch devices out there, cloud services will certainly grow in importance and early adopter attention, but since a released Microsoft variant will not come until possibly the very end of 2009 or early 2010, most production projects will probably not accept the risk of building against the platform for at least 6-9 months.
WF: One word: hesitation. WF has had very low adoption as it is because it requires a pretty significant shift in the way you think about designing your systems as well as how you go about that. Couple that with a number of rough edges in the programming model and the fact that you have to build a fair amount of infrastructure around your solution to run it effectively in production, and you can understand the slow adoption. It is still a vary rich platform for building complex business applications, but certainly can use some improvement. The good news is, that improvement is coming in .NET 4.0, in a big way. At an SDR I attended in the Spring of 2008, I commented to one of the product team members that I was very pleased because they were fixing or improving every single aspect of the WF model that causes difficulty for me or my customers with the current version. The bad news is that to do that, they are making some pretty sweeping changes in the programming and even hosting model of WF. That doesn’t mean that you will have to rewrite anything you build today, there is an easy interop story to run 3.5 workflows and activities in the 4.0 model. But it does mean that if you start building on 3.5 now, you will have to learn a set of skills that you will then have to relearn in about a year to start building things the new way. It is not 100% relearning of course, but the changes are sweeping enough that I would guess that 60-70% of the time you spend on the workflow part of your application will be done at least slightly differently in 4.0 than in 3.5.
WPF: Adoption should start to take off more than it has in 2008 due to a combination of factors. One of the impediments are the tools, and those are not going to change substantially until VS 2010 comes out (don’t know if that will be its name, but it is reasonable speculation to guess that). However, a bigger impediment has been the learning curve, and having companies willing to bite the bullet to acquire those skills. Competitive pressure, both for the companies and the developers themselves, will continue to mount quickly though as more companies ship nice looking WPF apps that demonstrate the ways you can substantially alter the user experience by using WPF. That will help force people to learn the WPF way of doing things to stay competitive. The other factor is Silverlight adoption. With rapidly growing interest and adoption of Silverlight, companies will quickly realize that the skills investment in either WPF or Silverlight cascades to a large degree into the other technology, so that will allow them to build the best kind of app for their users without needing to master two completely different UI skill sets. And finally of course, the closer we get to better tools, the shorter the period of productivity hits you will have to endure by being on WPF, so that barrier becomes less as well.
Silverlight: Although there have been some media hits with a public announcement of dropping Silverlight, there have been many more success stories out there due to Silverlight 2, and I think people are really seeing the light there. Some stuff still belongs in web pages and web forms. But for rich interactive applications that are web delivered, you can’t beat Silverlight as a platform when you are a .NET developer. Add to that all the cool new stuff coming to enhance Silverlight development in .NET 4 and VS 10, and you have even more reason to make this a first consideration for any interactive web application. The only caution is similar to what I said about REST services. Don’t overuse Silverlight just because it is the shiniest new toy. WPF or Windows Forms smart client apps still make sense for a broad assortment of internal corporate type applications.
Economic impacts: OK, the market sucks and we are all feeling the impacts in one way or another. But the fact is that the world already runs on software. And short of a total global economic collapse, we can’t stop making or at least maintaining software. So I think there is room for plenty of work in our sector even if things get bad. And if you can align yourself with markets that are doing well, then you should be able to weather the storm.
So that is about it. Nothing too startling or earth shaking there. But a view through my eyes based on what I see from working with lots of customers around the globe.