Finally, we’re getting to the meat of the matter. Windows Phone 7 Series really made major headlines when it was announced a few weeks ago, but despite the big splash, little to nothing was revealed about the developer environment. Similarly, it was unclear how third party applications would integrate with the operating system. At MIX10 today, Microsoft revealed all. Update: A lot more information, including photos and videos, at Engadget.
The key to Windows Phone 7 Series development is Silverlight 4. We’re not talking some cut-down version, but the real deal – exactly the same runtime environment on your phone as you get on your desktop. The same goes for XNA, but we already showed you that earlier. Both XNA and Silverlight 4 are fully hardware accelerated on the phone.
Microsoft also confirmed that developers will not have the ability to develop native code – development is limited to Silverlight 4 and XNA. As Ars Technica notes, this poses problems for Adobe: Microsoft has no problems with offering Flash on Windows Phone 7 Series, but Adobe will have to put the Flash virtual machine on top of the Silverlight one. Delightfully funny.
Applications can either be offered “stand-alone” (i.e., iPhone-style), or, more interestingly, they can be integrated into the existing hubs. For instance, Microsoft showed an image editing application that was part of the Pictures hub, which makes sense when you think about it. Why churn through a list of applications when you can just find it in the most logical place: near your photos? Shazam, for instance, is integrated into the Music & Videos hub.
While in-app purchases will not be supported initially, Microsoft will add this feature in future updates. Redmond does offer the ability to offer a single version of an application in the Marketplace that is both the trial version as well as the full version. In other words, you can buy the trial version (with features turned off, or time-limited, whatever) and then upgrade to the full version without having to delete the trial app and download the full app (the iPhone way).
Sadly, a lot of desired information was absent, too. While Microsoft showed off push notifications, they did not say a thing about multitasking, which means it’s still a big guess how it will work (if at all).
Adobe has already got the basics in place to generate all kinds of backend bytecodes from their own bytecode (usually refered to as ABC). Retargeting .net’s bytecode could be fairly easy to do with their Alchemy/LLVM backend – though I’m not sure how viable that is for distribution. I suppose they’d need a .NET port of LLVM.
I also wonder if Microsoft will be willing to make an exception for certain ISVs like Adobe. If they see the mobile space as a race for developers, I wouldn’t count on it.
BTW, I’ve often wondered if an open source Flash player would make sense implemented on top of Mono/Moonlight. Maybe Adobe could take that up. Hey I can dream can’t I?
What you’re trying to say is that maybe they need to add C# support to LLVM.
I’m not sure – if Silverlight assemblies contain C# code, then yes (I’m honestly not sure, though I was under the impression that silverlight would use a bytecode format, not raw source). If it is a bytecode format, they could use the same trick they are currently using for ARM on iPhone, which is to parse their ABC bytecode, and convert it into Silverlight bytecode. For iPhone they are doing AS 3.0 -> ABC bytecode -> ARM binary, only the last step – bytecode to binary, is done through LLVM.
“Fairly easy” as in “not going to happen” if you ask me. They are not able to support their current platforms properly even without the need to target a VM.
Flash would always remain second rate compared to SL. Adobe is stupid, but not that stupid to go down this route.
BTW: Better longer video: http://video.golem.de/handy/2950/microsoft-zeigt-windows-phone-7-au…
I don’t know if I’d say it’s stupid, any more so than building your entire business on Microsoft’s other platform – Windows. Is it more stupid to build on Silverlight than Windows? You can be sabotaged or made a second class citizen in either case.
Adobe is in the business of selling production tools. How the app I develop is run on the platform is less important. Just look at their (brilliant) hack for iPhone.
As long as what I develop in Flash CS5 or Flash Builder will run on a Windows 7 Phone (or iPhone, or Android, or…), how they got it work work is less important (performance matters too, but that’s a different issue), from a bean counting perspective (where production costs matter more than technology).
I do care how they do it though, because I just happen to like technology.
“…but despite the big splash, little to nothing was revealed about the developer environment.”
more revealed here (though not all at the show)
this should help clear the development parts of this us. I would write more but i am on my way out the door, so here are some links. I will post more later is there are questions.
http://channel9.msdn.com/posts/LauraFoy/Windows-Phone-7-Keynote-Ann…
“The Windows Phone Developer Tools package contains a toolset that will be familiar to Visual Studio developers for Windows Phone 7 development, including a Windows Phone 7 Series emulator integrated into Visual Studio so you can see your app in action and debug it as you would with any other VS project. Also included are Silverlight and the XNA Game Studio. Expression Blend for Windows Phone, which brings Blend’s immersive Silverlight designer-focused environment to building immersive mobile experiences…”
http://developer.windowsphone.com/
http://developer.windowsphone.com/windows-phone-7-series/
http://www.microsoft.com/downloads/details.aspx?FamilyID=2338b5d1-7…
Edited 2010-03-15 23:01 UTC
Back when Windows 95 came out us Macheads used to say “Windows 95 is Mac 89” meaning that MS always lags behind Apple and catches up several years later. Its looks like MS will catch up with iPhone Generation One after just four years – of course by then iPhone generation Four will be out and the boat might have sailed. We shall see.
ya, MS really missed the boat here. it’s not like they didnt have the underlying tech to pull it off, win CE 6.0 had been around for a while (were up to release 3 now of the 6.0 series). all in all, weather it was short sidedness or just lack of interest, it seems MS these days doesn’t have the future thinking a company of it’s scale should. But then again, there is something to be said about watching other reinvest the world, seeing if it works, and then jumping in and saying “me too!”. each approach has it’s pros and cons.
Who is going to invest on developing on C# while the rest of the phone world can be targetted (to multiple devices) developing on C++ or Java?
It means if you have a company that invested a good amount of money into making a java or C++ app, porting it to WP7 will be more expensive..
Well, anyway, WP7 will probably go the way of the zune..
Yes, because having an odd programming environment really hurt that phone Apple tried to market once. Nobody made any apps for it, iirc.
Oh wait.
Many if not most iPhone developers use C++, which is a pretty familiar language with a lot of support libraries written for it. I don’t think it matters much in the case of the iPhone anyway, since it sold so much that developers would use brainf–k only to be able to write apps for it.
But WP7 is another completely different issue… it’s almost certain that it’s not going to sell as well as the iPhone, so why would Microsoft force programmers to use .net? Amongst both desktop application and game developers, .net is really unpopular.. almost no applications for it exist and no serious game studio uses it for anything other than *maybe* scripting (and they use mono, not even official .net). Only indies hoping to make money on the 360 use it. Hell, no one uses java either..
So, yeah, bad choice.
For what it’s worth, you can port XNA games to iPhone with MonoTouch, so in theory you can build for Windows, Xbox, Zune, Windows Phone and iPhone from the same software stack.
That sounds like an interesting alternative, so i guess only time will tell if developers will actually care about it..
They have C/C++ low-level code in portions but your interfaces are all ObjC. Whether you’re working in Game Kit, Map Kit, Message UI, UIKit, Address Book UI [all parts of Cocoa Touch] you’re learning Objective-C.
And that’s probably what Thom is referencing. Sure your C/C++ existing libraries can be leveraged in ObjC/ObjC++ but you aren’t going to not work in Cocoa Touch interfaces without learning ObjC.
What is so odd about C, Cpp? Billions of lines of code would disagree with your assessment.
With Symbian, Meego, Android, WebOS and IphoneOS you write an app in C or Cpp with OpenGL and have it run on all those platforms.(99%+ code sharing)
On WP7S you can’t do that. MS isn’t supporting open standards, AGAIN.
He means Objectice C, I believe.
I’ll answer the multitasking question since I’m at MIX:
No there is no multitasking for 3rd party apps. They’re taking the iPhone approach to this one, really played up the importance of battery life.
HOWEVER there is a service where a 3rd party app can provide background music even when it’s not running (i.e. Pandora or Last.fm in the background will be possible).
What it revealed publicly what version of Windows CE this was based on? Rumours had it it would be Windows CE 7.0, released later this year…
I’m surprised that there isn’t support for the VB.NET syntax. I remember Microsoft saying that VB.Net and C# would be developed together with the same API feature set. This is going to tick off some VB developers that want to develop for the Windows Phone platform.
Looks like I have some new APIs to play with this weekend.
Confirmed: Marketplace will be the only way to get apps on Windows Phone 7 Series
http://www.engadget.com/2010/03/15/confirmed-marketplace-will-be-th…
Actually Microsoft has said they allow low level programming on certain partners like phone makers etc. This would mean Flash is coded on native mode not managed like most common apps.
So you want to be a developer?
Apple iPhone
You will be tied to the Mac platform and have to pay $99 a year to have [limited] access to your own phone. If you don’t have a Mac, you will need to purchase one. Your code will be moderately portable, but Apple can put you out of business on a whim. Your app will only be available in countries that Apple supports.
Windows Phone 7 Series
You will be tied to the Windows platform / Visual Studio / .NET. If you don’t have a copy of Windows, you’ll have to purchase one. Your code will not be very portable and Microsoft can put you out of business on a whim.
The Web
You can use any editor you want, on any platform and support any device you choose that has a web browser of any kind. You owe nobody nothing for the privilege of developing on the world’s single greatest platform. Your code is highly portable and support across different vendors and devices is constantly improving; you do not rely on a single vendor for your distribution means. You are free to launch your own competing device if none of the existing devices suit you. Your content is likely to be around a lot longer than Apple or Microsoft if you look after it properly.
No thanks.
The “web” is probably the world’s worst “platform” (oh dear…) to develop.
Not everything is web-sites or some crappy applications with latency worse than in 1982.
Edited 2010-03-16 15:09 UTC
In other words, you can buy the trial version (with features turned off, or time-limited, whatever) and then upgrade to the full version without having to delete the trial app and download the full app (the iPhone way).
Incorrect, on the iPhone you can download one binary, and using the in-app purchases, a developer can unlock a “trial” app into a “full” app ….