.NET Fundamentals
What .NET is:
•        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:
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

  .NET Base Type

  VB

  C#

  C++/CLI

  System.Byte

  Byte

  byte

   char

  System.SByte

  SByte

  sbyte

  signed char

  System.Int16

  Short

  short

  short

  System.Int32

  Integer

  int

  int or long

   System.Int64

  Long

  long

  __int64

  System.Uint16

  UShort

  ushort

  unsigned short

  System.Uint32

  UInteger

  uint

  unsigned int or unsigned long

  System.Uint64

  ULong

  ulong

  unsigned __int64

  System.Single

  Single

  float

  float

  System.Double

  Double

  double

  double

  System.Object

  Object

  object

  object

  System.Char

  Char

  char

  __wchar_t

  System.String

  String

  string

  String

  System.Decimal

  Decimal

  decimal

  Decimal

  System.Boolean

  Boolean

  bool

  bool