Microsoft loves developers, a fact espoused by Steve Ballmer, CEO of Microsoft and alleged world chair-throwing champion. (He's always said he never entered the contest, and so has declined the trophy. Pity.) Traditionally that love has been felt most keenly in the various programmes on offer to developers to get software for free or far more cheaply than buying of the shelf. (For background, I've often found that I've worked with people who could save some serious money by being on the correct programme.)

Here's a rundown to their current offerings.

This list isn't intended to be complete - it's not a catalogue, it's designed to give you a feel of how the various programmes work and how much they cost. Please bear in mind that you need to do your own research before embarking on any of these programmes.

DreamSpark

Three of the programmes that we're going to look at in this article end with the name "Spark". This appears to be Microsoft's preferred name for programmes designed to "spark" interest in the developer community. Cute.

DreamSpark is the programme offered to students, and I won't spend too much time on it as most of you will be more interested in the commercial stuff. But it's a good programme - for free you can get Visual Studio 2010 Professional, Visual Studio 2008 Professional, Expression Studio 4, Windows Server 2008, Windows Server 2003 and SQL Server 2008 Developer. The inclusion of older versions of VS and Windows Server is a nice touch - it implies an enterprising young student can earn some extra beer money and experience doing maintenance on existing apps.

I'm really glad to see the VS versions being the full-on professional versions here too. This means that students have access to, particularly, the unit testing tools in the pro versions. This to me is a critically important good habit for software engineering autodidacts, so kudos to Microsoft for this.

The programme is open to "accredited schools" or "accredited educational institutions" around the world, so anyone in full-time education should be good to go.

Microsoft Partner Network

The Microsoft Partner Network is the main way to form a commercial relationship with Microsoft, and your payback for forming said commercial relationship is reduced cost on licenses.

Microsoft tinker with this programme a lot, and the current breakdown of the structure and benefits can be found from here - although frankly the entire programme is pretty opaque. There are three ways that you can participate

• join a community (which we won't cover - this gets you access to sales support materials and not licenses)

• purchase a subscription (which we'll cover in a moment)

• obtain "silver competencies" or "gold competencies".

It's worth stressing that the Partner Network programmes are not just about getting software for free - there are other resources included that are designed to help the member shift more Microsoft licenses. Also, this guide is not intended to be a definitive view to how you navigate the Partner Network - it is really, really complicated - but we should be able to help you grok most of it.

The competencies are essentially your way of demonstrating to Microsoft that you have the chops to do one or more activities off of a prescribed list. The way you demonstrate capability is a combination of having qualified people on staff, getting customer references, passing tests and so on. From the list of available competencies, there are those related to deployment of Microsoft products (e.g. "Server", "Hosting" and "Application Integration") and those slanted towards development (e.g. "ISV" and "Software Development"). However analysis of the whole list is out of scope of for this article.

A silver competency earns you 25 internal use licenses, whereas a gold competency earns you 100 internal use licenses. (This simplifies the issue, but think 25 licenses to Windows 7, 25 Exchange CALs, etc. You don't get 25 Exchange Server licenses) Most Microsoft products are covered (you can find the list here, and a more helpful calculator here), but "internal use" is a key operator. Loosely it means that you cannot resell them, nor can you use them for direct revenue-generating activities, commercial purposes, personal purposes or customer training.

An important wrinkle is that you can only use the latest version, so you cannot run Windows XP on this programme - you'd have to upgrade to Windows 7. This makes sense: Microsoft wants you to be out there flogging the latest and greatest.

These licenses also allow you to gain access to MSDN ("Microsoft Developer Network"), which we'll come on to, but MSDN is where all of the developer tools live. You get five MSDN subscriptions on the silver level, and ten on the gold. However, weirdly, with silver and gold competencies you get MSDN subscriptions that you cannot use for direct revenue generating activities (examples they give include developing bespoke software for a fee, or customisation as part of deployment), but you can use them to develop a commercial application which partners sell - emphasis on "sell" is mine, it's unclear how this works if you're giving stuff away free.

(You should note that you can "top up" the amount of licenses you get by getting more competencies. Refer to the calculator linked above for more information on this.)

To obtain all this, you'll need to fund getting your staff trained up and qualified (which depending on how you do it will either be cheap or expensive - cheap if self-taught, expensive if you punt them out on courses) and then find around £1,200+VAT for the silver and £2,400+VAT for the gold.

All in all, the silver and gold competencies in the Partner Network give you most of the software needed to run a decent sized IT solutions business, and all of the software needed depending on how you actually make money from the software that you write. You also get advisory hours (i.e. time with a consultant), and support tickets, both of which can be incredibly helpful.

Microsoft Action Pack and Microsoft Action Pack Development and Design

Allied to the Partner Network silver and gold competency levels are the Microsoft Action Pack Subscription ("MAPS") and Microsoft Action Pack Subscription Development and Design ("MAPSD+D"). Back in the day when I first entered into a Microsoft partner arrangement, the partner programme was structured far more like the MAPS and MAPSD+D programmes. What these do is get you licenses for cash without the heavy involvement of the Partner Network via the demonstration of competency through obtaining "competencies". It should be said that with both of these offer elements of the support and sales and marketing help as the full programme - again, Microsoft's payback in this is that you will shift more licenses.

Both subscriptions have the same rules about to internal use - i.e. no reselling, only for training employees not customers and developing and testing applications. (Although, weirdly, they also include the rule about not allowing custom software development.) With MAPS, you get licenses to cover ten users of Windows, Office, Exchange, SQL Server and others (see here). With MAPSD+D you also get three licenses of Visual Studio 2010 Professional and Expression Studio 4 Web Professional via a special MSDN level (again, we'll come onto MSDN shortly). An important wrinkle is, like the silver and gold competency benefits, you have to be running the latest and greatest.

The cost of the programmes is £259+VAT for MAPS and £299+VAT for MAPSD+D. You can pay a little extra to get physical media. Unless you do something that falls under the banner of "custom solution development" (in which case you can't use the MSDN license), MAPSD+D seems like a good deal for the small software development shop, providing you're not doing bespoke development.

MSDN

We've spoken about MSDN, so what is it?

MSDN is the granddaddy of Microsoft developer programmes. It's basically "everything". Would you like Windows 3.1? That is fine. Access 2.0? Dyanamics AX? MS-DOS? MapPoint 2004? BizTalk 2010? There's 766 line items on the a spreadsheet that you can download here - although, remember, I said "spreadsheet".

There are eight current MSDN levels. All of them have that lovely, labourious naming that we have come to love from Microsoft. You have Visual Studio Ultimate with MSDN, Visual Studio Premium with MSDN, Visual Studio Professional with MSDN, Visual Studio Test Professional with MSDN, Visual Studio Professional with MSDN Embedded, MSDN Operating Systems, MSDN Action Pack and MSDN Essentials.

MSDN Essentials is the level that you get when you buy Visual Studio at retail (see the blog entry here), and so we'll ignore that. MSDN Action Pack is the version you get with the Partner Network MAPSD+D subscription that we covered earlier. Importantly with the full silver and gold competency levels on the full Partner Network, you get the Visual Studio Premium with MSDN licenses (five on silver, ten on gold).

The Ultimate and Premium levels do have some important differences in the server licenses in that on the Professional level you only get the OSes and SQL Server. On the other two you get the more esoteric (read "pricey") products, e.g. BizTalk, all of the Dynamics range, Exchange, SharePoint, etc. Remember though, if you're complicated enough to have the upper MSDN levels, you probably already have a Partner Network subscription or silver/gold competency and have the internal use licenses from those.

The three top MSDN levels vary based on whether they are Ultimate, Premium or Professional versions of Visual Studio. (There are some differences in the software that you get as part of the core subscription, although the core OS and server stuff you are likely to need is there.) I'll leave the "Test Professional" edition for a moment.

The version of Visual Studio that I use on a daily basis is Professional, and I must admit I've never hankered after anything in the other versions. The key differences are that in Premium and Ultimate have more debugging and profiling tools. Professional has standard unit testing, whereas Premium includes a few more tools and Ultimate has a whole raft of testing and profiling tools. Next, Premium and Ultimate both have a collection of (frankly irrelevant) database tools. On the modelling side, with Ultimate you get all of that but not in Professional and Premium (and if you're into modelling, why would you not use a stand-alone tool?). Ultimate also gives you something called "Lab Management". In summary, it's not obvious what you get with Ultimate or Premium that's so amazing, or that certainly can't be filled with, as alluded to, third-party tools.

This gives us three remaining MSDN variants to look at.

Visual Studio Test Professional is designed for testers who are "embedded" into the test cycle. Essentially it gives you access to the testing tools that are part of the application lifecycle management ("ALM") bits of Team Foundation Server ("TFS"). We haven't spoken much about TFS here but there's a shared toolset for managing the quality aspect of development. The idea is that developers use Visual Studio Ultimate and testers use Visual Studio Test Professional, both feed data into a central TFS box and, voila, quality ensues. (Look out for future Guardian Tech articles on TFS and ALM.)

Visual Studio Professional with MSDN Embedded varies the software as part of the MSDN licensing for those specialising in embedded systems. Like Test Professional, if you're in this area you're pretty specialised. The final MSDN offering - MSDN Operating Systems is designed to give you roughly the same licenses as Professional but without Visual Studio.

Confused yet? You probably are. This arrangement frankly is not pretty.

Here is some rough street pricing:

• Visual Studio 2010 Ultimate with MSDN - around £8,500+VAT

• Visual Studio 2010 Premium with MSDN - around £3,300+VAT

• Visual Studio 2010 Professional with MSDN - around £1,000+VAT

• Visual Studio 2010 Test Professional with MSDN - around £1,650+VAT

• Visual Studio 2010 Professional with MSDN Embedded - around £900+VAT

• MSDN Operating Systems - around £390+VAT

Those are the first year prices. Renewals are roughly 50% of those prices per annum.

For comparison, Visual Studio 2010 Professional without MSDN is around £500+VAT and this doesn't have a yearly renewal as there is no MSDN component.

Another thing on the MSDN side is that you also get some Azure usage, details of which can be found here although, as we're about to see, the benefits are paltry.

BizSpark

BizSpark is a programme to encourage startup businesses to build their solutions on the Microsoft stack. I say "encourage" - BizSpark is firmly from the "your first hit is free" school of marketing. It would be non-trivial to switch away from the Microsoft stack once your startup was up and running.

The eligibility requirements it that you have to be developing software (obviously), that you're privately held, less than three years old and making less than US$1m in annual revenue.

To short circuit the discussion, BizSpark helpfully says that you get access to most of the licences available in Visual Studio Ultimate with MSDN, although confusingly they they go on to explicitly state that it is Visual Studio Ultimate that you get. See this page.

There is no (clearly) given limit to the number of users on you can have on the programme, presumably because the eligibility requirements act as a natural ceiling. (Although in the dotcom days, I can think of many companies with a lot of developers and way less than US$1m in revenue.) Once your membership is up, you "graduate" from the programme and buy your licenses at a discount. A caveat laden discount - follow the single asterisk on this page.

Where BizSpark gets more interesting is on the production server licensing. Remember, with the other programmes thus far you cannot use the licenses in production environments - they are internal use only. You can use the licenses providing you are not just exposing out core functionality (e.g. reselling SQL Server) and that you're not just repackaging someone else's application.

BizSpark's preference is that your stack comprises Window Server, SQL Server at a basic level. If you're feeling fruity, they'd like you to roll in BizTalk and/or SharePoint and/or Dynamics CRM.

You can either hosting yourself or using a BizSpark partner, but I'm unsure why you would want to use a partner. A strong suggestion from the site is that you use the Azure benefit that comes with the MSDN subscriptions. This gives you two virtual servers a month that have ~1.6GHz CPUs, 1.75GB of RAM and 15GB of storage. This is actually pretty lame - that's not much horsepower for running a decent sized app on the Microsoft stack. (In fact, on the graduation page above the caveat implies that they expect people to be running three front-end boxes and one SQL boxes. At the very least, you're looking at five or six times the free Azure limit.)

For comparison of cost, were you to use the Rackspace Cloud, according to their cost calculator, you'd be looking at around £200 for the same Azure service offering, albeit with SQL Server 2008 R2 Web edition rather than Stadnard. (Although other virtual private server ["VPS"] providers come in cheaper, Azure and Rackspace Cloud are roughly the same in terms of build. It's also worth noting that Rackspace do their own startup program.)

So, if you're a startup with three developers running over the full three year period, the headline saving by using BizSpark is £125,000 - although I would say that price is inflated. If you were doing this yourself, it's more likely you would use Professional as opposed to Ultimate and go with MAPSD+D, therefore the real cost/saving of BizSpark is around £8,000. Still, none too shabby for a free programme.

WebsiteSpark

WebsiteSpark is the final programme that we'll look at and it's designed to "professional Web developers and designers". Like BizSpark, it's a three year program and also like BizSpark, there's no entry cost.

The eligibility requirements are that you must have less than ten employees and be a professional services firm specialising in providing Web development and design. You can also be a "one man band". Interestingly, the requirements are missing any requirement in terms of length of time trading, being of private ownership or having a ceiling on revenue unlike BizSpark.

As part of the programme you get three licences of Visual Studio 2010 Professional, one license of Expression Studio and two of Expression Web. In development, you can have up to three Window Web Server 2008 instances and three SQL Server 2008 Web instances. Production wise, you can run up to four processors running Windows Web Server 2008 and SQL Server 2008 Web Edition. Virtual or physical boxes are supported.

Competing platforms

It's been a while since I sat down and really thought about the cost of developing solutions on Microsoft - throughout my career it's been mainly what I've done - but it's clear that the open source route is not only cheaper, but far less complicated and way less risky. (Get one subtle rule of these programmes wrong and you can be into a big cash flow problem.) How much does it cost to run a box with Ubuntu, Apache, MySQL and PHP? The cost per developer is not going to run you nearly £9k a seat for the first year, £4.5k per seat thereafter and, much as I love Microsoft, there's a huge price differential there. This is definitely going to be an interesting decade or so for Microsoft.

Conclusion

In summary, the easiest way to get developer tools from Microsoft is to be a student. Anyone in a startup would be mad not to look at BizSpark - ignoring that is just leaving money on the table. If you're a one-man-band or a small web design shop, WebsiteSpark looks pretty good. Assuming you're not any of those things, it comes down to how big a shop you are. If you're pretty big already, or have aspirations, playing nicely with the Microsoft Partner Network competency track would make sense. If you're not, MAPSD+D is looking good, but watch the rule about "direct revenue generation".

OK - now enjoy...

Matthew Baxter-Reynolds is an independent software development consultant, trainer and author based in the UK. His favourite way to communicate with like-minded technical people is Twitter: @mbrit.