C# is a wonderful language, with a rich eco system – unapologetically build your startup technology in .NET
One thing I’ve noticed is very rarely do startups build on the .NET stack. I’ve been lucky to be a part of many startups that have used the Microsoft stack to quickly and cheaply (yes, cheaply <pause for comedic effect> on the Microsoft stack) get stuff done. This is a shame because people are missing out on a powerful option for their startup.
It’s understandable why so many startups are build on the OSS stack. The tools are plentiful and always free to download. The languages are fun. I’ve dabbled with Python. I’ve build Ruby on Rail prototypes. They’re fine tools. This isn’t an attempt to peel people away from the OSS stack, far from it. I want to expose what Microsoft and the community around .NET has to offer for a startup.
.NET is cheap
Yes, it’s cheap to get started with C# in your startup. I feel Microsoft has a reputation (admittedly a deserved reputation) for being expensive and this is the number one reason as to why startups don’t give Microsoft a chance. In reality Microsoft doesn’t want your money until you can afford to give it to them.

By Steve Evans from Citizen of the World (Piggy Bank Uploaded by russavia) CC-BY-2.0 via Wikimedia Commons
-
Visual Studio Express & SQL Server Express
The first stage of your startup project will be some form of MVP. Before you even commit to doing a startup you can get started creating a prototype/MVP with Visual Studio Express. VS Express is simply a free version of Visual Studio. And Visual Studio is hands down the best IDE/debugger I’ve ever used. If there is one positive thing I’ve heard my OSS friends say about C# is that they wish they could use Visual Studio.
There are a few features missing from VS Express. Most of the missing features won’t become a pain until you grow out your team, and grow out the code base. If upgrading to a newer version of VS makes sense for the current state of your startup the feel free to upgrade, the code you create with Express is compatible.
If you require a database Microsoft also has a free version of SQL Server. There is also nothing preventing you from using MySQL, PostgreSQL, or really any RDMS with your C# project.
-
Azure
Azure is Microsoft’s cloud offering and it’s really good. Getting started is easy, and it makes the licensing costs reasonable. Personally I even do my development inside an Azure VM. With any sort of MSDN subscription there is $150 monthly credit for using Azure. Again there is also nothing stopping you from using another cloud provider, like Amazon, with your .NET projects. Things are just a little bit easier if you go with Azure.
-
Bizspark
Simply put, Bizspark is amazing. Free access to Microsoft tools for 3 years for startups. Bizspark isn’t as well known as it should be. Microsoft will also help promote and support your startup when you are in the Bizspark program. This Bizspark program also gives you an MSDN license so you can use the aforementioned Azure credit.
.NET is Popular (outside the startup world)
C# in particular is a very popular language in the professional world. Popularity matters because it’ll be easier to find developers fluent in the language, and rarely will you be blazing a completely new trail.

By Fire_breathing_2_Luc_Viatour.jpg: Luc Viatour derivative work: Amada44 talk to me (Fire_breathing_2_Luc_Viatour.jpg) CC-BY-SA-2.5-2.0-1.0, CC-BY-SA-3.0 or GFDL, via Wikimedia Commons
The more popular the language that the code is written in, the easier it is to find people to work in that language. You’ll be able to find the person with the skill set in the right level for what you need. Have some entry level work? Since it’s a popular language there are people itching to get experience in C#. Have some hard core problems? Since it’s a popular language there are people with 10+ years experience in C#.
A popular language/toolset has a plethora of people who are dealing with the same issues as you are, and people who solved them. The library support for .NET is amazing and getting better every day. Sure writing an OFX parser in Rust is fun, but wouldn’t it be better for your business to just download a library and get more important stuff done?
Scalability
Yes, you should not pick a language/toolset solely on the promise of it easily scaling to bazillions of users. However all other things being equal wouldn’t you prefer a solution that doesn’t require architecture acrobatics after your first big burst of success? I’m being slightly facetious. The fact is Microsoft’s done a lot of the hard tuning work and put it right into the CLR.

Turning Torso 3 by Väsk – Own work. Licensed under CC BY-SA 3.0 via Wikimedia Commons
It’s been my experience that out of the box .NET code has the ability to scale far enough for most startups that performance becomes a non-issue, particularly at the early stages. This is just another thing to not think about as you are growing your company. Currently at eMoney advisor there are 2 middle of the road servers that can process millions of transactions a day. All the code for the processing is written in C#.
The .NET languages, and in particular C# also have design decisions built into the language that enable the CLR to do some pretty fantastic optimizations.
Open/Interoperable
Another argument I’ve heard against the .NET stack is people fear vendor lock-in. I’ll concede that this was an issue a decade or 2 ago. Today Microsoft plays much more nicely with other tools/platforms. Microsoft is even moving in the direction to be more open.

She left the door open by Hartwig HKD. Licensed under CC BY-ND 2.0 via Flickr
Go look at Github and CodePlex to see how many open source C# project there are. The projects are not only open, there are a lot of good open source projects.
Microsoft also has a whole "open center". The center is dedicated to showcasing Microsoft’s community efforts. If that’s still not open enough for you, there is also Mono that let’s you run .NET applications on Linux and Mac machines.
Microsoft’s made great strides in providing a robust, fun, popular community around it’s technology. More people in the startup world should embrace it.
Agree? Disagree? Drop me an email blog [at] sirchristian [dot] net or message me on twitter @sirchristian
It is just a matter of an ideology. I hate linux zealots so i don’t see a problem with you enjoying .NET and building something you like.
Wish more people would use the right tools for the right projects instead of ideology nonsense fightings
Well it depends if you really want to go with c# for software. If you really want to save some time you should chose a web scripting language and if you want the power you will better go with c++. I’m not that sure that it’s worth going with c# even if it’s for web development because it’s slow. For example you can squeeze more out your server by going with nginx or other software and php.
Actually, Visual studio professional is also now available by subscription: http://www.visualstudio.com/en-gb/products/visual-studio-online-professional-vs#Fragment_PricingHeader – and this should allow you to use tools such as ReSharper, which is not possible with the express edition.
I absolutely agree. The .Net framework and Windows server and client environments offer much more cheap extensibility than any other modern programming language.
There is no “right answer”. I agree that sometimes .NET is not the appropriate tool. It shouldn’t be an immediate “no” though either.
@Alex Granted, C# is not as fast as C++, but it’s still faster than PHP [1], unless you use HHVM or similar. You can also integrate ASP.NET and nginx (i.e. not using IIS), if your stack is OWIN-compatible [2].
[1] – http://naspinski.net/post/AspNet-vs-php–speed-comparison.aspx
[2] – http://iobservable.net/blog/2013/08/01/owin-and-nginx/
I’m currently in the MVP stage and this article has helped ease my concern about choosing .NET.
Great article, thanks!
Hi Christian,
I agree that you can choose any language/platform in a startup as long as you have someone in your team that knows it reasonably well.That includes c#/.NET or java/JEE for example.
But if a startup chooses .NET of JEE they would be competing with bigger companies for talent and the culture of Java/C# developers tend to be very different from the culture of RoR/DJango.
Another criteria to consider is which part of the country you are in and the pool of talent. In our area, there more Microsoft resources available to hire. We tried to find a PHP, LUA and .NET developer and guess which position was filled the fastest …. the .NET developer. And we had more people to choose from. Also, it seems that .NET developers are somewhat cheaper to hire due to the number of people that know that technology (at least in this area).