The last week I was lucky to be attending the Microsoft Build conference in Redmond. In this post I’ll be sharing my experience. In essence it comes to this: Although I was a bit disappointed by the level of the sessions, I learned a lot about the Windows 8/ Windows Phone 8/ Windows Azure platform and I’m convinced that this ecosystems has great potential and that gives us all the tools we need to build some great apps. (Good job Mr. Ballmer, I already sound like you)
The first day it became really clear that Microsoft is all in when it comes down to Windows 8 and Windows Phone 8. Part of their success will depend on the quality and availability of apps. This is why they really need the developers to work on this. To emphasize this, they gave all the conference attendees a Surface RT tablet and a Nokia Lumia 920, which I think is a great marketing move.
Azure These days it is hard to imagine an app that doesn’t need connectivity. Azure provides a scalable solution for creating connected services. However, the learning curve for creating these was quite high. Especially for developers that normally work on apps and don’t have a whole lot of experience programming services. Also, when deploying a site to Azure, there is quite some stuff to configure. There are situations when you don’t care about all this and just simply want to deploy a service or site to Azure. With Azure Web Sites it is now possible to deploy a site with minimal friction. One of the supported features is deploying a site by using GIT, this is similar to deploying to App harbor or Heroku.
Another new feature is Azure Galleries, which can be used to add additional services to your app, like MySQL or even MongoLabs. Galleries can be accessed through the Management Portal and after activating a service, it can be accessed from the Azure project.
Windows Phone The previous version of Windows Phone was the first version and although they really did a great job, it had a couple of problems. Probably the biggest weakness was the slowness and poor quality of some of the apps. When it comes to mobile devices a step back is done in terms of technology. The .NET CLR runs great on modern desktops, but the Just In Time compiling proved to be a problem on mobile devices, because this adds a couple of seconds of extra startup time for the apps. They solved this by compiling the app when it gets uploaded to the app store. They call this compiling in the cloud, which is using a technique similar to using NGEN. However, there are special cases in which all the apps have to be recompiled. Because of a framework update for example. Obviously, this would be less than efficient on the mobile device and could take a really long time. To work around this, they have introduced a new intermediate language called MDIL, which is basically another intermediate language in the step between MSIL and machine code. The difference between MSIL and MDIL however is that MDIL is mostly machine dependent. The stable parts of the code are compiled to machine code, but the parts that could change are left open and remain being JITT-ed on the device. This greatly improves the startup of apps and this is really noticeable on the Lumia 920.
Also in Windows Phone 7 applications where restarted by default when the user opened a new instance. This wasn’t good for the users perception of the phones responsiveness. Especially with apps like Facebook and Whatsapp this could be annoying. They introduced a new setting called Fast App Resume, which can be configured by the application. If this is enabled, instead of restarting the app, the app is suspended in memory and later resumed when the user reopens the app.
Culture I also got the feeling that the Microsoft Culture has really gone through a big change the last years. They seem to embrace open source more every year. It is really good to see technologies like Node JS, Hadoop, Mongo DB, etc. being supported by Microsoft, which gives us even more options for selecting the best solution.
I think Microsoft has successfully reached their goal for Build 2012, because as a developer and end user I’m really excited about the new platform. The Surface RT and the Lumia 920 really offer a smooth and integrated user experience. As a developer the bar to developing new apps is really low and at the moment I’m already doing some prototyping for a Windows 8 shopping app that I would like to showcase to one of our customers.