software
Report a problem

Windows x64 and the Microsoft .NET Framework: 32 or 64-bit?

Tekmaven   on 23 March 2005 - 17:13 · 12 comments & 6003 views

Advertisement (Why?)
The Microsoft .NET Framework is the core “runtime” and libraries for all Microsoft .NET applications. On Windows x64, the Microsoft .NET Framework v1.1 will run as a 32-bit application – not as a 64-bit application. In the next release of .NET, the installer will install a native x64 version of the .NET framework, along with a 32-bit version (yes, TWO identical .NET Frameworks – one x64 and one 32-bit). To understand why Microsoft is doing this, let me explain how .NET applications really “work”.

When a developer is finished writing his application, he uses a .NET enabled compiler to compile his code into a .NET assembly (usually into a .exe or a .dll file). A .NET Assembly does not contain any architectural “machine” code, it contains “MSIL” – Microsoft Intermediate Language. When you run a .NET assembly, the .NET “CLR” – Common Language Runtime reads the MSIL and converts it into code that your architecture can understand.

With this in mind, why doesn’t .NET 1.1 run assemblies as an 64-bit process on Windows x64? The quickest answer would be, .NET 1.1 simply does not have any type of x64 support. So why not make a patch, or release an update to .NET 1.1 to make it support running 64-bit assemblies?

The answer is compatibility. In .NET, a developer can still use COM controls and make Win32 calls in their assemblies. A 64-bit application can’t host 32-Bit COM controls, and if you ran an assembly in 64-bit mode – it would have a problem if it made a 32-bit specific call.

View: Extended64

Post a comment · Send to friend Comments · There are 12 additional comments

Commenting has either been disabled on this article or you are not logged in. Click here to login or register, its free!

Note: Anonymous commenting is disabled in order to keep the quality of responses to a high standard.

Advertisement (Why?)