I am confused as to what exactly .NET actually is. I am a Computer Science student who has done a lot of Win32 (WinAPI) programming in C++ & have a pretty good understanding of how Win32 functions interact with COM & the Windows Kernel itself.
But where does .NET fit into all this?
Specifically, if Win32 is an API written in C, what is .NET? Is it an API written in C also? Does it only run on Windows OS like Win32?
Does .NET run on top of the Win32 API? For example a .NET function showWindow()
(I made that up obviously) call Win32 functions behind the scenes to show the window or does it go directly to the Kernel to do this? Or is .NET like the Java Virtual Machine?
Does .NET interact with the Windows Kernel directly (like Win32) & interact with COM objects? Does .NET run in a sandbox & not allow some access to certain OS areas?
I can code in different languages using the Win32 API such as c/c++, VB, Perl. What languages can I code in .NET?
This is what really stumps me. I hear about web applications written in .NET? What, how, wha? What language is it written in? Does .NET run on top of IE? Do .NET web applications work on Firefox or on Safari(MacOS)? Is a .NET web app like a java applet, do you get .NET drive bys too.
The Microsoft Windows kernel provides basic low-level operations such as scheduling threads or routing hardware interrupts. It is the heart of the operating system and all tasks it performs must be fast and simple.
The main difference between Windows Kernel and Linux Kernel is that Windows kernel, which is in Windows Operating System, is a commercial software while Linux Kernel, which is in the Linux Operating System, is an open source software. The kernel is the core of the operating system.
In the case of windows, there is a bit of a mix of three programming languages that they used to develop their OS. The mixture of languages involved C, C++ and C# where the first two were used to develop the most of the legendary code, while C# has been used in fairly recent upgrades, like .
NT-based Windows is classified as a hybrid kernel (or a macrokernel) rather than a monolithic kernel because the emulation subsystems run in user-mode server processes, rather than in kernel mode as on a monolithic kernel, and further because of the large number of design goals which resemble design goals of Mach (in ...
Some brief answers to keep you going:
Specifically, if Win32 is an API written in C, what is .NET? Is it an API written in C also?
.NET consists of multiple parts. One part is called the CLR. That part is written in C++, C++/CLI, and some assembly. This is responsable for Running the .NET appplications. The Just-In-Time (JIT) Compiler is an important part of this.
Then there are the included libraries. These are mostly written in C#, but some of them presumably have parts written in C++/CLI. You can actually get the source code for many of the included libraries.
Does it only run on Windows OS like win32?
Also no, there is a port that runs on Linux (called Mono), there is the version that runs on WIndows Phone 7, and then there is Silverlight which also runs on Macs....
Does .NET run ontop of the win32 API?
To a large degree, yes, although in some places it is starting to replace the regular WinAPI (it was certainly Microsoft's plan at one stage to try and .Net-ify most or all of the WinAPI). I wouldn't be writing drivers with it though, you will still use regular C/C++ interfacing to the Kernel API.
The libraries do make calls to many different portions of the win32 API. This is required to smoothly interoperate with other Windows Applications.
Does .NET interact with ... COM objects?
Yes it does, using COM interop.
Does .NET run in a sandbox & not allow some access to certain OS areas?
Some variants of the runtime can be sandboxed (Silverlight, WPF XBAP). .Net applications which possess the UnmanagedCode
permission can also call code written in unmanaged C++ with full unfettered access to the system (you still have to abide by little pesky things like file ACLs though).
I can code in different languages using the win32 API such as c/c++, VB, Perl. What languages can I code in .NET?
.Net is a runtime library with JIT compilation. There are many languages you can use that are built on top of the framework. The JIT compilation is also not mandatory - you can still compile your applications to target a specific CPU architecture.
I hear about web applications written in .NET? What, how, wha? What language is it written in? Does .NET run ontop of IE? Does .NET webapps work on Firefox or on Safari(MacOS)?
Those applications can be written in any .Net language, although practically most of them will be using C# and VB.Net. You must have heard of ASP? Well, ASP.NET (and its sister ASP.NET MVC) is the next generation - this runs on the server and renders out HTML + javascript like many other server side languages. You also have the option of running Silverlight on the client, it can run both in and out of the browser. Silverlight most definitely works in Firefox, Safari and Chrome.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With