This page lists a couple of useful locations on websites maintained by Microsoft or related to the company’s products, ordered by category. All listed software packages are available as free downloads, unless otherwise noted.
All Microsoft Visual Studio 2010 Express editions are available as free downloads, unlike their bigger cousins. They do have two major limitations: each edition can only handle a single programming language or application type, and you cannot install any kind of add-ins. Still, they are very nice free IDEs if you can live with those restrictions.
The .NET Framework 4.0 has also received a few minor patches with corresponding Visual Studio updates, most recently Update 4.0.3 which installs on top of VS2010 Service Pack 1. The linked post provides download locations and detailed change logs for all 4.0.x updates.
The Microsoft Windows SDK 7.1 for Windows 7 and .NET 4.0 comprises both the former Platform SDK and the .NET Framework SDK. Aside from native and managed code libraries, this includes compilers for C++, C#, Visual Basic, and JScript, plus various tools, samples, and the MSDN Library documentation. If you can live without an integrated development environment, this is all you need to develop Windows applications.
If you don’t have VS2010: You must download and install the .NET Framework 4.0 prior to installing the SDK. The Windows SDK requires the complete framework (“full setup”), not just the Client Profile that is installed by Windows Update. Near the bottom of the download page you’ll find a link to the full package instead of the bootstrapper.
If you do have VS2010: Visual Studio 2010 comes with version 7.0a of the Windows SDK. The current version 7.1 does not upgrade the existing installation but rather installs side-by-side. I recommend that you get version 7.1 anyway because it includes several tools that are neither part of VS2010 nor available elsewhere, in particular the WPF Performance Suite for .NET 4.0 and FxCop 10.0 (which is actually a minor update from 1.36).
If you installed VS2010 SP1 after SDK 7.1: The SP1 installer may accidentally remove the SDK’s 64-bit C++ compilers and libraries (if they were installed). Download the VC++ 2010 SP1 Compiler Update for Windows SDK 7.1 to restore them.
Microsoft Visual F# is a functional .NET programming language based on ML, or rather OCaml. F# ships with Visual Studio 2010 but if you intend to use the language you’ll also want to download the F# PowerPack on CodePlex. People who don’t have VS2010 will need the F# April 2011 CTP to use F# on any .NET 2.0 implementation, including Mono. Alternatively, visit Try F# to use an interactive parser over the Internet.
Visual Studio Professional includes the Microsoft Macro Assembler with complete documentation. The latter is also available at the MSDN Library but MASM itself isn’t. However, you can download a free edition for non-commercial use if you have Visual C++ 2005 Express Edition installed.
The Sandcastle Documentation Compiler combines assembly type data with XML comments extracted from C# source code to build stand-alone help files. Unfortunately, Sandcastle is very complex and does not come with a GUI frontend. Worse, the project has been quietly abandoned by Microsoft in yet another betrayal of their loyal .NET developer community.
As of 16 April 2012, project maintenance has been taken over by volunteer Eric Woodruff who had already created the excellent Sandcastle Help File Builder, a comprehensive GUI which can even import NDoc control files, and the Sandcastle Styles Project that fixed various issues with the standard distribution.
Eric now provides updated releases of Sandcastle on the Styles project page, but you don’t need to download them separately. The Sandcastle Help File Builder project has been expanded into a complete “Guided Installation Package” that contains everything you need, including the current versions of Sandcastle itself and the Styles project. Simply download this package, extract it, and run SandcastleInstaller.exe.
Windows PowerShell is a command-line shell for Windows XP and later that sits on top of CMD.EXE and utilizes the .NET Framework to provide an extremely powerful object-oriented scripting language. PowerShell scripting effectively supersedes traditional batch files as well as the somewhat obscure Windows Script Host technology. Moreover, the shell provides an interactive .NET execution environment, allowing you to instantiate objects and invoke methods directly from the command line.
PowerShell 2.0 comes preinstalled on Windows 7 and Server 2008 R2, and is available as part of Windows Management Framework (Core) for users of earlier Windows versions. PowerShell 1.x and 2.0 both reside in the folder C:\Windows\System32\WindowsPowerShell\v1.0 but the built-in dictionary variable $PSVersionTable shows which version is installed.
CLR Profiler for .NET 4.0 is a tool that records managed memory allocation while your .NET program is running. Although this profiler does not measure execution speed, optimizing memory allocation is usually a necessity for improving the overall performance of an application. Older versions for .NET 2.0–3.5 and .NET 1.x are also available.
The Debugging Tools for Windows may be helpful for low-level programming. The download package includes a stand-alone debugger that can be used to debug applications, services, device drivers, and even the operating system itself.
Steve P. Miller’s Dependency Walker is a very useful program that shows all libraries required by an executable. This utility used to come with the Platform SDK but I cannot find it in my current installation. The link provides a separate download and Miller’s FAQ on the utility.
Microsoft FxCop analyzes your .NET assemblies and checks them “for conformance to the Microsoft .NET Framework Design Guidelines”. Thanks to oversensitive and buggy rules FxCop reports way too many spurious “defects”, even on Microsoft’s own libraries. After disabling the offending rules the tool is actually quite useful, however.
Very useful for Visual Studio users: Microsoft’s keybinding reference posters for all Visual Studio 2010 languages, or alternatively for Visual C++ 2008, Visual C# 2008, and Visual Basic 2008 in PDF format. Note that Visual Studio defines additional keybindings that are missing from these posters, probably for space reasons.
Since much of the .NET Framework 1.x/2.0 libraries were actually wrappers around existing Win32 functions, Microsoft created this handy Win32 to .NET Framework API Map which shows equivalent calls in both APIs. Note that the “Foundation” APIs added to .NET 3.0 are mostly written in managed code, without any Win32 counterpart
This section lists a few interesting projects found on various Microsoft websites, including CodePlex and MSDN Samples Gallery. These are repositories for open- and closed-source software related to Microsoft products, respectively.
The Base Class Libraries site offers sample, previews & prototypes from the BCL Team.
The CLR Security Team provides algorithms for encryption and random number generation.
The Meta.Numerics and Math.NET Numerics libraries both provide complex numbers, linear algebra, statistical functions, and other useful tools for numerical computing.
The .NET Mass Downloader gets the .NET Reference Source Code to your hard disk, for use with the Visual Studio debugger.
The P/Invoke Interop Assistent by the CLR Interop Team converts between C++ and P/Invoke signatures and comes with a database of Win32 types and functions.
Snoop, the WPF Spy Utility is a stand-alone utility that complements the Win32 tool Spy++. Snoop can attach to any WPF application currently running on your system and shows its entire visual tree, including the property values and event histories of any selected element.
The Windows API Code Pack provides .NET support for a variety of new features in Windows Vista & Windows 7, including task dialogs and the Windows 7 task bar
Microsoft Calculator Plus is an enhanced replacement for the Windows calculator. In addition to the standard and scientific mode, Calculator Plus offers a conversion mode covering many popular and scientific units for length, are, weight, temperature and so on.
Note: Windows 7 users already have these functions in their standard calculator.
Microsoft Security Essentials is a free all-in-one package that protects unobtrusively against viruses, spyware, and all kinds of malware. Some commercial alternatives may have a better detection ratio, but MSE should serve well enough for most people who already use a hardware firewall (as they should).
Microsoft Virtual PC allows you to run multiple operating systems or configurations on a single Windows PC – simultaneously and without requiring a reboot. The virtual machines may be too slow to do much real work but they provide ideal testing platforms, without risking damage to your own system.
Virtual PC itself requires Windows XP Professional or later but can host almost any existing PC operating system. Formerly a commercial application, Virtual PC is now available as a free download. Windows 7 users can also download Windows XP Mode, an integrated virtualization environment for running Windows XP applications on Windows 7.
People who use Microsoft Word for long technical documents often complain about incomprehensible formatting and numbering errors. Consult Shauna Kelly’s Word Help FAQ and the Microsoft Word MVP FAQ site to avoid this fate, and for many other tips on styles and formatting.
The Windows XP SP2 Support Tools and the
Windows Server 2003 Resource Kit Tools (XP compatible) each provide a vast number of useful command-line and GUI utilities. Annoyingly, the two collections overlap but are not identical. Only the Server Resource Kit contains the popular Robocopy tool that ships with Windows Vista and later, for instance.
XML Notepad 2007 for Windows XP or later with .NET Framework 2.0 is a nifty XML text editor with a structural tree view, an XSLT output window, and schema-based validation with IntelliSense. Sadly, it lacks the extremely useful table view of XML Marker.
Internet Explorer 9 introduced a bizarre bug that can make the browser completely unusable: the rendering engine halts or even crashes when a web page requests certain popular Adobe Type 1 (PostScript) fonts including Courier, Helvetica, and Times – possibly others.
These three fonts are often referenced in style sheets and come with basic Type 1 font packages, so it’s easy to trigger this bug if you use any Type 1 fonts at all (.pfb/.pfm). Microsoft won’t fix IE9, so all you can do is delete the offending Type 1 fonts from your system, or replace them with OpenType or TrueType variants – or switch to a different browser.
The first report I found on this truly amazing, little-known bug was Oddball’s post Internet Explorer 9, Helvetica Type 1, and You. Later I also discovered the MSDN Forums thread IE9 cannot render Type 1 font which provides some more details. A reply in this thread confirms that the bug is known to Microsoft and will not be fixed, at least for IE9.
The .NET Framework Developer Center provides links to all the various technologies, products, and articles related to the .NET Framework. For Windows Forms and the Windows Presentation Foundation specifically, you should also check out Microsoft’s WindowsClient.net website.
The MSDN Magazine collects developer-focused articles in a traditional print magazine format. However, the website offers individual articles and even entire issues as free downloads, so I’m not sure why they still bother with a print version and subscriptions…
The MSDN Online Library is the single most important resource for Windows developers: an ever-growing pile of information about any and all Microsoft products, including technical articles and partial or complete books.
The Microsoft Research website describes the company’s numerous research projects, sometimes including research papers and software for download. Check out the list of current projects to see what’s going on.
The Microsoft Typography website offers information and utilities for computer text fonts, including the list of fonts installed with each Microsoft product, applications to view and edit the properties of TrueType/OpenType fonts, and an interactive tuner for the ClearType font smoothing technology (already built into Windows 7).
Unfortunately, most of the free font downloads have been terminated, so if you want Microsoft’s “Core Fonts for the Web,” a bundle of OpenType fonts that includes my favorite screen font, Georgia, you’ll have to obtain a recent version of Internet Explorer.
Microsoft does offer one free font download, however. The Consolas Font Pack is a monospaced font that requires Visual Studio 2005 or 2008 to install and was specifically designed for ClearType displays. Highly readable and strongly recommended for programmers.
Note: Consolas already ships with Windows 7 and Visual Studio 2010.