I’ve given a lot of thought over the past few weeks to application migration scenarios. I did a lot of this with the cloud when Windows Azure first launched in 2009, doing a number of blog posts and presentations about moving ASP/.NET code to the cloud. Now, I’ve been thinking more about moving applications to Windows 8, and given the choices and frameworks available today, I’m often asked what I would do in various situations. Let’s start with an overview of Windows 8, using this graphic from \\build that you’ve likely seen before: I originally intended this post to be about MVVM, the Model-View-ViewModel design pattern that everyone loves, but few actually use. It’s not because people think they’re doing MVVM but really not (although I hear this one a lot, too), it’s just that very few greenfield apps are being built and even the ones that are are either 1) too simple to consider a design pattern, or 2) it’s sacrificed to get to production in the least amount of time. I still believe creating testable, solid code around well principled design patterns (be it MVC, MVVM, or whatever) will yield the most benefit over the long term if there are anticipated modifications and maintenance needs. But in the short term or for small projects, it’s typically not a benefit due to longer development time and performance tradeoffs. (A few popular MVVM frameworks out there include Prism, MVVM Light, and Caliburn.Micro.) While creating a write-once run anywhere app won’t happen (yet), you can reduce the friction as much as possible. When moving to Windows 8 from Windows Phone, there are two primary objectives: adapt the UI, and change WP API calls to WinRT API calls. Here’s a great article on MSDN with more info on that. (Notice that one tip in the article is refactoring to MVVM.) For line of business applications, Silverlight, or WPF migrations, XAML and C# offers the easiest migration and new development experience, and leveraging the above frameworks or MVVM pattern can make that transition as painless as possible. If you’re lucky enough to do greenfield development where broad platform reach is the goal, there’s only 1 development choice: HTML 5. If you are a developer and not sold on the fact that HTML 5 is the development platform to know over the next 3 years (at a minimum), you need to embrace HTML 5. To that end, for Windows 8 development I’d start with frameworks like KnockoutJS (an open source, Javascript-based MVVM engine) and this post written by Dave Isbitski, my colleague. It’s also a good idea to look into PhoneGap, Sencha Touch 2, and KendoUI. In the next post along these lines, we’ll look into specific frameworks and integrating them into Win8 apps. Link roundup: \\build MVVM, the Model-View-ViewModel design pattern Prism MVVM Light Caliburn.Micro MSDN: Windows Phone to Windows 8 Migration KnockoutJS Dave Isbitski - KnockoutJS and Windows 8 PhoneGap Sencha Touch 2 KendoUI

A new series of Windows 8 developer events are coming soon! These are special two-day events, with a DevCamp on day one featuring a full day of sessions plus an InstallFest, followed on day two by a Hackathon with Lightning Talks where you can bring app ideas to life with Microsoft and community experts on hand to help.
Windows 8 changes everything. Combining the broad reach of Windows, best-in-class developer tools, a re‑imagined user experience, support for new chipsets, and a built-in store with industry-leading business terms, Windows 8 is the largest developer opportunity – ever.
Join us for free events with new sessions and hands-on opportunities designed to help you start building Metro-style applications for Windows 8 – today. We'll show you how to use Visual Studio to code fast, fluid, immersive, and beautiful Metro-style applications in HTML5/JavaScript, XAML/C# and C/C++. Your existing investments in these languages carry forward, making Windows a no-compromise platform for developers. Attend just one day or join us for two full days of learning. It's your choice.
DevCamp - Day 1 Events run from 9:00AM – 8:00PM
Our DevCamp covers Windows 8 Release Preview from top to bottom, featuring sessions that run from introductory to intermediate as the day unfolds. These sessions will be followed by an InstallFest to prepare your system for hands-on app development.
Hackathon - Day 2 Events run from 9:00AM – 9:00PM
Our Hackathon is an open Windows 8 code fest, where you'll put what you've learned into practice. Code to your heart's content, with Windows 8 experts available to guide you through every step of the process. It's the perfect opportunity to get your dream application underway, or to finish that app you've already started.
This full-day event will be filled with coding, sharing, plenty of food, and the occasional Lightning Talk on topics determined by your apps and questions. Bring your own laptop installed with Windows 8 Release Preview, your apps and your cool ideas and get ready to create!
Cities and Dates Separate registration for DevCamps and Hackathons is required
The choice is yours to join us for either or both days, but please register for each separately.
Seating is limited, so click the date links below (or call 1-877-MSEVENT) to reserve your seat today!
Location
DevCamp
Hackathon
Manhattan, NY
14-Jul
15-Jul
St Louis, MO
16-Jul
17-Jul
Brooklyn, NY
19-Jul
20-Jul
Nashville, TN
19-Jul
20-Jul
Los Angeles, CA
20-Jul
21-Jul
Rochester, NY
27-Jul
28-Jul
Mountain View, CA
27-Jul
28-Jul
Atlanta, GA
3-Aug
4-Aug
Ft. Lauderdale, FL
3-Aug
4-Aug
Redmond, WA
3-Aug
4-Aug
Dallas, TX
7-Aug
8-Aug
Chevy Chase, MD
10-Aug
11-Aug
Denver, CO
10-Aug
11-Aug
Irvine, CA
17-Aug
18-Aug
Boston, MA
17-Aug
18-Aug
Raleigh, NC
17-Aug
18-Aug
Reston, VA
17-Aug
18-Aug
Orlando, FL
17-Aug
18-Aug
Minneapolis, MN
23-Aug
24-Aug
Houston, TX
24-Aug
25-Aug
San Francisco, CA
24-Aug
25-Aug
Downers Grove, IL
28-Aug
29-Aug
Phoenix, AZ
7-Sep
8-Sep
Malvern, PA
14-Sep
15-Sep
Register today and join us for these fantastic (and free) developer opportunities.

My colleague Andrew put together a great post on the Windows Store, developing for Windows 8, and what you need to know to get started – including some great ways to get hands on experience. By now, most developers are aware that Windows 8 is available in a consumer preview, with a new release coming in early June. Windows 8 not only presents developers with a new environment, it also presents a new distribution channel via the Windows Store. Let’s dive into things: What The "What" portion of this post is pretty straightforward, namely the Windows Store. New to Windows 8, the Windows Store is the single place for consumers to find and acquire Metro style apps in Windows 8. If your app isn't there, users won't be able to find and install it, simple as that. You probably won't be surprised to find that we think the Windows Store is kind of a big deal. In fact, there's an entire official blog devoted to the store, which you just might want to bookmark. Why All developers, whether experienced Windows hands, HTML/CSS slingers, iOS/Android app developers, have a tremendous opportunity in Windows 8. The Windows Store will represent a huge market when Windows 8 launches, and if history is any measure it will grow rapidly. Windows 7 sold more than a half a billion licenses in its first 2 years after release. By some estimates there are more than 1.5 billion PCs running Windows today. Simply put, those who are first in the door to the Windows Store stand to profit handsomely by the visibility and prestige of being one of the first apps in the store when Windows 8 is released. What's more, Windows 8 Metro style applications allow developers to use familiar languages and UI paradigms, so it's easier than ever to leverage your existing skills. If you have experience with WPF or Silverlight, then building a Metro style application with XAML and C# (or VB) will be straightforward for you. If you're more of a web whiz, the support for building HTML5/CSS/JavaScript Metro style applications will help you to quickly leverage those skills to build awesome apps and games. And C++ developers are now also able to join the party, with C++ and XAML a fully-supported pairing for building Metro style apps. And if you're a website developer or iOS developer, we've even started providing resources to help you port your applications to the new platform: Website to Metro style app iPad to Metro style app How Hopefully, by this time you understand why you'd want to write a Metro style app and get it in the store. Next is the question of how. To start with, you'll need a copy of Windows 8 (the current release as of this writing is the Consumer Preview, which you can get here), and a copy of Visual Studio 11 (the current release as of this writing is the Visual Studio 11 beta, which you can get here). Next step is to head over to http://dev.windows.com/, where you'll find tutorials, downloads, and samples you can use to get started (not to mention performance best practices and store certification requirements). And if you're looking for information on making your app look great (and work well, from a UX standpoint), we've got you covered at http://design.windows.com/, including UX design patterns, downloadable design assets, and end-to-end guidance. If you learn better via webcasts or in-person events, you should check out our Windows 8 Developer Camps and see if there's one near you. If you're in the DC area, the local Public Sector folks are holding a series of Windows 8 events, including evening lectures, webcasts, and 1-day dev camps. Need some focused time to get started on your app? Join us for a local Metro Accelerator Lab, or Metro Friday Hackathon (currently running here in Mid-Atlantic and in Tampa, FL, but more are coming to other locations in the US east coast). There are Metro Accelerator Labs coming up in the following cities (for the east coast...if you're outside of the US east coast, check availability with your local Developer Evangelist): Tampa, FL (http://aka.ms/MetroLabTA) Atlanta, GA (http://aka.ms/MetroLabAT - I'll be there!) Boston, MA (http://aka.ms/MetroLabBos) Whichever you attend, lab or hackathon, you'll have focused time for coding, with access to Microsoft evangelists with hands-on experience building Metro style apps, who can help you with your ideas, questions, or roadblocks. Once you have your app idea prototyped and have a fairly clear idea of what's needed to finish it, you'll probably start thinking about submitting it to the Windows Store for review. As with the Windows Marketplace for Windows Phone 7, all apps in the Windows Store will have to undergo review to ensure that they meet the required performance and quality guidelines. At the time of this writing, access to the Windows Store is by invitation only, and you will need a token in order to be able to register for a developer account with the store. So the last part of how is "how do I get a token?" The best way is to attend an Application Excellence Lab, which is a 1:1 engagement with a trained Premier Field Engineer to review your application for performance, quality, and adherence to Metro design principles. If your application meets the review criteria, you will receive a token to register for the store. If your app still needs some work, you'll receive detailed feedback on what needs improvement, which means you'll have a better (and hopefully more profitable) app in the end. Finally, here are the suggested steps to get invited to an App Excellence lab: Create a really great Windows 8 Metro style app (or game) immediately. Get it as ready as if you were submitting to the store. If you know your local DPE evangelists (maybe because you attended a Windows camp training), get in touch with them and ask them to nominate your app for a lab. If you don’t know your local evangelist, leave a comment here or email the following information to win8aefb@microsoft.com: Your name City & country where you are located Brief description for your app (no binary, screenshot is optional, but only send if the screenshot is public, non-confidential stuff ) Wait for our response letting you know where the closest app excellence lab will be and how to get in touch with the right evangelist to nominate you. Enjoy developing for Windows 8!