2012 in review

.NET, Blend, JavaScript, MVP, MVVM, Phone, Silverlight, Technical stuff, Windows 8, Windows Phone, Work, WPF
See comments

It seems it was only yesterday that I was writing about starting my 4th year at IdentityMine, and here we are now, more than a year later.

The year 2012 has been particularly interesting for all of us in the tech space, and particularly for us who are observing the Microsoft brand. Now, those of you who know me also know that I am an undying optimist (something that is sometimes mistaken for fanboism), so I will make a big effort in adding a dose of realism into this billet. Nonetheless I think we can all agree that this year was a year seeing Microsoft react, with more or less success, in a few areas where it had been sleeping (and slipping, ha ha) for a few years, notably the slate and the phone markets. We can argue endlessly to know if these ventures will be successful or not, but honestly I don’t have (a) the time and (b) the interest to do so. Bottom line is, no one knows for sure what will happen next year (and the next and the next). Let’s rather discuss what happened.


2012 is probably the year where Silverlight, as a brand, was the least talked about in the tech circles. Interestingly though, we still see a lot of Silverlight (for the desktop) projects going on. It’s clear that some opted out of it following the PR fiasco but it is also clear that there isn’t a really satisfying alternative to build a certain type of applications. I am still a strong believer that the promises held by Silverlight are valid and (for the most part) fulfilled. And if it transitioned from being actively developed to being merely supported (for another many years, more in fact than for most technologies available today), it was not because of technical reasons but clearly because of a political fiasco at the management level. Interestingly, too, the main actor of this fiasco now left Microsoft (as we will discuss later), but not without having inflicted a lot of damage. Because of these actions, many good people left (sometimes with a bitter feeling, as is proven by some very disillusioned messages in social media), others moved out from their previous role to another within the company (where at least they continue to do good work for our benefit, so kudos), and of course Silverlight changed its course.

On the positive side however, 2012 has also been the year where XAML has confirmed its role as a leading UI technology, and this on multiple platforms. If we have XAML on the XBOX (see below) and on phones, it is clearly because Silverlight for the desktop paved the way, having created a portable, lightweight and elegant environment. The tools too (notably my personal favorite Blend) and the patterns (notably MVVM) are proving themselves to be available for all the supported platforms. Even though XAML is not completely stable yet, and some differences remain between these platforms, the fact remains that a large portion of a developer’s skills are portable and allow us to get started very fast on any XAML-based platform. The reason why we were able to develop a large number of Windows 8 apps in a short period of time is because of XAML and of the patterns and tools. Our learning curve (given that we were already experts in XAML) was super short. And the result speaks for itself, as some of the best rated apps in the Windows Store today have been developed by IdentityMine.

Being a Silverlight MVP

2013 is my 7th year as an MVP and my 5th year as a Silverlight MVP. That might seem a bit weird, and I have been hoping to see the creation of an expertise dedicated to XAML frameworks in general. In my experience, it is very rare that a XAML developer limits himself to just one platform. Nowadays, people who develop for Silverlight often develop for WPF too, people who develop for Windows Phone often develop for Windows 8 too, etc. However creating a new MVP expertise is not that easy, there are many considerations. In the meantime, Silverlight MVPs are strongly encouraged to contribute to community efforts (blogging, developing, teaching, speaking) on all XAML frameworks. So really, even if the title is “Silverlight MVP”, we are all “XAML MVPs” already J

Of course I am honored to get the MVP award once more, but I hope it is clear that everything I do, I do it for its own reward. Speaking at conferences, writing articles on my blog and in magazines, this is a huge pleasure in itself. And developing MVVM Light gives me the pleasure of knowing that this code is used by thousands of developers worldwide, and that it powers some of the most popular apps in Windows Store, Windows Phone store, XBOX and other platforms. I often said that MIX06 and the presentation of XAML changed my life, so thank you to everyone who makes it possible!

Windows Presentation Foundation

We see a continued (and even increasing) interest in WPF-powered applications for Windows desktop. That’s not really a huge surprise, considering that WPF is still the best technology to build desktop applications, also for Windows 8. Of course these application won’t run on WinRT devices (such as Surface RT). But WinRT apps are not intended as a replacement for full blown desktop apps anyway. Following the Metro guidelines (yeah I said Metro, sue me), WinRT apps should concentrate on fulfilling just a few tasks, while a desktop app rather delivers a complete suite of features. I have always seen WinRT apps as a kind of companion to desktop application, with which they may even share some code (thanks to C#, XAML and MVVM), but I don’t think many are going to abandon the development of their desktop client to replace it with a WinRT app. Instead, the WinRT apps are, in most cases, going to be developed side by side with more traditional applications.

2012 has confirmed this opinion, and we see a lot of projects started in WPF these days. The uncertainties around Silverlight’s fate probably played a role too, as well as the new improvements in .NET4.5 (such as the introduction of async/await), and the interaction with hardware (such as Kinect, to name just one). Of course this makes us very happy, seeing as we love WPF and have a huge experience with this technology.


The development of a new breed of apps on the XBOX platform has also kept us very busy this year. Because it’s still a private SDK, only a few firms have been invited to develop for this platform, and we have kept rather silent on which apps we developed for which clients. It’s worth mentioning that it is XAML/C# under the covers, and that we are able to use the well-known development workflows, tools and patterns: MVVM (and MVVM Light), design time data, Blend, Visual Studio, etc.

Windows Phone

2012 was a big year for Windows Phone in terms of technology and excitement. The release of Windows Phone 8 and of the new devices by Nokia, HTC and Samsung were some big highlights. I had the privilege of getting a developer device and started to use WP8 as my secondary device early on. It’s only when I got my Nokia Lumia 920 at the Build conference that I transferred my SIM card to it and made it my primary device (upgrading from a Lumia 900). I really love the Lumia devices. I find the size of the device really great (I always loved big PDAs and phones, having had a series of Palm devices earlier, including the LifeDrive that was really big and heavy). The Lumia 920 feels extremely solid and smooth to the touch, even without a case. Note that I ended up buying a cyan Incipio ultralight shell, but it is really only because I missed the cyan color (the device we got at Build was the black version).

Windows Phone 7.5 devices will be updated (in the next few days) to version 7.8. Some in the press talked about a slap to existing users, because their devices wouldn’t be updated to the full Windows Phone 8 system. However we need to consider that the full WP8 requires some hardware features that are not available in the earlier devices, such as NFC. Note however that some lower end Windows Phone 8 devices won’t have NFC either. What I am getting at is that Windows Phone 7.8 won’t be that different from Windows Phone 8, once you take the hardware limitations in account. I think Microsoft shouldn’t have named it 7.8. I think it’s just a symptom of bad marketing, really, one more sign that Microsoft should pay more attention to naming and versioning.


In December, Lumia Phones started to get sold in China, and there was apparently a lot of buzz and devices sold out really fast (of course we don’t know how many devices were actually available, but seeing the lines at the Nokia store, it’s easy to see that there was a LOT of interest for these phones). This is not really surprising considering that Nokia has always been a very strong name in Asia (and in Europe and Africa for that matter). For US based observers, it is easy to forget that, seeing that Nokia lost a lot of ground there against the iPhone. For the rest of the world however, Nokia is still a synonym for quality and affordable phones. Apple is losing ground in many places. Of course right now Android is really strong but I think that the really exciting UI and the lack of fragmentation are going to push Windows Phone to be a serious contender. In any case it is definitely going to be an exciting time for Windows Phone enthusiasts, one where we will see the few big names that are still missing make a welcomed appearance to the platform. And maybe it will be the year where the press realizes that Windows Phone does not have Instagram (yet) but there are other apps that are exclusive (or simply much, much better) to Windows Phone, such as the Office suite, Skydrive, the online/offline Nokia maps (and the awesome Drive app on Lumias), and more. Sure there is a long road ahead in terms of marketing, but we now have the material, both software and hardware, to make a real impression on the public.

Windows 8

I installed Windows 8 on my main machine (on a secondary partition) during Build 2011 and I started using it as my primary OS around March this year. Early on, I wrote about the “split personality” issue in Windows 8, especially when you use it on a laptop (or a desktop, which I have not used in quite a long time). In time, I find that this is much less of an issue then when I started using it.

I am currently using the following machines in my everyday work:

- My Nokia Lumia 920 which is pretty much always with me.

- My Dell Precision, 15.6’’. This is a powerful machine, kind of a desktop replacement, but still portable enough that I can travel with it.

- The Samsung Slate 7 that we got at the Build 2011 conference.

- The Microsoft Surface that we got at the Build 2012 conference.

Before I go on, yes I am aware that I am super lucky that IdentityMine sends me to these events.

Apart from the Lumia, obviously, I am using Windows 8 on all machines. The Surface is a RT, so I cannot code on it. This is the only reason why I don’t think I will ever travel only with the Surface, even though the battery life is fantastic, and it is an awesome device. I just need a device on which I can code, even in vacation. Anyway, I find that Windows 8 is really convenient to use on all these machines, with touch or with mouse/keyboard. On the Surface, which I use primarily with touch, I arranged my apps neatly on the start screen. On the Dell, however, I spend very little time on the Start screen: In, type to search, click to start the app, out.

Steven Sinofsky’s departure

Right after Build, I flew to Malmo, Sweden, for the Oredev conference that takes place every November. There I sat with Scott Barnes (@MossyBlog) for dinner and we talked about various things. Notably, I mentioned that I had been surprised not to see Steven Sinosfsky at the Build keynote. Neither him nor the IE team were on stage at that occasion, in the contrary of most previous such conferences. I really thought I would see them gloat and repeat how wonderful IE is, and how HTML is the savior of civilization. I told Scott that I was wondering if that was the beginning of the end for Steven, and that I was not sure the board would ever select him as CEO, given that he is not a team player.

A few days later, the news came: Sinofsky was fired from left Microsoft (to this day it is not quite clear what exactly happened. Personally, I think he was thank-you-very-much’ed by Steve Ballmer and then told he couldn’t continue to divide Microsoft like he had been doing until now. The official announcement, of course, talks about mutual understanding.

I am both happy and worried to see Sinofsky go. Worried because, like or dislike him, he was an efficient project manager in his division, a capable engineer, and he showed himself able to take an bad product (Vista) and turn it into something pretty awesome (Windows 7). But I am also happy to see him leave, because I think he has caused a lot of damage within Microsoft. He has consistently undermined the efforts of the Developer Division to promote .NET and of course caused the change of strategy around Silverlight, because he felt it was threatening Windows. At this point in time, however, with all the talk of cross platform, with technology spanning between devices, what Microsoft needs is a unifier, not a divider. Someone who is able to make the divisions work together. Sinofsky was definitely not this person, and now he is gone.

HTML and the reality

The last thing that was apparent in 2012 is the reality check that HTML5 developers had to face. In 2010 and 2011, HTML5 was sold to client application developers as the panacea, the cure to all the issues that one could face. Of course experienced developers have been promised the famous “write once run everywhere” many times before, and have been disappointed every time. One big difference this time was that, for political reasons, Microsoft also pushed HTML as being a way to share code between the web and Windows 8.

Unfortunately it is not that simple. HTML and JavaScript alone won’t cut it, you need some frameworks to assist you, like every web developer knows. For most, it is jQuery. But if you use jQuery, you don’t have integration with the Windows 8 features. Microsoft also came up with a framework named WinJS, but if you use that, you cannot share that code with the web, and thus you lose the advantage. So you have to put up with the inconveniences of JavaScript (weak typing, bad tooling) to gain… well not much really.

In fact, in terms of cross-platform coding (at least on Microsoft devices), we can argue that XAML/C# is better, since you can share a good portion of code between Windows Phone and Windows 8 apps, for instance (and even with Silverlight or WPF applications). This requires discipline and some experience but it can be done. Windows Phone 8 doesn’t support HTML/JS for native application development.

Two interesting cases were brought to my attention in 2012:

The first one was of course Facebook. Mark Zuckerberg was quoted saying that betting on HTML5 was Facebook’s biggest mistake, and scrapped their HTML-based mobile application, going back to a native app. Of course there was a lot of discussion around the fact that maybe Facebook’s engineers are not the best and maybe they made some errors in architecting their app and their services, which is very possible. Still, the same engineers are reaching better results with a native app (different code for each platform) than with a single code base. That’s a sign that the promises of HTML5 are not fulfilled.

The other one I noticed was the firm Polyvore who dedicated a whole blog post to their issues with an HTML5 based application. Eventually they had so many troubles that they, too, decided to scrap it and start fresh with Objective C, even though they had no experience with that language. The post’s title says it all: “Web Developer Admits: Objective-C > HTML5”.

I think that after the craze of 2011, people are realizing (again) in 2012-2013 that really there is no silver bullet in software development. Yes you can create cool experiences in HTML/JS but that takes work and it is not going to run everywhere magically. And if you want to create great experiences, you’ll need to resort to per-device customization, which is going to take time and effort and eventually be so painful that it is easier to just go native and have a different app for each device type. It’s good to see more reason coming back in the discussion.


2012 was a really good year for conferences. I was lucky and honored to be asked to speak at quite a few: TechDays Belgium, TechDays Netherlands, Microsoft Tech Conference in Baden Switzerland, Microsoft Days in Sofia Bulgaria, Shape in Zurich Switzerland, Microsoft TechDays in Dubai UAE, NDC in Oslo Norway, Oredev in Malmo Sweden. I also spoke to some user groups in LA and Philadelphia through Live Streaming, talked on some podcasts, and attended the MVP Summit in February, and the Build conference in October, both in Redmond WA. Meeting people from all over the world is always a great pleasure for me, and this year was no exception.

In conclusion

Well that was a lengthy post wasn’t it :) It took me quite a long time to write, too, and gave me a good occasion to reflect on last year’s events and achievements. I always said that I am blessed to get paid to do what I love, and it is still true after all these years. Software development is an act of creation, and since the triumph of mobile computing, developing for these platforms has been even more fun than usual. What we do is important, we are shaping the future of software, the future of user experience and doing our best to make the life of millions of people smoother and easier. It is a noble goal.

Happy New Year 2013 to all, and happy coding!

Previous entry | Next blog entry

Comments for 2012 in review