An Introduction to .NET

The predominant implementation of .NET technologies is the full Microsoft .NET Framework, versions 1.0, 2.0 and recently 3.0. The Mono Project provides another implementation of the full .NET Framework running on Linux. Any .NET Framework is based on the Common Language Infrastructure which is an open specification as published by the ECMA -335 standard.

.NET for Mobile Devices

Microsoft have also provided a mobile device specific implementation of .NET called the Microsoft .NET Compact Framework (CF), versions 1.0 and 2.0. Mobile applications built on .NET CF1.0 or .NET CF 2.0 currently are only able to run on devices based on the Windows Mobile operating system. Red Five Labs now makes it possible for .NET Compact Framework 1.0 applications to run on the Symbian Operating System.

What is a .NET Compact Framework?

The Microsoft .NET Compact Framework is a rich subset of the full framework designed to run on resource constrained devices, such as PDA's and smartphones. Developers using the .NET Compact Framework benefit from writing code in a managed execution environment whilst retaining the ability to take full advantage of device specific, native APIs and functionality.

 A .NET Compact Framework, as in the full .NET Framework comprises of two main parts:

  1. Common Language Runtime, and
  2. Class Libraries.

The Common Language Runtime (CLR) is the execution engine or 'virtual machine' which manages the execution of code on the incumbent operating system, whilst the Class Libraries are the framework of functions and data types available to developers using the Compact Framework.

What is the benefit of a Managed Execution Environment?

Code that executes in a managed execution environment is referred to as managed code. As a result managed code is more robust than native code as:

  • there are no broken pointers,
  • there are no memory leaks, and
  • no data type errors.

Secondly, the Class Libraries make a developer's job much easier as it encapsulates a large number of common functions performed when writing applications that are easily accessible via standardised APIs.

What tools are available to develop .NET CF applications?

Languages: C# or Visual Basic .NET are the two supported programming languages at present.
IDEs: Visual Studio 2003 and Visual Studio 2005 are the supported development environments.
Documentation: The Microsoft MSDN site is a great source of developer information and support.