A Developer Perspective on Windows Phone 8

June 21st, 2012 by Colin Eberhardt

This blog post takes a look at what Windows Phone 8 (WP8) means for Windows Phone 7 (WP7) developers and the Microsoft development platform in general.

This has been a big week for Microsoft; Monday saw them unveil the new Surface tablet that runs Windows 8. This was followed up yesterday with Window Phone 8 being revealed to the crowds at the Windows Phone Summit (You can see a video of the keynote here).

From a consumer perspective, unfortunately WP7 devices will not be upgraded to WP8. However, they will be upgraded to WP7.8, which will give them the redesigned start screen. There have been very few details about what else WP7.8 will include, but it isn’t likely to include that much.

The image above shows the new re-designed WP8 start screen. I’ll talk a little bit later about some of the interesting new features of WP8, but for now let’s cut to the chase, what does WP8 mean for us developers?

NOTE: Some of these statements are based on speculation / educated guesses. I will indicate when that is the case.

UPDATE – It looks like some of these assumptions are wrong, or at least might be wrong. I have posted a brief updated on this blog post. As noted above, some of the statements noted below are based on assumptions. I have left them here because I still am not entirely sure about what is or is not correct, but in the interest of providing a balanced argument i would urge that you read my update after this blog post.

WP8 devices will run all the 100,000 apps that are currently in the marketplace. The marketplace will automatically re-compile WP7 apps for WP8, meaning that your time investment in your WP7 app is safe. It also gives future users of WP8 a well-populated app store from day one.

WP8 has the same runtime architecture as Win8. Porting code between Win8 and WP8 should be very easy – apart from screen size concerns. However, Microsoft has so far only explicitly mentioned that C++ / DirectX code will work almost seamlessly between Win8 and WP8, however, I think it is most likely that the same will be true for XAML-based applications.

WP8 will not support Silverlight directly, rather, WP7 apps will be recompiled by the marketplace to provide a form of emulation. This is something of an educated guess. The fact that WP7 apps are recompiled via the marketplace in order to run on WP8 indicates a lack of Silverlight runtime on WP8. Also, this is the same story with Win8, WinRT/XAML is similar to Silverlight/XAML, yet subtly different.

Migration of you codebase from WP7 to WP8 will involve the same set of issues as migration from Silverlight to WinRT. Again, based on the above assumptions. Whilst on the surface Win8 XAML / WinRT looks and feels pretty similar to Silverlight or WPF, migration is not a trivial task. See Morten’s series on migrating from Silverlight to WinRT, or my own article on writing cross platform WinRT / Silverlight apps.

This is NOT the same story as iOS or Android. I’ve seen a few people on Twitter try to make the point that with the recent announcement of iOS6 that iOS developers will be experiencing the same process. I’m afraid this is not the case. With iOS you can support older versions of the OS within the same codebase via simple ‘if’ statements, whereas in Android you can support libraries to bring newer UI features to old devices. In contrast, the differences between WP7 and WP8 are fundamental and architectural.

So why such a radical change? For a good overview I’d recommend reading Sorry, But Microsoft Screwing Windows Phone Fans Is the Right Thing To Do”, in a nutshell WP7 is based on Windows CE technology, which significantly limits the hardware capabilities. Whereas the WP8 architecture provides support for up to 64 processors, a much higher screen resolution, NFC (think contact-less payment).

I’ve been using WP7 for about a year now, and I really think it is a great phone. I also have a iPhone and can honestly say that WP7 is a better phone for business users. The support for multiple mail accounts, a much better email client, live tiles, a very good calendar app make it a great device to use on a day-to-day basis. I don’t doubt that WP8 will be even better, especially with true multi-tasking, the company hub (with device management), the improved start screen and more.

However, I think Microsoft developers are feeling a bit burnt right now. Let’s not forget that WP7 was a reboot, dropping Windows Mobile 6.5. To reboot once again in such a short space of time is not good news. And as for Silverlight being dropped in Windows 8, together with other plugins, only for MS to do an about face and announce that the plugin-free IE10 browser would support Flash – that’s not good news either! At the time the message from MS evangelists was that Silverlight still lives on in WP7, but there is no the denying in Silverlight.

Ex-MVP Josh Smith wrote a few months ago “Does anyone actually care about WinRT?”. I’ve observed something similar myself (see “WinRT – where’s the buzz?”).

Microsoft is going to have to work hard to win the support of the development community that were right behind them on Silverlight and WPF (I was part of the WPF Disciples group, that was re-branded as XAML Disciples when Windwos 8 was announced, but has since become rather quiet). So many people I know really like the look of WP8, Windows 8 and Surface, but not many seem to be chomping at the bit to develop for them.

Regards, Colin E.

23 Responses to “A Developer Perspective on Windows Phone 8”

  1. Anonymous Coward says:

    Learn PhoneGap and get to deploy to several platforms from the same sources – I’m sure support for w8/wp8 will be there soon. Use qooxdoo for your app and you have an as rich and powerful framework/widget library as anything else. And forget about platforms using incompatible technologies.

    I started programming professionally some 15 years ago. MS technologies were never easy or cheap, and never lasted for more than a few years. By comparison, what I learned about JavaScript ten years ago mostly still holds, JSE hasn’t changed beyond recognition, and neither has the servlet API. Sure, there was no CSS back then, no GTK+ on Windows, and TCP wasn’t the native network transport protocol, but these are all things which are here to stay, whereas DCOM,VB6, Silverlight, WinForms, MS’s incarnation of Java are all gone for good. .Net may live on for some time, but .Net is like Windows – you’re locked in, and your ecosystem is closed.

  2. Yordan says:

    The story have a few important issues which should be clarified:
    1st – Is Windows 8 Phone supporting Flash ?

    And If it does – why this is a bad thing ? ( because the author is a lame or just because he is one of these unreasonable Flash haters ?! )

    2nd – Will Windows 8 Phone support devices which is supported in normal version of Windows ?

    ——————————————

    Just about the Flash – I would like to light the author that running fully Flash and AIR platform on Windows 8 Phone devices would means a jump ahead of the rest competitors.
    It is about having a few billions of games, media and applications which you can have completely free from the day one.
    Apple store? Android market? – Please don’t make me laugh, Flash applications which is free is about 1000 times the sum of the Apple and Android market altogether, and every day is compiled about a few hundred thousands more.
    Those which ignoring the power of Flash/Flex are probably just an ignorants.
    If I was Google or Apple I would even leave a few thousands programmers just to make my OS fully Flash compatible.

    Nowdays having half or even non-flash compatible OS on the market is like having nothing.

    What is so interesting on your platform when it can not browse/play the most free and inovative applications out there ?!

    • WP8 will not support Flash as a web plugin, you can be pretty sure of that. Current the Mobile AIR platform does not support WP7. This is most likely because with WP7 you develop using Silverlight, to create the Mobile AIR runtime I assume a more low-level programming model would be required. There is a chance that WP8 might make this possible. Which in my opinion would be a good thing.

  3. Vader says:

    Wahoooo, here we go again. My Windows Mobile App, Loan Calculator, was the best-selling business app in Microsoft’s app store for 4-5 months. I was about 30 downloads/sells away from breaking the threshold of getting money from Microsoft when Microsoft sent me an email saying they were shutting down the WinMobile app store.

    I didn’t renew my $100 developer subscription, and I never got a cent for my app, even though it actually sold in the app store for another year after that email.

    I carry a Windows 7 phone, but I don’t develop for it outside of work. Not because I can’t, I’ve actually got many years of C# development and both Silverlight and WPF experience, and some professional Windows Phone 7 experience. I don’t develop personally for the WP 7 phone because I am not going to pay the 100 bucks to be able to develop an app. I want to pay my $100 bucks when my app is already developed and ready to earn money.

    I’m excited about the Windows phone 8. My biggest complaints (voiced loudly in the forums) about Windows Phone 7 was that there was no support for native-code type things like sockets, camera video support. Hurray for a return back to C++. Hurray for a return to DirectX. But especially, Hurray for the ability to develop my code on the desktop and port it later to the phone without having to pay the subscription fee for the phone developers club and not make any money while developing the app. I’m not going to pay that subscription fee again until my app is developed and ready to earn money.

  4. C. Hoell says:

    I am by no means a fan of Microsoft. Having dealt with their total lack of support or consideration for the developer base has been a bane of my company for years.

    However, this article is pure bait and switch. Certainly highlighting in a ‘pink’ note that states in the most unclear manner possible that ‘some assumptions may be wrong’ and the need to click onto another page to get the explanation (strongly recommend? please…) is a weak effort at correction. What should have been done was integrating the incorrect assumptions and corrections into the original article — a much clearer, concise way to admit a mistake.

    This tells me that you cannot be considered serious when it comes to any kind of review of any product, not just Microsoft’s.

    • It was not intended to be ‘bait and switch’. I deliberately published the update as a second article to draw attention to it. Like I said, I am still unclear about the technology direction of WP8. Time will tell.

  5. pejman says:

    thanks

  6. carleton says:

    I am software developer working for a tiny ultra conservative company. We write software for business. We entered the mobile market 12 years ago with the Palm, management felt like they got burned when the palm went away 7 years ago. They have stayed out of all the changes in the last 5 years due to uncertainty.

    We are a Microsoft C# shop, with the fact that Windows Phone 8 is the same core OS as Windows 8, I seeing it a no brainer… When we develop the new application for Windows 8, we will be able to leverage a vast majority of the code in the mobile version, too. It makes less than no cents to develop a mobile app in a different language where we have to maintain multiple skill sets, multiple development environments, multiple code bases, etc.

    I think there are THOUSANDS of companies in the same boat we are in today. I think what will happen is all these companies will finally take their existing Microsoft application and rewrite them for the new world. Businesses, not individuals, will start buying up Windows Phone 8 for their employees, the way they purchase Blackberry’s today.

    This is what put Microsoft Dos/Win 3.x as the #1 OS, folks got it at work, learned it, purchased that for the home. I see it happening in the mobile market, too.

    In the end, each and every time, it is not the individual that drives things, but big business!

    • I really do hope that Windows Phone 8 makes an impact in the business world, as I mentioned I am a WP7 user and am a big fan of this device. It has some really great productivity features, the mail support is simply fantastic.

      Working out how Windows 8 will work for LOB is difficult. Again, I am a big fan of the Metro UI, but want to wait until I see Microsoft LOB apps moved from desktop to Metro. It’s worth pointing out that the new metro-styled VS2012, is not actually a proper Windows 8 Metro app!

      Anyhow, if with Windows 8 and Windows Phone 8 we see some stability, some parity, and most importantly some uptake, I will be happy in the end ;-)

      Like I said, I have written more than 80 blog posts on XAML technologies. I *do* really like this stuff!

      • Graeme says:

        VS2012 actually scares me a little with regards to Metro applications and their interfaces. VS2012 has managed to set back the user interface experience by about 12 years to the days of DOS shells. Most of the problem probably comes from a design team that got lost in ideas and lost contact with reality. But some of the disaster seems to have been because of them trying to introduce metro design philosophies. The lack of contrast and color was probably a complete misunderstanding of the Metro design philosophy, but removing all texture, depth and space delimiters seems to be a mantra of the Metro philosophy. These may seem like gimmicks, but at a subconciously level texture, depth and delimiters (ie boxes, line separaters etc) make crowded visual displays vastly faster to parse and allow you to quickly focus on what is important and relevant.

        I have no idea what the metro office will look like, but if they follow the same design principals as VS2012, much of which was dictated by Metro norms, it will become microsofts greatest launch disaster ever.

        • I have not used VS2012 yet, but the screenshots that I have seen put me off a bit. The problem with Metro is that on the surface it looks so simple, no chrome, bright colours, fluid movements, distinctive typography. However, when you try to apply these principles you find that despite the simplicity, it is far from easy!

          To my mind Windows Phone 7 is Metro done very well. Almost everything else I have seen is not. Possibly the worst example I have seen is the website for the Windows 8 UX Virtual Training. It is horrendous!

    • Dan Sutton says:

      Hmmm… I can’t see this failing, really: quite apart from the fact that the mobile platform and the desktop platform are converging, there’s also the larger fact that for the first time, one will be able to take a phone or tablet platform and develop business-oriented applications for it without being tied to a manufacturer’s app store. Additionally, you’ve got all the connectivity stuff (for database servers, etc.) that comes built into the Windows frameworks: developers in general should be thrilled by this. Oh, and also, there’s now an announcement by Microsoft that you’ll be able to program these things in C if you want to, thus not be limited simply to .Net programming, assuming you want to write low-level stuff for them.

  7. Dragan says:

    I bought the wp7 the day it came out and I’ve spent a lot of time advertising the XAML stack within my company starting with Silverlight 2. But with the insane handling of Silverlight in the last year I have lost my enthusiasm for the company. I think that Microsoft took for granted the army of loyal .net developers and thought it could do what ever it wanted, and in the end it would be able to compensate by opening its doors to web developers. The future will be the judge of that assumption. For me, I still create LOB applications using Silverlight/WPF stack because it solves that problem domain really well, but I have no intention in creating any apps for Surface or the new phone. My contract expires just in time for the next version of the iPhone and I’m planning on getting one. I wish them all the best because of my current job, but my long-term focus is iOS development. I’ll never support any new technology coming from them as I did with Silverlight.

    • I understand what you mean. WPF / Silverlight and even WinForms are still my technology of choice for LOB apps. Whilst Surface makes Windows 8 really look like it could be a viable tablet OS, with real sales potential, there will always be the 9-5 people working on a traditional desktop.

  8. mtcoder says:

    So wait I have to have a small transition from silverlight xaml to win RT xaml which really isn’t that hard, already starting working on what I need to learn. And on the flip side for my small effort I now get to program for native win8 apps, xbox apps, win8 phone apps, windows tablets, and I don’t have to do anything to port them over or make it work. (Assuming you build in screen resolution and device capability testing) Point at hand though for a common business application it’s write once get on all the devices. Yeah the win 7 phone code not getting to go with win 8 phone code sucks but it is a big difference in the whole code model. And well not like there are 100 billion users of the phone anyways. No need to screw over what windows 8 and cross platfrom abilities it’s built for just to support a hand full of users. For developers it’s really not a big issues, with the exception of XNA. But really I think the focus is to shift to html5 / javascript games anyways for your lighter weight games, and for your bigger class games, you aren’t really coding them with XNA anyways. Not to mention a dozen of really good quality free code engines that port to it anyways. And I will say there is a large transition time for sure, but it’s one of those we really need to shift off a code base that is 30 years old and start moving forward. I mean just last year everyone complaining Microsoft not innovating enough, so they make some key innovations and every is complaining they are innovating. Which has always been Microsofts cruch, how do you move forward while keeping backwards compatiability for things 30 years old.

    • You make some good points here. I agree, transferring skills from WPF => Silverlight => WP7 => Win8 => WP8 is pretty easy. However, transferring code is not so easy, and some of us have quite an investment in code. I’d recommend reading “The Manifold Blunders of Xaml–Part 1: Version and Platform Hell”, I have had similar experiences with trying to maintain a product across multiple XAML platforms.

      I do however totally respect Microsoft for ensuring that I can still open within Visual Studio, and build projects that I wrote more than a decade ago.

  9. angol says:

    “Microsoft is going to have to work hard to win the support of the development community (..)”

    Clean speech. Only this would be necessary.

  10. Tio Luiso says:

    Hey, great post

    I don’t worry about Silverlight > XAML path. There might be some issues, sure. But I believe they will be minor.

    However, the thing I keep worrying about is XNA path. They keep telling us that XNA is dead for Windows development. It is a very bold move. One that shouldn’t be done carelessly. For starters, I haven’t been presented an alternate path. They say you can develop 3D metro apps in Win8 with C++ / DirectX. But if you are managed developer, you’re quite screwed, aren’t you?

    But, the thing is, they say WP7 apps will port to WP8. Is that about XNA apps too? What’s the message here?
    - Will they recompile managed / XNA games to C++ / DX? is that conversion even possible?
    - Is there going to be a WP8 XNA? I believe this would be the easiest path migrating from WP7, but then that would introduce fragmentation

    Well, I guess time will tell, but would appreciate GREATLY some info from MS

    Thanks for your post, anyway

    • Good point about XNA. As far as I know, Win8 only supports XNA in desktop mode, i.e. legacy-mode. With Win8 metro it is all DirectX.

      We’ll have to wait and see whether WP8 supports XNA as well as DirectX.

      Personally, I have my doubts. It seems unlikely that they can bring WP8 closer to Win8, yet support Silverlight/XAML for an easy WP7 migration experience, and support XNA, plus DX!

      It is worth reading my update post, a few reliable sources have clarified things a little. But agreed, MS really need to provide some information about the development story.

  11. [...] A Developer Perspective on Windows Phone 8 – Colin Eberhardt gives a developers eye view of the changes in Windows Phone 8 which will impact developers. [...]

  12. [...] A Developer Perspective on Windows Phone 8 (Colin Eberhardt) [...]

  13. Graeme Bradbury says:

    As much as my inner geek loves the technology, the phone sales are so low as to be not worth relearning when it would be more profitable to learn something else :-(

Leave a Reply