in startup

why would you choose .net?

I’ve been wondering for quite some time now why a new startup, on a greenfield project, or even a personal site, would choose to use .NET for web development?

Firstly, this is not a Microsoft bashing article – I’m simply trying to understand the thought behind such a choice. While researching this I noticed another recent article (titled: When Windows beat Linux: a cautionary tale) on something similar, so I will use some of the information from this article.

For those than can’t be bothered to read the article I linked to (as many people on a certain social network site decided to do before apparently casting their vote) I will summarise. The article looks at a case study by a German airline company who was restructuring the IT systems of a bankrupt airline which they had acquired.  In this process they were moving from a Linux based “scripting” solution to a Windows based .NET stack.

To aid the discussion let’s say that I’m starting a new mISV (micro Independent Software Vendor – this seems to be the buzz word for startup).  What will I be producing? I don’t know, let’s say an online bakery because I LOVE cakes so much.  Now suppose that we choose to do this using Python and Django on a Linux dedicated server.

So let’s assume that we are going to be a rip roaring success and that every business close to us will be looking to buy our cakes to reward their industrious employees, i.e. the application should scale reasonably well.

A quick look at the case study seems to imply that for every Windows based server needed, we require 2.5 times the computing power for equivalent performance in the Linux based system:

4 Windows Server IIS 6.0-based computers replacing the 10 computers that had hosted the former Linux version

A quick check on Google reveals that a Windows dedicated server will cost around £120 (~$170) more per year than a Linux server.  But I need 2.5 times as many Linux servers as I do Windows servers (assuming my application is going to be maxing out the Windows server). Therefore if a Linux server costs me £600 (~£840) a year, this means that I’m £780 better off with the Windows server as my choice.  Hold on though, because, let’s face it, the conclusions drawn about the number of servers required for each solution in the case study are pure bullshit! Right?  The case study thinks it’s fair to say that 4 brand new top of the range servers are equivalent to 4 Pentium P3s from heaven knows when. Common sense here states that I would get at least as much performance out of my Linux server as I would the Windows one. Hence I will be saving £120 a year, not gaining £780 as the case study would like you to believe. Now on to the software.

The case study states that: 

The Web front-end to the e-commerce solution was rewritten using Microsoft C# technology, introducing object-oriented programming to what had formerly been a script-based solution and enabling the solution to be updated and expanded more easily in response to business requirements…The Web server portion of the solution took three months and $120,000 to develop; had SWISS used Java, Heintel estimates, the solution would have taken 50 percent more time and money.

How the hell did Heintel arrive at that estimate?  Christ, every bank in the world would be scrambling to rewrite their enterprise Java apps at that rate.  Let’s face it, their estimate was utter nonsense – my Mum could have came up with a better estimate and she still hasn’t figured out how to use that wee-thing-that-you-move-with-your-hand-to-make-the-wee-arrow-thing-on-the-screen-move!  Moving on, I didn’t realise that you couldn’t write object-oriented programming on a Linux environment, news to me!  I mean it’s not like you could write the exact same object-oriented based solution in a language of your choice, whether it be Python, Java, Ruby or PHP (or even C# using Mono). Therefore instead of saving me money on software it’s going to cost me. Why?

First, I’m going to have to purchase SQL Server, I can’t imagine it’s cheap, say around £800. Not only that, I’m going to have to pay for upgrades that I might need in the future, not to mention more SQL Server licences for any additional db servers should I need them.  The Microsoft stack is certainly not saving me any money here.

Now on to the IDE. For the Linux based system I could use NetBeans or Eclipse, which are free. For the Windows based system I could use Visual Studio Express Edition. However, I can’t imagine the Express Editions are good for building large web applications, and I haven’t seen too many Microsoft shops using these editions –  am I wrong?  Presuming we can’t use the Express Editions, I need to pay for the full version of Visual Studio, which tots in at around £600 per developer. However, the Linux based approach is costing me NOTHING for each additional developer that I add.

Another facet of .NET development I have noticed is that you tend to have to pay for nice developer tools that are otherwise free on non-Microsoft based stacks – Reshaper being the example that springs to mind. Hence you have to factor in the cost of such 3rd party libraries.

All in all it appears that the Windows based system is going to cost me waaaaay more to get started than the Linux equivalent. Costs may not seem that high to some people, but when you have limited financies to start your own mISV, any costs, however small, are something you can do without, more so in the current economic climate. 

One thing I have so far failed to take account of is the cost of learning new technology.  If you are a veteran C# developer then taking the Linux route would mean learning to use new tools and new languages. However, any developer worth their weight in salt is keen to improve their knowledge and would quickly be able to cope.  Most smart developers see it as FUN to learn something new. 

What I would like to mention is Microsofts BizSpark.  This came to my attention after listening to the Startup Success Podcast of which I have become an avid listener.  If memory serves me correctly it drastically reduces the cost of Microsoft development tools for mISVs – sorry I can’t remember the exact price but it’s low (update: please see the comments below for some more info on this). This kind of incentive from Microsoft is a great idea, and something I may look at closely, alongside the Linux based options, in my own mISV ventures I will soon be embarking on.

To sum up: with the exception of the BizSpark incentive, if this truly delivers what it appears to, I just can’t see any reason to choose the .NET stack over a free Linux based solution. Can you?

Write a Comment

Comment

  1. Hi there,

    You raise some very good points. I don’t want to lend or take away credibility from any of the articles you refer to, but I did want to clarify a couple of things.

    > First, I’m going to have to purchase SQL Server, I can’t imagine it’s
    > cheap, say around £800.

    You can get the Web Edition of SQL Server 2008 (which is really for hosters or companies looking to deploy consumer facing websites) for not all that much – http://www.microsoft.com/sqlserver/2008/en/us/pricing.aspx

    > If memory serves me correctly it drastically reduces the cost of
    > Microsoft development tools for mISVs – sorry I can’t remember the
    > exact price but it’s low.

    Startups who join BizSpark are sent an invoice for USD 100 when they leave the program. With BizSpark you can get tools and licenses for development and test, and licenses of Windows Server 2008 and SQL Server 2008 (among others) for use in production (for the same cost) for 3 years.

    I think at the end of the day you can read a lot of articles, whitepapers and/or case studies tohelp you make a decision about the stack you want to go with, but it really comes down to what you are comfortable with and more importantly how productive it lets you be. Let me know if you are interested in joining BizSpark to play with some of our products.

    best,

    ai

  2. Bizspark is free, no upfront cost. full featured dev tools + unlimited production licenses of server products + professional technical support + visibility (to clients, partners, peers, investors).
    let me kniw if you need a code to join the program 🙂

  3. Hi guys, thanks for the info on BizSpark, and other stuff, this is what I was hoping people would help me out with, as at times it can be difficult to see why anyone would go the Microsoft route (despite the fact that I used Visual Studio for years myself and I genuinely do like it). I will definitely be considering the BizSpark stuff in the coming months so thanks for your help with this.

  4. Good article, and thanks for mentioning my podcast. Although I’m developing my own startup in Rails/Flex, I was a Windows developer for many years. To my way of thinking, BizSpark opens the startup door wide for .NET developers, on par with the developers using LAMP (LAMR?) have enjoyed.

    Different goals, different tools. No one thing is best for everyone.

    By the way, until Julien (he runs BizSpark) tells me different, I’m the #1 Network BizSpark Partner. contact me if you’re a startup, or want to start a startup and BizSpark will help you towards that goal.

  5. Thanks Bob. I really enjoy the podcast, I’ve learned quite a lot from it already – I would not have even been aware of BizSpark if it were not for it. Please keep the podcasts coming.

  6. Hi, Gregg,

    Interesting points here, I hadn’t heard of BizSpark, it helps level the playing field a little when it comes to talking cost, although how much does this stuff cost long term? TCO, including retraining in the .NET framework would be a major factor.

    I just want tools that let me get the job done at a reasonable cost. For anyone creating a startup (mISV), I’d assume they’d spend time and effort deciding which technology/platform is right to take your product in the direction you want, that includes current knowledge of the product team. There is no on-size fits all solution. If there is a business case for one vs the other, then that’s your technology.

  7. Hi Eoan,

    Thanks, good points.

    Yeah of course learning the .NET stuff is an issue for those that have never used it and in that situation you have to figure out do you get enough business gain from learning it.

    One example of such a business case may be that you are selling a library that other developers can hook in to. In that case, if you know the majority of your customers are using the .NET framework, then it makes sense to develop using it. I also think that folk who are using MS stuff tend to be more willing to pay for software? This may not be true, I dunno?

    Also, I think most good developers are always keen on learning new stuff, and if you have been taught well, you can normally pick this up pretty quickly. I don’t think it’s a bad thing to be learning new things as technology always moves. However, if the main goal is to get your business up and running very quickly it is defo best to stick to what you know. I agree.