Is there any particular reason Stack Overflow was written in ASP.NET?

Not that ASP.NET is a bad platform to develop on, but I am curious. Was it just due to the original developers having prior experience, or was there an actual design choice? (e.g. it scales well or has good performance.)

  • 2
    hey looked at PHP, but realized they simply weren't awesome enough to fully grasp its beauty.
    – Pekka
    Oct 5, 2010 at 16:13

4 Answers 4


The original developers were from a windows background and already know how to use SQL-Server and .net

  • +1 for an answer that actually isn't stupid (unlike mine intended to be a joke...) Oct 5, 2010 at 13:57
  • Hmm... depends on what you mean by Great Performance. I for one find most web development environments to be relatively poor on performance. For example, the median performance of PHP compared with, say, C# or Java is at least an order of magnitude. shootout.alioth.debian.org/u32/… Oct 5, 2010 at 15:27

Because it's main competitor is a pile of spaghetti?

  • I don't get it.
    – TheLQ
    Oct 5, 2010 at 22:45
  • @TheLQ: Control+F to Programmable Hyperlinked Pasta ;) Basically I'm ripping on PHP for 90% of the time leading to unmaintainable mess. Oct 6, 2010 at 11:35

I think there are several points that led to the decision. In order of (my opinion of) importance:

  • They wanted to use Sql Server, and ASP.Net is a more natural fit for that database platform
  • They were already familiar with .Net development in general.
  • They wanted to use the MVC pattern, but Ruby on Rails has a reputation for poor performance and PHP + an external MVC framework sounds like adding a mess on top of a mess. ASP.Net was left as the (then) new third option and looked solid compared other languages like python (whose MVC implementations feel like toys or hobbys by comparison).
  • Potential performance. One thing to remember about .Net is that it doesn't use a VM in the same way Java uses a VM. .Net code is compiled to IL, but the IL is in turn entirely compiled to fully native machine code before the program runs. For ASP.Net this means that there is no bytecode or script interpretation layer active at runtime — unlike every other major web platform available.
  • It's cheap to get started.
  • 4
    For the vast majority of the time a JVM will be running everything in native code too... except that HotSpot gets to recompile the particularly "hot" code, putting more effort into optimising it. Basically your fourth bullet doesn't sound accurate to me, at least in impression. (Yes, there are differences between the JIT compilation model of HotSpot and the CLR, but if anything they favour HotSpot for long-running processes such as servers.)
    – Jon Skeet
    Oct 5, 2010 at 18:51

It wasn't written in ASP.NET, it was written in ASP.NET MVC.

  • Err.. ASP.NET MVC is ASP.NET. ASP.NET used to only use the WebForms model, but that doesn't mean MVC isn't ASP.NET. Oct 6, 2010 at 11:39
  • @Billy ASP.NET meant webforms for 7 years, 9 if you count the countless programmers that talk about using the MVC pattern in Webforms. Outside of our bubble, MVC hasn't hit widespread general use, so I still assume it means webforms when I see someone use that term. Oct 6, 2010 at 17:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .