My objective in designing this article is to put an end to
the arduous struggle of an IT professional seeking an understandable resource
for the core terminologies of Microsoft.NET. Let me save you valuable time and
energy by providing you with an article that gives you many of the important
terminologies in Microsoft .NET and its related technologies. This article
discusses most of the important terminologies related to Microsoft .NET
Framework, ASP.NET, ADO.NET, Remoting and Web Services. The terminologies are
not organized in an alphabetical order, rather they are organized in the order
of the categories that they belong to.
The Common Language Specification
This is a subset of the Common Type System (CTS) and defines
a set of conventions that are targeted at language interoperability of all the
languages that run within the .NET environment.
The Common Type System
The Common Type System (CTS) is a standard that defines the
necessary rules for type interoperability for the languages targeting the .NET
environment. The common type system supports the following types.
.NET Framework Class Library
Framework Class Library (FCL) is a set of managed classes that are responsible
for providing access to the system services in the managed environment of
The Common Language Runtime
The CLR is a runtime execution engine of .NET that provides
an environment to execute programs that are targeted at the .NET platform. It provides
memory allocation, security, code verification, type verification, exception
handling and garbage collection in the managed environment.
Common Language Infrastructure
The Common Language Infrastructure or the CLI provides
support for language interoperability in the .NET managed environment. It is
comprised of the following features.
A File Format (PE)
Base Class Library
An assembly is a group of resources and types, along with the
metadata about those resources and types, deployed as a single unit.
Just In Time Compiler
The Just In Time Compiler or the JIT is responsible for
compiling units of code and caching them at runtime as and when they are
needed. Since the compilation occurs at runtime, it is known as a Just In Time
A program compiled in the .NET managed environment generates
an intermediate code to support platform independence. This is called the MSIL
or Microsoft Intermediate Language.
A Strong Name is a unique identifier given to an assembly
using cryptography and a digital signature that is used to identify a
particular assembly. An assembly is provided a strong name using the utility
A strong name consists of the following.
Name of the Assembly
Global Assembly Cache
The Global Assembly Cache is a system wide storage of shared
assemblies. Assemblies can be stored or moved to and from the Global Assembly
Cache using a tool called GacUtil.
A managed code is one that provides restricted access to the
system’s resources and can be executed only in a managed environment that is
provided in Microsoft .NET by the Common Language Runtime.
An Un-Managed code is one that executes outside of the
Common Language Runtime environment and can perform unsafe operations.
Managed Data refers to the objects that are created by the
Common Language Runtime environment and can be garbage collected implicitly by
the Garbage Collector.
A Shared Assembly is one that can be referred by more that
one application. All shared assemblies should contain a strong name and should
be located in the Global Assembly Cache (GAC).
A Private Assembly is one that is private to one
application. In other words, it can be accessed by the containing application
When you wish to localize the application, it can be written
in culture-neutral code and can distribute the localized modules in separate
assemblies called satellite assemblies.
The Assembly Manifest contains the information about an
assembly. This includes the version number of the assembly, the list of the
files that comprise the assembly, etc. An assembly manifest is contained in
the dll file or the exe file itself.
A resource refers to an addressable unit of data that is
available for use by an application. It consists of one or more of the
The .NET tool called resgen.exe is used to create resource files
from the resource information that is stored in text or XML files.
Localization is the practice of designing and developing
software that will properly use all of the conventions defined for a specific
locale. An assembly that is used to provide localization feature in ASP.NET
applications is referred to as a Satellite Assembly.
Native Image Generator
This is a .NET tool that is used to compile a managed
assembly to the native code and then store that in the local assembly cache. The
name of this tool is Ngen.exe.
A value type is one that contains the value rather than the
reference and is stored in the stack memory. Examples of value types are
integers, floats, doubles, structures, etc.
A reference type contains a reference to the actual object
in memory and is stored in the managed heap. Objects of classes are good
examples of reference types.
Boxing refers to the conversion of a value type to a
reference type. Value types are stored in the stack and reference types are
stored in the managed heap.
This refers to the conversion of a reference type to a value
Garbage Collection is a technique introduced in Microsoft
.NET that manages memory cleanup implicitly. This implicit reclaiming of
memory in the .NET managed environment is handled by the Common Language
The Dispose method can be used in an unsealed class to
cleanup resources explicitly. It should be noted that both the Dispose and the
Finalize methods should make a call to their parents' respective methods after
they have disposed or finalized their own members. A class that needs to have
this method implemented should implement the IDisposable interface.
The finalize method is a protected member of the Object class
and is implicitly called at the runtime to cleanup unmanaged resources before
the object is destroyed.
This is a feature that enforces type safety or type security
by checking the code prior to its execution in the run time environment.
Therefore, it does not allow malicious code to get executed in the managed
Authentication and Authorization
This is a security measure that is used to specify the
user’s identity and authorization in ASP.NET. The process of authorization
determines whether an authenticated user has access to a specific resource. Authentication
and Authorization details of an ASP.NET application are specified in the
web.config file. There can be three types of authentication in ASP.NET.
The web.config file is the configuration file for an ASP.NET
web application. Typically, the following information is stored in a
Database Connection Strings
The machine.config file contains the configuration settings
for the entire application and is located in the Config sub-folder of the Microsoft
.NET installation directory.
ASP.NET is a language neutral, interoperable, server-side
technology that allows creation, execution and deployment of scalable Web
Applications and Services.
Caching is a feature that stores the data in the memory for
serving the incoming requests from the memory itself. Caching in ASP.NET can
be of three types.
Page Output Caching
Page Fragment Caching
A singleton pattern states that we can have a singleton
class that can be instantiated only once in the application domain and provides
a global point of access to it.
An application domain refers to the logical and physical
boundary created around every .NET application. An application domain is
created by the Common Language Runtime and supports execution of multiple .NET
applications in the same process by isolating them in different application
This is a client-side state management technique that continues
the state of server controls by maintaining the state of pages across
postbacks. The view state is an encoded hashed string and is stored in a
hidden field called __VIEWSTATE.
A session is the period of a connection between a server and
a client. The Session State allows storage of objects in a user’s session. A
session can be stored in one of the following ways.
This is a state management technique that allows objects to
be stored and then globally accessed or shared by multiple modules of the
application. In ASP.NET, application state is maintained by the class
Interface Definition Language (IDL)
The Interface definition Language (IDL) defines a protocol
between the server and the client so that they can communicate in heterogeneous
Universal Description, Discovery and Integration (UDDI)
Universal Description, Discovery and Integration is a
platform independent, XML based, distributed directory that allows the
enterprises to list themselves over the internet. The UDDI business registration
contains the following features.
Web Service Description Language (WSDL)
The Web Service Description Language (WSDL) defines XML
based contract services for describing the network services as a collection of
communication end points. A WSDL document contains the following.
Port and its type
Simple Object Oriented Protocol (SOAP)
This is an XML-based protocol that is used to exchange
structured data and type information in a distributed environment.
A web service is SOAP based, platform–independent software
component that exposes itself through open communication channels of the web
applications running on potentially different platforms.
Remoting allows two processes, a Server and a Client, to
inter-communicate in the same system, the same network or across networks. In
Remoting, a server and client communicate using a Channel.
Service Oriented Architecture
Service Oriented Architecture is an architecture that
provides a seamless Enterprise Information Integration between loosely coupled
distributed applications or services over the network.
A service is an implementation of a well-defined, self-contained,
independent business functionality that accepts one or more requests and
returns one or more responses through a well-defined, standard interface.
Smart Client Architecture
The Smart Client Architecture is a deployable, multi-platform
architecture that allows local application to connect to a server based application
using web services. It provides an adaptive and rich user interactive
experience by using local resources. A Smart Client application can work in
both connected and disconnected modes.
ADO.NET is an object oriented data access technology that
enables you to access data from a managed environment. It is essentially a
collection of some classes used to communicate between an application and a
A Connection Pool is a pool of available or ready-to-use
connections. When a new connection is requested it is served from the
connection pool if one exists. If not, a new connection is created. Connection
Pooling improves the performance of applications to a large extent.
A DataProvider encapsulates the protocols that ADO.NET uses
to interact with different types of databases.
The DataSet is an in–memory, disconnected, XML compliant
representation of the data. Data in a DataSet can be changed, unlike a
DataReader which is read only.
A DataReader is a connected, forward only, read only stream
of data that is retrieved from the database.
The DataAdapter is a bridge between the DataSet and the
underlying database. It provides a set of methods and properties to move data between
a database and its in-memory representation, the DataSet.
A DataView is a class that provides a customized view of the
DataSet. It is typically used to sort or filter the rows.
The Command object is used to send the SQL Statements to the
database. Commands are used to insert data, retrieve data and execute stored
procedures in the database.
The Connection object establishes a connection to the
database using the user name, password and the database name as parameters.
A transaction is a block of statements that guarantees that
all or none of the statements in the block are executed. In ADO.NET, a
transaction can be started by using the BeginTransaction() method on the
currently active Connection. To commit the transaction, the method
CommitTransaction() is used. In order to abandon the transaction, the method
Rollback() is executed.
This refers to the storage of an object into a persistent
storage medium in a stream of bytes. The opposite is de-serialization and is
used to retrieve a serialized object from a storage medium.
This is a feature that allows us to inspect the metadata of
an assembly at runtime. Reflection can be used to retrieve metadata
information, such as the following.
This is a set of Microsoft Server Applications that allow
integration, automation and management of different server applications.
This is a set of Microsoft Server Applications that are
responsible for integrating messaging and data storage technologies.
This is Microsoft’s Business Server that is used for
managing and developing business web sites.
An array is a collection of homogenous objects. It is a
group of elements of the same type that share a common name. The size of an
array is fixed and cannot be changed at runtime.
An ArrayList is a collection of heterogeneous elements-
elements of different types. Unlike an array, its size can be changed
A HashTable is a collection of heterogeneous objects that
can be referred using either an index or a key. Elements of an ArrayList can
be referred to using an index only.
COM+ or COM Plus is a distributed, transactional,
component-based technology that can be used in a multi-tiered architecture and
provides support for Object Pooling.
A delegate is a managed function pointer that refers to a
method. A multi-cast delegate is one that points to and can eventually fire
off different methods. A delegate is used to implement event handling in
An event handler is a method that is executed in response to
An exception is an event that is generated as a result of a
runtime error. An exception is handled using the exception blocks. An
exception that cannot be handled is referred to as a fatal exception and causes
the flow of execution of the current program to terminate unexpectedly.
A try/catch block is used in exception handling and provides
a mechanism to trap runtime errors that can occur on execution of the
application. A try block contains the code that can generate a runtime error.
The catch block contains statements that are executed once the appropriate
exception has occurred. A try block can contain one or more catch blocks or a
A finally block is one that is executed irrespective of
whether an exception occurs or not. Typically, it is used in Exception
Handling mechanism to release resources.
A namespace refers to a logical grouping of types or
identifiers used in a program.