Code through the pain Ladislav Mrnka's professional blog about software development

23Sep/120

I have already wrote the article about Microsoft strategy to annoy as many of their current Windows Phone customers as possible by announcing that their phones will not receive upgrade to Windows Phone 8 and that they will only receive Windows Phone 7.8 with a new fancy home screen - that is still the only officially announced feature for the upgrade. But somebody in Microsoft believes that annoying customers is not enough so they decided to annoy developers as well. The rest of this article is about features in Windows Phone 7.8 and about situation around Windows Phone SDK 8.0.

So what exactly will be in Windows Phone 7.8?

The customer reaction to the announcement came quickly and multiple requests for new features were started on Windows Phone User Voice. The top request is really simple: More Windows  Phone 7.8 features. Who can best know what features from Windows Phone 8 can be ported to Windows Phone 7.8? Surprisingly Microsoft so it is not nice to see little bit arrogant response by admin Mobile Guru (from September 8, 2012):

As you know, Windows Phone 8 is a generational shift in technology, which means that it will not run on existing hardware.

BUT we care deeply about our existing customers and would like to know SPECIFICALLY what features you would like to see on 7.8 and VOTE for the one that you want most.

Why anybody needs to post this type of comment as the response to the most requested suggestion? It is quite natural that customer will agree on some answer like: specifically all which can be enabled on Windows Phone 7.x devices. Why should people with less then 6 months old Nokia Lumia vote which feature they want the most? They of course want as many features as possible because they have almost a new phone.

The response has another quite disturbing meaning. It looks like Microsoft hasn't decided yet what features will be provided to current Windows Phone customers. How can developers work on Windows Phone 7.8 when they don't know what features to implement? It either means that new features will not be part of the Windows Phone 7.8 update and come later or that Windows Phone 7.8 will come long after Windows Phone 8.

Let's try the new Windows Phone SDK 8.0

It looks like sacrificing the current Windows Phone customer base was not enough. Microsoft is now trying to annoy developers - people who can help Microsoft with success or failure of their new platform. I wanted to try the new Windows Phone 8 SDK. I started a new project in Visual Studio 2012 by using Install Windows Phone SDK 8.0 project template. The project by default only contains web page for downloading Windows Phone 8.0 SDK:

Windows Phone SDK 8.0 Discovery page

I chose Download Windows Phone SDK 8.0 and expected to get the SDK but instead this page appeared:

Windows Phone SDK 8.0 Download Page

This was unpleasant surprise because I was sure that I read on RSS that the first preview of Windows Phone SDK 8.0 will be available on 12th September so I started to search on Google and I found the explanation on The Windows Phone Developer Blog provided by Todd Brix. The SDK preview is not public.

Developers must register into developer preview program and Microsoft will select who will be eligible for receiving the SDK. What is even worse the goal is to provide the SDK only to developers of selected most-downloaded applications for Windows Phone 7.x - not to all Windows Phone 7.x developers who are interested in the new SDK and even not to loyal MSDN subscribers (who have all Windows Phone developer account as part of their benefits). New developers have probably no chance to get the preview of SDK and it is hard to say if they will receive any SDK version prior to launching Windows Phone 8. What is the official reason for this strategy against developers? Todd Brix explains the reason in the mentioned blog post:

I know that many of you want to know why we simply don’t publically release the full SDK now. The reason is that not all Windows Phone 8 features have been announced and our SDK includes comprehensive emulators that allow developers to test apps against a wide range of Windows Phone features. We recognize that this is a different approach to delivering tools than we’ve taken in the past. Our goal is to generate as much Windows Phone 8 excitement as possible to attract new customers when phones go on sale. This is one of many steps we’re taking to help give you what you (and we) want most.

So not all features were have been announced yet? That is very interesting statement so let's check what does it mean:

  • Nokia, Samsung and HTC have already announced and showed their new Windows Phone 8 devices but we still don't know what these devices will be able to do because Microsoft didn't announced all new features of the operating system yet.
  • Let's check the response on the User Voice once more: "and would like to know SPECIFICALLY what features you would like to see on 7.8 and VOTE for the one that you want most". OK, how we are supposed to do that when we don't know all features available in Windows Phone 8? How we are supposed to choose what features we want most? The original suggestion is about porting Windows Phone 8 features to Windows Phone 7.8. Looks like communication between Microsoft and rest of the world lacks some coordination.

I wonder what stunning features will Microsoft announce to defend this step against loyal developers and why these features were not yet announced? That is complete contrary to approach used by Apple or Google when working with their developers community. If there is really something to hide Microsoft should offer SDK only to registered Windows Phone Developers under some NDA. The current approach is really not something I would imagine to hype a new platform and interest as many developers and enthusiast as possible. I have suspicion that there are much likely some unofficial reasons like:

  • The SDK is bad or buggy.
  • It is not what we have expected.
  • Microsoft is artificially trying to push developers back to Windows Phone SDK 7.1.1 compatible with both Windows Phone 7.5 and Windows Phone 8 to extend the life of the old platform. This is my personal bet.

Applications written in the older SDK will work on Windows Phone 7.5 but they will also work on Windows Phone 8. That is also the explanation provided Todd Brix in the comment under the mentioned article but Mr. Brix missed the main reason why are developers looking forward to Windows Phone SDK 8. No one really cares about developing applications for Windows Phone 7.5 and Windows Phone 8. Windows Phone 7.5 has become dead platform for new development performed by most individual developers and smaller companies since announcing Windows Phone 8 without possible upgrade. Developers are looking forward to developing applications running on Windows 8 and Windows Phone 8 and for this they need to explore the new SDK.

I have already mentioned in my previous article that many developers will not be able to build applications for both Windows Phone 7.5 and Windows 8 / Windows Phone 8 platforms. Only larger companies will have resources to develop for both the newer and the older platforms. Small companies, individuals and enthusiasts will most probably choose only one and for example for me the obvious choice would be the new platform to target both upcoming Windows 8 and Windows Phone 8. Not providing the SDK for Windows Phone 8 on time may push current Windows Phone developers back to the older platform and extend interval when Windows Phone 7.5 will receive many new applications but it will most probably not convince new developers who looks forward to WinRT core.

As pointed by Marc Gravell (I believe that the name match will not be coincidence) in comment to the mentioned article, this decision can also affect component developers who will not be able to prepare they libraries or new components for the official launch of Windows Phone 8. It will also slow down little bit the adoption of the new platform.

I hope that Microsoft will at least start releasing some information about the new Windows Phone platform to show how it relates to WinRT, how much code can be shared between both platforms and if there is anything special we must consider when designing application which should run on both platforms. That was the main reason why I wanted to try it this week.

Conclusion

Not providing SDK to all developers is not a real issue in most cases. Customers will not be probably affected at all because Windows Phone 8 devices should support applications for Windows Phone 7.x so Windows Phone Store will contain 100k+ application when Windows Phone 8 will be officially launched and current Windows Phone 7.5 users can even profit from this decision. It is mostly disappointment for developers. Is a famous: Developers, developers, developers! really just a mockery?

Developers can still develop for Windows Phone 7.5 and Windows 8 together if they use Portable Class Libraries for their core logic and implement only separate UI layer and application logic layer (interaction with OS services) for each platform. Even with Windows Phone 8.0 SDK the UI layer should be probably implemented again as well to get most from PC / tablets and phones. The problem is that targeting Portable Class Library to Windows Phone 7.5 removes some features otherwise available for both .NET 4.5 and Windows Store apps (.NETCore). Development for Windows Phone 7.5 also requires Visual Studio 2010 - it is not integrated into Visual Studio 2012 required for creation of Windows Store apps.

P.S.: There is one more disappointment. I have tried to post comment on the Windows Phone Developer Blog but it requires to be logged in. Surprisingly I could not log in with my Microsoft account (formerly Windows Live ID). It demanded registration of some new account just for that blog. What a shame ...

Posted on September 23, 2012 by Ladislav Mrnka
Filed under: Microsoft
Leave a comment