Don't Do Azure Cloud (or any Development) on Your Own!
It seems like every time you turn around as a developer there's a new technology you have to learn just to stay relevant. Moving applications to the cloud gets a lot of attention from management because they see it for the possible cost savings. What they don't see is the amount of effort required on the part of the development team to make it happen. Microsoft provides a program that seeks to give developers the tools, training, and testing they need to get an application deployed to any number of Microsoft platforms, including all of Microsoft's cloud offerings -- Microsoft Platform Ready (MPR).
MPR is all about getting you the right resources to bring a solution to market faster. Microsoft categorizes theses resources into three major areas under the headings develop, test and market. Once you identify a specific platform to target, you can begin to focus on what it will take to get from start to finish. Microsoft recognizes the importance of developers and has invested heavily in a multitude of training resources to ensure they have what they need to build applications targeted at a long list of platforms.
Over the years, Microsoft has consistently delivered some of the best tools available for developers along with the training and resources to smooth out that steep learning curve. Visual Studio 2010 is easily the most popular integrated development environment (IDE) on the market today. It supports a wide variety of languages and provides teams with the ability to take advantage of the latest software development methodologies.
Todo: How to Take Advantage of what is Offered
The first thing you have to do to get started is sign up for the program at the MPR website. It's free and painless if you already have a Windows Live ID. Even if you don't have the Windows Live account, it only takes a few minutes to get one. There are a few things you'll be expected to have once you get ready to sign-up, including a company name and a website. The next thing you'll need is a name for your application although you can use anything including Test App.
Once you finish the registration process you'll have access to a wealth of tools and training. The place to start is the MPR home page. There are a few things to keep in mind as you register and add apps. The MPR site attempts to present information pertinent to the application platform you specify. If you are looking to build a Windows Phone app, you should expect to see applicable content presented to you about developing for Windows Phone. Figure 1 shows you what questions you'll need to answer when registering your app.
Figure 1 Registering an App
You can always add other apps for different platforms if you want to learn about developing for another target. This is probably a good point to mention the different platforms available through the MPR program. Figure 2 is a screen shot from the sign-up page and shows what you will see when you start the registration process.
Figure 2: Platforms used
Training: MPR Access to Training
Microsoft offers a wide range of training materials, many of which are free. The Jump Start videos for Windows Phone provide a great foundation for anyone looking to get up to speed quickly with developing for the platform. Microsoft's Channel 9 website hosts these videos along with both the slides and code presented. There are a number of other Windows Phone related videos on the site as well including the Windows Phone 7 Development for Absolute Beginners series.
There are programming guides for each platform. The Programming Guide for Windows Phone takes you through each step of developing an app using how-to steps and code snippets. Code samples provide a great learning tool to help you see how to accomplish specific tasks. For the Windows Phone platform there are a multitude of fully functional sample apps for you to choose from. You even have a language choice between VB or C#.
There are a number of step-by-step guides to help you get your development environment configured properly including one for installing the Windows Phone SDK. The Microsoft Developer Network (MSDN) family of sites hosts most of this type of information and provides searchable content along with relevant links at the end of each article. It really comes in handy when you need information on how to test applications requiring dynamic data.
You might be the type that likes to just sit and read the documentation. If so, you might find the Class Library Reference for Windows Phone a good read. There are quite a few technical documents with titles like "Execution Model for Windows Phone" and "Frame and Page Navigation for Windows Phone Guide". Microsoft has also stepped up their presence on both twitter (@WinPhoneSupport) and Facebook (windowsphone). The amount of information for the other supported platforms is plentiful as well.
Other training resources include things like the Visual Studio 2010 and .NET Framework 4 Training Kit. This resource includes material covering major functional pieces such as Windows Communication Foundation (WPF), Windows Workflow, Windows Presentation Foundation (WPF) and lots more. There are presentations, hands-on labs and demos to help get you up to speed on a wide range of technologies. Be sure to check out this Channel 9 video for a good summary of available Visual Studio training materials.
Microsoft's cloud offerings in the form of Windows Azure, SQL Server Azure and Office 365 overlap with many of the other platforms. There are tools for helping you get a better understanding of how the different products work together and specific training as well. The Windows Azure virtual lab provides a virtual training experience where you can stop and start to accommodate your busy schedule. You'll find a host of other training resources on the Windows Azure Developer Center website.
Tooling: Getting the Free Tool You Need to Get Started
If you're a developer and have never used Visual Studio 2010 before, you've really missed out on a truly powerful environment. Microsoft offers a number of ways to put Visual Studio in your hands, from time limited trial versions of the full product to the free "Express" versions. For Windows Phone there's a special Windows Phone Developer Tools download containing everything you need to get started including Visual Studio Express for Windows Phone (Beta) and lots more. If you already own Visual Studio, there's the Windows Phone Software Development Kit (SDK)
If you're looking to move an app up to the Windows Azure Platform or connect a mobile app with Microsoft's cloud, you'll get a jump start there as well with a 30-day Windows Azure trial. The Windows Azure Toolkit for Windows Phone is hosted on Microsoft's Codeplex.com site, providing a much broader level of support than a simple community download. There's even a link to the Windows Azure Toolkit for Windows 8 on the same page. For Windows-based apps there's a Windows Azure Tools for Microsoft Visual Studio to help you integrate your desktop or server apps with Windows Azure.
Virtual machines are a great way to try out a particular platform or tool without the need to install everything on a dedicated machine. Microsoft has a number of virtual machines available for download to help you test different technologies this way. There's a Visual Studio 2010 virtual machine, which includes Team Foundation Server to make it really easy to try out that technology. The HyperV version runs on Windows Server 2008 R2. Other downloads are available for Microsoft Virtual PC for Windows 7 and for Virtual PC 2007.
Testing: Testing for Your Applications
Testing is as much a mindset and a methodology as it is a process. Most large-scale software projects use some type of automated testing to check their code. Unit testing is one of the most basic approaches to testing code, and Microsoft Visual Studio fully supports this technique in a number of different ways. In fact, there are entire methodologies (Test Driven Development or TDD) built around the idea of testing first. TDD is a branch of agile development, which Microsoft fully supports. Scrum is another agile software development methodology, which has full support in Microsoft's Team Foundation Server product.
Visual Studio Application Lifecycle Management (ALM) is a product offering targeted at either large-scale development efforts or a large team of developers. It's made up of a number of different products with Team Foundation Server at the core. Visual Studio Test Professional is a version of Visual Studio tailored to individuals directly involved in the testing or software quality assurance of a project. Microsoft Test Manager is another product in this suite designed to manage the running of test cases outside of the Visual Studio environment, utilizing both physical and virtual environments.
The Microsoft Platform Ready Test Tool is a generic name for the test tool you must run for any application to determine if it meets the requirements of the MPR program. Each platform has a different set of requirements and tests that must be accomplished. The MPR Test Tool provides a guided process to ensure that all tests are satisfactorily completed. You'll find informational videos explaining how to use the MPR Test Tool for each of the different platforms.
It's important to understand the requirements for each platform before you get started with the testing process. For Windows Phone apps there are a number of things your app must have, including the use of a minimum of four Windows Phone features. The app must also fit into either the Business or Tools + Productivity categories in the Windows Phone Marketplace. There are complete details on the full requirements for each platform available under the Test heading on the MPR site. Microsoft also provides a modest amount of telephone support to assist you with testing or any other problems you might encounter along the way.
Once you've run your application through the MPR Test Tool process you'll have a report detailing just how well it performed. If deficiencies are found, you'll have the opportunity to address them and then retest if necessary. In some cases you might choose not to address a specific item that the MPR Test Tool identified. Microsoft does have a process in place for making an appeal for a waiver if you can make a good enough case. You'll need to successfully pass the MPR Test Tool or get a waiver for any outstanding items before moving on to the marketing phase. This is Microsoft's way of helping to ensure that only quality software products make it to the stage of certification as Microsoft Platform Ready.
Telling: Marketing Support for Your Applications
If your app passes the Microsoft Platform Ready Mobility test, you'll have access to a full range of marketing benefits to help get the word out. Each of the platform areas have a dedicated marketing team focused on getting new apps noticed. There are individual market places for Windows Azure and Windows phone where Microsoft highlights approved applications. The Microsoft Pinpoint marketplace focuses on more traditional IT offerings including operating systems like Windows 7 and Windows Server 2008, Microsoft SQL Server and the range of productivity applications.
The big news here is that MPR brings the weight of the Microsoft marketing machine to bear on getting the message out about your application. Microsoft has made a concerted effort to take advantage of social media outlets like Facebook and Twitter in addition to more traditional forms of marketing. It does require a fair amount of work on the part of an Independent Software Vendor (ISV), but the potential payoff is definitely worth it.
From a developer's perspective, the MPR program should be seen as a centralized place to get all the tools and information you might need to take a product from idea to income. There are no minimum business size requirements nor is there any cost involved to get started. It's certainly worth checking out if you have any desire to see your application brought to market. MPR is perfect for existing ISVs looking to expand into new markets or to add new capabilities to existing product lines. Whatever your situation, you'll want to give the Microsoft Platform Ready program a good hard look.
This article was sponsored by Microsoft Corporation, but written independently by the author