Galin Iliev's blog

Software Architecture & Development

x64bit Development with .NET

Today the hardware is cheap (and getting cheaper) so it is easily affordable to have multiple quad code CPUs, 8 GB RAM and more. In order to fully utilize this hardware x64b OS is needed and Windows has x64b editions for a while.

But what happens with the software we write?! if you use managed code only then is easy – IJW – It Just Works (do you remember that term for compiling unmanaged code C++ into IL? well that’s different)

As MSDN article “Migrating 32-bit Managed Code to 64-bit” says

Consider a .NET application that is 100% type safe code. In this scenario it is possible to take your .NET executable that you run on your 32-bit machine and move it to the 64-bit system and have it run successfully. Why does this work? Since the assembly is 100% type safe we know that there are no dependencies on native code or COM objects and that there is no 'unsafe' code which means that the application runs entirely under the control of the CLR. The CLR guarantees that while the binary code that is generated as the result of Just-in-time (JIT) compilation will be different between 32-bit and 64-bit, the code that executes will both be semantically the same. (You cannot install the .NET Framework version 2.0 on Windows 2000. Output files produced using .NET Framework versions 1.0 and 1.1 will run under WOW64 on a 64-bit operating system.)

If you want to dig into x64 vs x86 differences read Scott Hanselman’s article “Back to Basics: 32-bit and 64-bit confusion around x86 and x64 and the .NET Framework and CLR

Also check Brian Peek’s blog post on the subject

Finally up & running

As you might noticed this week the site was down. This was due to hosting upgrade to favorite IIS7 and some issues with dasBlog and one of it’s controls. Luckily I was able to fix it and also upgraded to dasBlog v2.2.

Hopefully there won’t be any downtime next… 10 years (next upgrade should be handled nicely :) ) Not like I am planning uptime 5 nines – 99.99999% :)

Now seriously:

If you planning your servers’ availability you might want to check how Ops are doing it by taking a consultation from them for free. Why?! Because these are the results (as of 2005) – just imagine what are now:


  • 3 Data Centers
  • 1606 Data Center Servers
  • 506 Servers in Labs
  • 111 Web Sites
  • 1069 Databases
  • 1000’s of Web Applications
  • 80+Gbit/sec Network Traffic

  • 13 million unique users/day
  • 70 million page views per day
  • 10,000 requests/sec, 300 concurrent connection on 80 servers
  • 350 Vroots

Windows Update/Download:

  • 150 million unique client scans/day
  • 12,000 ASP.NET requests/sec
  • 500K concurrent connections
  • 1 Billion Downloads and 750K client installs in 2 weeks (April 2006)
  • 4Gbit/sec Web Site Egress (Web Pages Only…No Downloads)
  • 20+ Billion Downloads in 2005…Routinely 150M+/Day