If you have ever ran a program and received a message like the one below, there is a good chance that you have heard of the .NET Framework. But what is it exactly? To answer that question, we will need to put our programming glasses on!
What is the .Net Framework really?
The .Net Framework is a coding library that Microsoft developed to allow programming to develop programs much more easily and cohesively. This was done by creating an uniform set of functions that any program written in C++, C#, VB or even F# can use. But that is just the tip of the iceberg.
Why does it exist?
The .Net Framework is there to make programming on Windows easier and more cohesive. This means you can easily download Visual Studio and write a single application using multiple languages. This works on a deeper level, as all programs made that use the .Net Framework are converted to binary similar assemblies that can work with each other regardless of the language they were developed in. Can you explain more? Sure! This binary compatibility is obtained by a mechanism called jit compilation.
Just in time compilation
The .Net Framework incorporated a concept of jitting code just when they are run, hence the keyword JIT: Just in time compilation. This allowed applications to run more efficiently on different systems and hardware. However, a massive flaw arose from the concept of just in time compilation, that is the security and privacy of the source code of programs written on the framework.
Security and Privacy concerns with Jitting
As code is compiled just in time, this means that the precompiled code, must exist beforehand. This is in fact true. The precompiled code is remarkedly similar to your original source code, and is called Intermediate Language or IL for short. When your source code is compiled against the .NET Framework, your code is converted to IL, instead of native code.
IL vs Native Code
However, having your programs code in IL presents a major security and privacy flaw: the fact that IL can be easily converted back to C#, VB or C++ source code. Obviously, this is not good, as hackers can easily identify your program's functionality and exploit them for their own benefit. Furthermore, illegal copies of your program can be easily made by modifying your source code. Tools such as Reflector, and dotPeek can easily do such things.
The upside of IL
But IL isn't all bad. IL is good in the sense that your code can be compiled to a more hardware specific form when executed. This leads to faster performance and better memory management, or simply put: a better app.
So now, you have a general understanding of what the .Net Framework really is, and what its applications are, what do you think? Do you think Microsoft should have just stuck to the old native DLL and EXE format of things? We certainly think so.