Preparing our development environment
There's a fair chance you've got all the tools you need, and if you're already doing some Microsoft Azure development, you can probably skip most of this. If you want to look at phone development in, it's worth reading the Mobile development section.
Setting up software
Throughout this book, I will be using Visual Studio Professional 2013 as it allows me to work on various project types in one solution. Don't worry if you don't have a premium version such as Professional or Ultimate as you can use multiple versions of Visual Studio Express instead, which are as follows:
- Visual Studio Express 2013 for Web: You'll mostly need this, and when I talk about Visual Studio without being specific, this is the one to use if you're sticking to Express versions
- Visual Studio Express 2013 for Windows Desktop: If you want to build the WPF apps for the production management system and the Service Bus messaging simulator, you'll need this
- Visual Studio Express 2013 for Windows: If you want to build a store app during need this
Of course, you can use Professional and Ultimate versions of Visual Studio, and it'll be easier for you as you can develop different project types in the same solution.
We'll use SQL Server Management Studio (SSMS) for connecting to Azure Databases, so it's worth installing that now too. I'm using SSMS, which comes bundled with SQL Server Express 2012, but 2014 will be fine too. Here's the download link, which allows you to pick the parts of an SQL Server to download: http://www.microsoft.com/en-gb/download/details.aspx?id=29062. I chose to download the Express with tools version (ENU\x64\SQLEXPRWT_x64_ENU.exe
), which contains the database engine and tools including SSMS, so we can run websites locally against a local database and use SSMS to connect to local and Azure Databases.
Mobile development
For Windows Store app development, there is no special hardware requirement; however, to develop apps for Windows Phone 8, you need a machine that has specific requirements in order to run the Hyper-V phone emulators. The Windows Phone 8 SDK will perform a prerequisite check before installation; however, you can read the exact requirements at http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff626524(v=vs.105).aspx.
For phone development, it is always helpful to have a handset to test on, and I would advise testing any app on a real device before publishing, to make sure everything works. The same goes for Windows 8, although Surface Pros and other tablets that run full Windows 8 have exactly the same OS as PCs and laptops; it's helpful to test the touch gestures as well, since keyboard and Surfaces (formerly, Surface RTs) run on a different OS designed for ARM devices so that it is useful to have access to a tablet or machine with a touch screen.
To publish your apps, you need a Store account and you'll also need an account to implement push notifications in Windows Store apps. Unlike Microsoft Azure, you actually need to pay for these, and there is no free option. Previously, you needed separate accounts for Store and Phone apps; however, these have now been merged and only cost $19 for an individual. You can sign up at https://appdev.microsoft.com/StorePortals/en-us/Account/Signup/Start.
The Microsoft Azure SDK
The Microsoft Azure SDK for Visual Studio provides us with excellent tooling for Azure development from Visual Studio. It also includes the following:
- Integration into the Server Explorer, allowing us to interact with services and view data
- Automatic provisioning of Azure Services during publishing and project creation
- Compute and storage emulators for cloud services
- Special project types for cloud services
- Remote debugging
We need to install the Azure SDK, which can be downloaded from http://www.windowsazure.com/en-us/downloads/; currently, there are versions for Visual Studio 2012 and 2013; as I've mentioned, I'm going to use 2013; go ahead and use 2012 if you like, but I can't guarantee everything will look the same as in screenshots and examples.