Windows 7

Starting to develop for a new platform means some software setup, I’ll detail what I am using, list possible variants on my configuration and include links to everything so that you can get set up quickly and easily as well.

Software needed falls into three main categories – the platform (OS) itself, developer tools and then software development kits (SDKs) and samples.  I will be as complete as is possible here, however, I am sure some of you reading are using cool tools or samples that I haven’t listed – please share what your are using via blog comments (I’ll cross-post your tips on the facebook group ‘Windows 7 Developers’ as well).

1. OSdownload Windows 7 RC in either 32 bit or 64 bit.  I am using a 32 bit version for testing.  From the TechNet website, here are the minimum machine requirements:
1 GHz 32-bit or 64-bit processor, 1 GB of RAM, 16 GB of available disk space, Support for DirectX 9 graphics with 128 MB memory (to enable the Aero theme), DVD-R/W Drive. The file will come down as an .iso file.  Use a utility to convert it to an installable format.  Tip: if you happen to have another machine with Windows 7 already installed on it, the ability to convert .iso files to other formats is built-in to Windows 7 (see Geoff’s blog post for details).

2. Dev Tools – this will include some version / edition of Visual Studio and possibly some or all of the Expression Suite.  I am using Visual Studio 2008 Professional Edition SP1 with the .NET Framework 3.5 SP1 (download the latter here).  You could use any edition of Visual Studio 2008 or better, including the Express edition.  You can also use a trial version of Visual Studio 2008 Professional for a limited testing period.  Although I am NOT a designer by any means, I am going to work with the latest CTP of Expression Blend (3).  If you aren’t familiar with Expression Blend, here’s an abbreviated product description:

“With Microsoft Expression Blend 3 Preview, you can create Windows Presentation Foundation (WPF) applications for the desktop and Microsoft Silverlight 3 applications for the web…(features include) import of both Adobe Photoshop (.psd) files and Adobe Illustrator (.ai) files directly into your projects, while retaining layers, shapes, text elements, and more for easy editing inside Expression Blend itself. (Note: Adobe live effects, blend modes, and the symbol sprayer are not supported); introduces support for WPF and Silverlight graphic effects; direct modification of C# or Visual Basic code files right inside the product, including IntelliSense (syntax completion), auto-formatting, brace matching, function summary writing, event handler creation, and more; also easy generation of sample data and expanded data-binding capabilities.”

Full list of Blend 3 features here.  You can, of course, get the entire suite of Expression products (called Expression Studio), for more info – go here.

I am going to code in C# because, well I like this language.  If you happen to be a VB.NET person, you can use SharpDevelop (or some other tool or IDE) to translate C# to VB.NET.  To be honest my favorite language these days is actually F# (although I do also have a soft spot for Cobra), but I digress, so…it’s C# for this series.

Also, although a relational database certainly isn’t required for a Windows 7 application, I will use one.  For simplicity, I’ll just use the free version of SQL Server 2008 (Express with Advanced Services – which includes SQL Management Studio and SQL Server Reporting Services) – download here.  I do note however, that the advanced visualization possibilities of Windows 7 have really got me thinking about using other types of data sources, such as OLAP cubes or Data Mining Structures from SQL Server 2008 Enterprise (or Standard) Analysis Services.  Again, for simplicity, I’ll just a relational database for this blog series.

3. SDKs and samples – this is key area for getting up to speed fast.  You’ll want to get all this ‘stuff’ to get going, so let’s see what and why. 

First you’ll need the correct SDK – for Windows 7 RC and .NET framework 3.5 SP 1 – get it here.  So what’s in here?  Tools and samples – lots of them.

Then you’ll want to grab the Windows API code pack for MS .NET frameworkhere.  This .NET source code supports new Windows 7 developer features via managed code APIs including the following: Shell features, Direct 3D 11.0, and Sensor Platform APIs.  More about the value of this download from this blog post.

Next you may want to get the DirectX SDKhere. This contains technical previews of advanced graphics such as Direct2D, DirectWrite, and DXGI 1.1, XNA Math (new!), audio and PIX improvements and new or updated samples.

The MSDN Code Gallery has an all-up page with links to get, among other things, the Sensor Development Kit for Windows 7.  If you plan to integrate sensors into your application, then you probably want to download everything linked on this page – here.

Depending on the samples you choose to run, you may need to include the XNA Game Studio 3.0, as one or more of the Windows 7 application samples using sensors requires this – download here.

Note: If you choose to include coding to the new sensor API in your application (and your hardware doesn’t have sensors), then you’ll probably also want a test sensor board.  Here’s a place where you can order from – here.

*Thanks to Michael T. Roth for ‘tech-checking’ this post.  See us both demonstrating multi-touch Windows 7 applications this Saturday at BarCamp San Diego.