Sunday, September 7, 2008
The .NET Solution Features
The solution proposed by .NET is “Change everything” (sorry, you can’t blame the messenger for the message). The .NET Framework is a completely new model for building systems on the Windows family of operating systems, as well as on numerous non-Microsoft operating systems such as Mac OS X and various Unix/Linux distributions.
To set the stage, here is a quick rundown of some core features provided courtesy of .NET:
• Comprehensive interoperability with existing code:
This is (of course) a good thing. Existing COM binaries can commingle (i.e., interop) with newer .NET binaries and vice versa. Also, Platform Invocation Services (PInvoke) allows you to call C-based libraries (including the underlying API of the operating system) from .NET code.
• Complete and total language integration:
.NET supports cross-language inheritance, cross language exception handling, and cross-language debugging of code.
• A common runtime engine shared by all .NET-aware languages:
One aspect of this engine is a well-defined set of types that each .NET-aware language “understands.”
• A comprehensive base class library:
This library provides shelter from the complexities of raw API calls and offers a consistent object model used by all .NET-aware languages.
• No more COM plumbing:
IClassFactory, IUnknown, IDispatch, IDL code, and the evil variant compliant data types (BSTR, SAFEARRAY, and so forth) have no place in a .NET binary.
• A truly simplified deployment model:
Under .NET, there is no need to register a binary unit into the system registry. Furthermore, .NET allows multiple versions of the same *.dll to exist in harmony on a single machine.
As you can most likely gather from the previous bullet points, the .NET platform has nothing to
do with COM (beyond the fact that both frameworks originated from Microsoft). In fact, the only
way .NET and COM types can interact with each other is using the interoperability layer.
Apress Pro C Sharp 2008 and the dotNET 3.5 Platform 4th Edition Nov. 2007, Andrew Troelsen