Rarely does a developer from academia make use of a pure programming language. Instead, development frameworks perform the backbone of work done in an application, handling concerns like serialisation, network transport, graphical rendering, threading, and UI layers. If every new application required its own implementation of these sorts of functions by accessing hardware and operating system layers directly, development would be a prohibitively expensive exercise and the software industry could never have exploded as it has over the past 20 years.
Such frameworks are organised into Namespaces, which start out broad and become increasingly specific, a little like a web address. At the top level you may have System or Microsoft for instance, which will then become more specific. The System namespace contains both the Math and Io (input/output) classes which contain functions of their own. Thus a developer might call System.Math.Round() in order to round off a decimal number, which is actually accessing a static method in the System.Math namespace. These namespaces are frequently more complex but effectively divide the framework into smaller pieces, frequently in different class libraries (dll files) which can be individually referenced to reduce the size of a deployed application. The .NET framework is installed as a core part of all modern versions of Windows and thus ensures that an application will function the same way on any Windows machine, regardless of its specific hardware. This commonality of experience is achieved via the Common Language Runtime, which is the second component of the framework and complements the aforementioned Framework Class Library.
The CLR is essentially a layer between your application and the operating system. It provides the specifics of elements like security and memory management that wrap your application. Your implemented program written in C#, for example, is compiled down to a generic language (known as CIL, or Common Intermediate Language) by your compiler. Because this is true for every language using the .NET framework, components written in different languages can seamlessly interact, allowing for instance, an F# application to log events to a C# server. As a result, developers can use the right language for the right task without worrying about how to integrate all the component parts.
At the time of this writing, the latest .NET framework version is 4.6. More recent versions of the framework have increased the availability to developers of things such as multi-threading; previously a deeply complex architecture to implement (and it remains so in other languages). This puts more power in the hands of a developer to deliver maximum performance without making their code so complex as to be unreadable.
Are you sure you don't want to upload any files?
Fast tutor response requires as much info as possible.