Terminology


Unfortunately, nearly every computing term is overloaded and interpreted differently by many developers. To clarify what basic .NET Framework terms mean in this book, this section defines a number of fundamental and basic terms. These terms are defined from the ground up. For an alphabetical listing that is far more precise and complete, see the Glossary at the end of this book.

The Type System

The type system is the part of the CLR that defines all the types that programmers can use. A type is a definition, or blueprint, from which a value can be instantiated . The CLR contains many types, such as value types and reference types. Reference types are subdivided into object types , interface types, and pointer types . An object type is similar to a class in many object-oriented programming languages, such as Java.

Types have members . These members can be either fields or methods . As discussed later, properties and events are special types of methods. Fields and methods can be described as either a type or an instance. A type field or method can be thought of as coexisting with the type's definition; as a consequence, it can be accessed or invoked even if no values of that type are currently instantiated. Instance fields can be envisioned as existing in objects; as a consequence, access to an instance field always occurs via a value. Instance methods can be invoked only on a value.

The Metadata System

The metadata system is the part of the CLR that describes the types in the CLR. Compilers use the metadata to make types available in their own languages, and the execution system uses metadata to manage types at runtime. Metadata is stored in a binary format. Tools and programmers can access the metadata via APIs without needing to understand the binary format.

The Execution System

The execution system is the part of the CLR that is responsible for loading assemblies, controlling execution flow, and managing the garbage collected heap. Logically, an assembly is similar to a DLL; that is, it can be loaded into memory and the types and methods it contains can then be used. Unlike a DLL, however, an assembly is a collection of files and is identified not only by its name but also by other attributes such as its version number. The terms managed code and managed data qualify code or data that executes in cooperation with the execution engine. Managed code provides the execution system with sufficient metadata to allow facilities such as stack walking to verify security constraints. Managed data provides sufficient metadata to allow the execution engine to support facilities such as automatic lifetime management. Unmanaged code or data is not controlled by the execution engine and, therefore, cannot use the features of the execution system.



Programming in the .NET Environment
Programming in the .NET Environment
ISBN: 0201770180
EAN: 2147483647
Year: 2002
Pages: 146

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net