.NET on the Xbox

In December 1999 I became employee #3 on a Microsoft team tasked with designing and delivering .NET Framework support for smart devices. I’d been part of strategy discussions on how we ought to support .NET in the space “below” PCs, so I was thrilled when the project got the green light. I signed up on the spot, little knowing what I was getting into. Much confusion and entertainment ensued.

The project was pretty much unscoped. Just which devices to support, for instance. What processors to target. Which application scenarios to focus on, and therefore, how much runtime platform functionality would be needed. Which operating systems to run on. And so on. A few niggling little details. We spent many months thrashing through all of this. Mike Zintel, our Development Manager at the time, writes about those early days here.

In the end we succeeded in building a platform - we called it the “.NET Compact Framework” - and shipped it on the Windows Mobile OS (nee Windows CE), which is the core OS that powers Windows Mobile Smartphone, Pocket PC, and a broad range of other devices. Our sister team helped us deliver comprehensive support for Visual Studio, so that developers could reuse their existing skills with little switching cost. We built in support for the x86, ARM, MIPS, and SH processor families, along with a surprisingly large amount of runtime functionality: enough to run what Mike fondly called “real apps”. And we got adoption, too: there are now hundreds of apps out there. I’m very proud to have been part of the effort.

Nowadays Mike manages the .NET Compact Framework team, doing a much better job of it than I ever did. And early this morning he posted something very interesting on his blog:

…working with the Xbox team has been among the most enjoyable and productive cross group work that I’ve done. I know that my team and the XNA team within Xbox, have been burning the midnight oil to allow us to demonstrate the feasibility of games written in managed code running on a .NET CLR on a final 360 dev kit. And I know that we’ve demonstrated the same game binary (almost the same; oh so close) running on the 360 kit, Windows and on Windows Mobile.

See Mike’s full blog post here, where he talks a little more about the rationale for pursuing a project like this, and hints at how it might add value to Xbox. The Xbox mention is near the end of the post. And see here where he describes support for an Avalon subset, WPF/e. .NET CF is not a toy platform.

This is a significant milestone. If Microsoft chooses to productize this it could open up a whole new wave of software for the Xbox, making the platform targetable by a much broader swath of application developers.

Mike’s post implies research is still underway, which means many technical and business decisions have yet to be made. I’m crossing my fingers and hoping the team gets to add another smart device - a really smart one - to their list.

Update March 16:

5 Comments

  1. Jason N. Gaylord said,

    March 14, 2006 @ 11:36 pm

    That would be cool if .NET can run on an XBox 360. Then I can convince the boss to let us have one in the office. We could “control” the servers from a split scrren view and have Halo (etc) on the other. :)

  2. Andreas Kraus said,

    March 15, 2006 @ 6:38 am

    Indeed very interesting, I should go and order my xbox 360 slowly :D

  3. Cordell Lawrence said,

    March 16, 2006 @ 1:48 pm

    Very cool. Will this be a fully featured version of the .NET Framework though? and exactly what version will it be? 1.1, 2.0, 2.x ?

  4. Oshoma Momoh said,

    March 17, 2006 @ 11:54 am

    Hi Cordell, I have no insider knowledge; just gleaning what I can from blogs. So I can’t answer your question with certainty. That said, based on Mike’s post and Jason Zander’s reference (http://blogs.msdn.com/jasonz/archive/2006/03/13/550984.aspx) I believe it will be some fork of the latest .NET Compact Framework, rather than the full .NET Framework. Plus additional runtime libraries targeted at game development. Why: .NET CF has better CPU portability, lower RAM usage, and a much smaller OS API dependency than the full .NET Framework. All these things make it a much easier fit from an R&D perspective. Lastly, it’s generally easier to grow software up to a new functionality bar than shrink it down to fit constraints it was not originally designed for.

  5. My Own Pirate Radio » MS Should Deliver a Handheld Entertainment Device said,

    April 14, 2006 @ 12:40 am

    […]             The impending availability of .NET Compact Framework on the Xbox got me thinking: Microsoft really ought to deliver a handheld entertainment device that supports games, music, and video. Between Apple’s iPod and Sony’s PSP, Microsoft is clearly missing the party. Why not join in with a device of their own? […]

RSS feed for comments on this post