App Migration, Design Patterns, and choices for Windows 8

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

Windows 8 Developer Camps and Hackathons – Coming July to September

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.

DevRadio Episode: #beatthegu at TechEd

Andrew, Peter, and myself in the latest DevRadio show! Abstract: In today’s episode Developer Evangelists Andrew Duthie, Brian Hitney and Peter Laudati recap the “Rock, Paper, Azure” – (#BeatTheGu) challenge from this year’s TechEd as well as how they built a Windows 8 App for the competition. Tune in for this lessons learned session on what considerations and features Andrew took into the design of the app. Next Steps: Step #1 – Download Windows 8 Release Preview and Windows 8 SDK Step #2 – Start building your own Metro Style Apps for Windows 8 Step #3 – Contact a Developer Evangelist in your area and get your Windows 8 App published! If you're interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information: Websites: Getting started with Metro Style Apps How to Sell Your Apps and Make Money in the Windows Store Attend a Windows 8 Developer Camp and Hackathon in your area! Build your bot for the next “Rock Paper Azure” challenge Blogs & Articles: Andrew Duthie’s blog Brian Hitney’s blog Peter Laudati’s blog Windows 8: What I’ve Learned – Timers Using setTimeout in a Windows 8 app Videos: Microsoft DevRadio: Building and Publishing Great Apps in Windows 8 "The Windows 8 Platform Overview for Metro Style Apps" with Jerry Nixon “Windows Store and Building Metro Style Apps” with Michael Johnson, Jeremy Foster & Alice Pang “Metro Design & UI” with Jeremy Foster and Matt Harrington “Metro Development with JavaScript, XAML / C# with Michael Palermo and Jerry Nixon Download: MP3 (Audio only) MP4 (iPod, Zune HD) Mid Quality WMV (Lo-band, Mobile) High Quality MP4 (iPad, PC) Mid Quality MP4 (WP7, HTML5) High Quality WMV (PC, Xbox, MCE)

Getting an App in the Windows Store: What, Why, and How

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, 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, 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 ( Atlanta, GA ( - I'll be there!) Boston, MA ( 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 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! 

My Apps

Dark Skies Astrophotography Journal Vol 1 Explore The Moon
Mars Explorer Moons of Jupiter Messier Object Explorer
Brew Finder Earthquake Explorer Venus Explorer  

My Worldmap

Month List