The .NET Universe
•        A robust development and runtime environment.
•        An improvement and replacement for COM.
•        A platform for building fast web and desktop applications.
•        Programming language agnostic.
•        A set of specifications submitted to ECMA to allow ports to non-Windows operating systems.
•        A runtime that provides memory management and type verification.

What .NET is not:
•        Not just about the web or web services.
•        Not confined to the Windows operating system.
•        Not an operating system itself.






















The .NET runtime runs on top of the underlying operating system.  Vista ships with the .NET runtime
preinstalled.  Other Windows OSs can be configured using the freely downloadable .NET runtime installer
(dotnetfx.exe- the exact name of the executable will be based on which version you are installing).  Other OSs
(Mac, Linux, Solaris, etc) require installation of an ECMA-compliant .NET distribution (again, more
information at the end of this chapter).

Here are a few key .NET components (each will be detailed later):

  • Common Type System (CTS): A standard for type definitions and functionality that .NET languages
    can support.
  • Common Language Specification (CLS): A subset of the CTS that all .NET languages must support.
  • Common Language Runtime (CLR): A library of utility classes for building desktop, web, or any type
    of application, as well as a runtime for executing .NET code with garbage collection and type
    verification.
  • Common Intermediate Language (CIL): All .NET languages compile to this platform-independent
    language.
  • Assemblies: A new name and structure for EXE and DLL files.

The Role of the Common Type System (CTS).  The Common Type System (CTS) is a formal specification
describing how types must be defined to work in the .NET world.  The CTS solves many language-
interoperability issues.  All .NET languages share the same intrinsic data types.  Any  .NET language is free to
define its own corresponding keywords for each intrinsic type.  Although each language will have its own
syntactic representation of a given type, each aliases the same type in the CTS.  Some exceptions exist. For
example, languages may vary on their support for unsigned types.  Therefore, do not use unsigned types if you
wish to achieve full interop!

Here is a summary of VB, C#, and C++ / CLI support for the CTS:

.NET Base Type        VB
    System.Byte        Byte
    System.SByte        SByte
    System.Int16        Short
    System.Int32        Integer
    System.Int64        Long
    System.Uint16        UShort
    System.Uint32        UInteger
    System.Uint64        ULong
    System.Single        Single
    System.Double        Double
    System.Object        Object
    System.Char        Char
    System.String        String
    System.Decimal        Decimal
    System.Boolean        Boolean


.NET Base Type        C#
    System.Byte        byte
    System.SByte        sbyte
    System.Int16        short
    System.Int32        int
    System.Int64        long
    System.Uint16        ushort
    System.Uint32        uint
    System.Uint64        ulong
    System.Single        float
    System.Double        double
    System.Object        object
    System.Char        char
    System.String        string
    System.Decimal        decimal
    System.Boolean        bool

.
NET ET Base Type        C++/CLI
    System.Byte        char
    System.SByte        signed char
    System.Int16        short
    System.Int32        int or long
    System.Int64        __int64
    System.Uint16        unsigned short
    System.Uint32        unsigned int or unsigned long
    System.Uint64        unsigned __int64
    System.Single        float
    System.Double        double
    System.Object        Object
    System.Char        __wchar_t
    System.String        String
    System.Decimal        Decimal
    System.Boolean        bool
Copyright (c) 2008.  Intertech, Inc. All Rights Reserved.  This information is to be used exclusively as an
online learning aid.  Any attempts to copy, reproduce, or use for training is strictly prohibited.
Table of Contents
Courseware
Training Resources
Tutorials