Quote:
Originally Posted by badkarma
It does compile to EXE for ARM processors I take it (IPAQ rw6815)?... I guess it will say somewhere on the site - will delve a bit more shortly into the docs on the website.
|
You will need to read up a bit about .the NET Framework to fully understand what is going on.
To be pedantic the IDE compiles/tokenises into byte codes that are interpreted at run time when debugging. There are two compilers, one, the legacy compiler, packages the byte codes with a standalone runtime engine. The other, the optimising compiler, emits C# code that is immediately compiled down to (Microsoft) Intermediate Languange (IL or MSIL) which is assembler code for a virtual (non-existent) processor. The runtime packaged with the legacy is also IL.
All .NET exes and dlls contain code for this virtual machine, not native machine code. This is why exactly the same libraries, and some exes, can function on device (ARM) and desktop (x86). They are not processor dependent. When the exe/dll is run the .NET Framework Just In Time Compiles (JITs) the code into native intructions for execution.
The advantage of .NET is security. The .NET Framework manages a program's memory automatically so that memory leaks for .NET programs are eliminated. It ensures the code executes correctly without overwriting things it shouldn't like addressing beyond buffers and using out of bounds array indexes.
The IDE and legacy compiled apps require .NET Framework version 1.1 on the desktop and Compact Framework 1.0 on the device but will actually run better under the later versions as these are more efficient. Optimised compiled apps require .NET Framework version 2.0 on the desktop and Compact Framework 2.0 on the device. Most libraries will run with either of version of the Framework except for those that offer functionality only available with the later Framework. Different versions of the Frameworks are designed to be able to co-exist side by side on a machine. DLL hell does not exist for .NET programs!
You may gather that I am a .NET and B4PPC fan

.NET is the future! Microsoft is deeply committed to .NET for both server and workstation software. A compatible third-party framework called Mono that is free implements .NET under Linux and allows .NET exes and dlls compiled under Windows to run. It is not immediately obvious but Microsofts' new Silverlight executes on a cut down .NET framework.