That Supports Building and Running The Next Generation of Software Applications and XML Web Services
That Supports Building and Running The Next Generation of Software Applications and XML Web Services
NET Framework:
The .NET Framework is an integral Microsoft Windows® component
that supports building and running the next generation of software
applications and XML Web services.
Abstract
Class Libraries 4
Architecture Drilldown 8
ASP.NET 15
Windows Forms 17
Directory Services 21
Enterprise Services 22
InteropServices 22
Management 23
Remoting 24
Security 25
Administration 27
Inside ASP.NET 32
Application Configuration 34
Updating Applications 35
Extensibility 35
State Management 36
Code Compilation 36
Caching 36
Security 37
Work Offline 50
Forms 53
Controls 53
Events 54
Creating Controls 54
SUMMARY....................................................................57
Multilanguage Support 57
Operational Excellence 57
Developer Productivity 58
Standards-Based 58
Minimum Requirements 64
Recommended Software 64
Hardware Requirements 65
XML Standards 66
Development Tools 70
Enterprise Servers 70
Microsoft Office 74
APPENDIX E: GLOSSARY.............................................75
Class Libraries
Base classes provide standard functionality such as input/output,
string manipulation, security management, network communications,
thread management, text management, user interface design
features, and other core functions. The ADO.NET data classes
enable data access and manipulation. XML classes enable XML
manipulation, searching, and translations. The ASP.NET classes
support the development of Web applications and XML Web
services. The Windows Forms classes support the development of
Windows-based smart client applications. Together, the class
libraries provide a common, consistent development interface
across all languages supported by the .NET Framework.
On the client, the .NET Framework can be used for the following
types of applications:
Architecture Drilldown
As mentioned above, the .NET Framework includes the common
language runtime and a complete set of class libraries. In this
section, we will explore at a lower level the functionality provided by
these features.
Class Loader
For example, consider the following line of code, which uses generic
(non-typed) programming:
If TotalCost >
Table("Customer").Column("AvailableCredit")
If TotalCost >
DataSet1.Customer("Jones").AvailableCredit
This line of code is equivalent to the earlier line that used non-typed
programming. In the typed code, the code is easier to read: A
business analyst with little or no programming experience can grasp
the meaning of the condition being tested without having to filter out
the data programmer vocabulary in the conventional line of code.
XCOPY Deployment
There are several ways to deploy a DLL into the global assembly
cache. The .NET Framework ships with a command line utility
(gacutil.exe) as well as a Microsoft Management Console snap-in
(the .NET Framework Configuration Tool) which can also be used.
Alternatively, one can simply drag and drop the assembly into the
GAC using Windows Explorer.
By default, the CLR will retrieve from the GAC the particular DLL
against which an executable was compiled. However,
administrators may write a simple XML configuration file or use
the .NET Framework Configuration Tool to redirect an executable to
bind against a different version of a DLL than the one against which
it was built.
Side-by-Side Execution
No-Touch Deployment
Because the CLR is used to load code, create objects, and make
method calls, the runtime can actually perform low-level security
checks and enforce these security policies as code is loaded and
executed.
In version 1.0 of the .NET Framework, code access security did not
Some of the .NET Framework key class libraries are shown in the
The .NET Framework class libraries figure at left.
We will first take a look at the three high-level class libraries used to
build server and client applications, specifically:
ASP.NET (System.Web)
ASP.NET
ASP.NET provides a set of controls as well as a run-time
environment and infrastructure that enable developers to build
scalable, reliable, and secure Web applications more quickly than
ever before.
Open Internet
through standard, platform-independent protocols such as XML,
Communications Protocols
(HTTP, SMTP, XML, SOAP) SOAP, and HTTP. XML Web services provide a low-cost, scalable,
Cellular Rich and flexible solution to the challenges of integration.
Phones Clients
An XML Web service is an application that XML Web services solve the challenges facing Web developers by
exposes its functionality programmatically combining the tightly coupled, highly productive aspects of n-tier
over the Internet or intranets using standard
computing with the loosely coupled, message-oriented concepts of
Internet protocols, such as HTTP and XML.
the Web. Think of XML Web services as component programming
over the Web.
Windows Forms
The unified class libraries also offer full, rich support for developing
Windows-based smart client applications.
Developers who write smart client applications for Windows can use
the Windows Forms (System.Windows.Forms) classes to take
advantage of all the rich user interface features of the operating
system, reuse existing Microsoft ActiveX® controls, harness the
graphical capabilities of the GDI+ graphics library, and build
applications that will run offline. Smart client applications may
consume XML Web services in the same manner as ASP.NET Web
applications. Overall, developers will find the Windows Forms
classes and Visual Studio .NET design-time support for them very
intuitive, given their similarities to existing Windows-based forms
packages.
XML (System.XML)
InteropServices (System.Runtime.InteropServices)
Management (System.Management)
Remoting (System.Runtime.Remoting)
Security (System.Security)
Once these records are fetched, the application typically works with
them as a group. For example, the application might allow the user
to browse through all the authors named "Smith" and examine the
books for one Smith, then move to the next Smith, and so on.
Scalability
Because the Web can vastly increase the demands on your data,
scalability has become critical. Internet applications have a limitless
supply of potential users. An application that consumes resources
such as database locks and database connections will not serve
high numbers of users well, because the user demand for those
limited resources will eventually exceed their supply. Because
applications using ADO.NET employ disconnected access to data,
they do not retain database locks or active database connections for
long durations and thus offer performance advantages.
Data and XML are tightly integrated in the .NET Framework, where
the System.Xml namespace provides standards-based support for
processing XML. The supported standards are:
XML 1.0
XML Namespaces
XSD Schemas
XPath expressions
XSLT transformations
Best of all, one need not have any familiarity with XML to access
and manipulate data via ADO.NET. ADO.NET automatically
converts data into and out of XML as needed; you interact with the
data using ordinary programming methods.
Directory Services
The Directory Services classes provide easy access to Active
Directory from managed code. They are built on Active Directory
Services Interfaces (ADSI) technology, which provides a set of
interfaces that serve as a flexible tool for working with a variety of
network providers. ADSI gives the administrator the ability to locate
and manage resources on a network with relative ease, regardless
of the network's size.
Enterprise Services
Using the Enterprise Services classes, developers can create
“serviced components” that take advantage of COM+ services.
COM+ provides a services architecture for component programming
One of the most critical COM+ features that developers will want to
use is Transactions, which ensure that multiple related data
operations happen together or not at all and thus enhance data
integrity. It is easy to build applications that use transaction support
in the .NET Framework through simple keywords and settings. In
fact, the .NET Framework takes advantage of the COM+ transaction
infrastructure to provide both manual and automatic distributed
transactions.
InteropServices
InteropServices provide a collection of classes useful for accessing
the Win32 APIs and COM objects from .NET Framework-based
code. This is a great way to harness the functionality of legacy code
as you move forward in your development. It also provides access
to functionality not directly available in the .NET Framework class
libraries.
Management
Management services provide access to a rich set of management
information and management events about the system, devices, and
applications instrumented to the Windows Management
Instrumentation (WMI) infrastructure.
Cryptography APIs
The classes located at System.Security.Cryptography provide
developer-friendly access to most of the popular hash, encryption,
decryption, digital signature, and random number generation
algorithms. This progressive set of functionality includes support for
the XML Digital Signature, recently ratified by the World Wide Web
Consortium.
Administration
The .NET Framework includes technologies to make applications
more reliable. For example, memory, threads, and processes are
managed by the .NET Framework to ensure that memory leaks don't
occur. The Framework also monitors running ASP.NET Web
applications and can automatically restart them at administrator-
The .NET Framework defined intervals. Many of the reliability features in the .NET
Configuration Tool menu
Framework come from the application services supplied by the
unified classes called Enterprise Services
(System.EnterpriseServices). Using the same engine as COM+,
these application services provide such features as transactions,
messaging, events, partitions, and object request broker.
Visual Studio .NET targets the entire development life cycle, from
planning and design, through development and testing, to
deployment and ongoing management. With its open model for
extending the IDE through third-party products, Visual Studio .NET
provides the most comprehensive, adaptable environment for
delivering all facets of the enterprise-critical application portfolio.
You can use the same IDE for developing with each of the
programming languages supported by the .NET Framework.
Developers wishing to program with some of the languages not
implemented directly by Microsoft may purchase the compilers from
vendors, such as those listed at
http://msdn.microsoft.com/vstudio/partners/language/default.asp,
and integrate those compilers into the Visual Studio .NET shell.
Likewise, you can find a host of good, sample smart client code and
development tips and tricks on the Microsoft community smart client
application development site: http://www.windowsforms.net.
Included here is a major end-to-end sample application called
TaskVision at http://www.windowsforms.net/taskvision.
If your target machine does not have the .NET Framework installed,
you should first verify the minimum configuration requirements of
that machine. Detailed minimum hardware and software
specifications are detailed in Appendix B.
ASP.NET pages are text files with an .aspx file name extension.
They can be deployed throughout an IIS virtual root directory tree.
When a browser client requests .aspx resources, the ASP.NET
runtime parses and compiles the target file into a .NET Framework
class. This class can then be used to dynamically process incoming
requests. (Note that the .aspx file is compiled only the first time it is
accessed; the compiled type instance is then cached for reuse
across multiple requests.)
Inside ASP.NET
At the core of ASP.NET is its HTTP runtime (different from the
common language runtime), a high-performance execution engine
for processing HTTP commands. The HTTP runtime is responsible
for processing all incoming HTTP requests, resolving the URL of
each request to an application, and then dispatching the request to
the application for further processing. The HTTP runtime is
multithreaded, and it processes requests asynchronously—which
Updating Applications
Another significant benefit of ASP.NET is support for live updating of
applications. Application files can be updated without an
administrator needing to shut down the Web server or even the
application—minimizing the impact on customers. Application files
are never locked, so they can be overwritten even when the
application is running. When files are updated, the system gracefully
switches over to the new version.
Extensibility
When an ASP.NET application executes, the HTTP requests are
routed through a pipeline of HTTP modules, ultimately to a request
handler. HTTP modules and request handlers are simply managed
classes that implement specific interfaces defined by ASP.NET—
interfaces that .NET Framework application developers can use and
extend. This modular architecture makes it very easy to add
services to applications: Just supply an HTTP module. For example,
security, state management, and tracing are implemented in
ASP.NET as HTTP modules. Support for XML Web services and
Web pages are also implemented as request handlers. An
application can be associated with multiple request handlers—one
State Management
The Web is fundamentally a stateless model with no correlation
between successive HTTP requests. This can make writing Web
applications difficult, since applications usually need to maintain
state across multiple requests. ASP.NET enhances the state
management services introduced by ASP to provide three types of
state to Web applications: application, session, and user. Application
session state is stored in a separate process and can even be
configured to be stored on a separate machine or persisted to a
SQL Server database for increased scalability even when an
application is deployed across the largest Web farms.
User state resembles session state, but is persisted and reused for
long-lived information. Thus user state is useful for storing user
preferences and other personalization information. All the state
management services are implemented as HTTP modules, so they
can be added, extended, or even removed from an application's
pipeline easily. If additional state management services are required
beyond those supplied by ASP.NET, they can be provided by a
third-party module.
Code Compilation
ASP.NET takes advantage of performance enhancements found in
the .NET Framework. Additionally, it has been designed to offer
significant performance improvements over ASP and other Web
development platforms. All ASP.NET code is compiled, unlike ASP
which was interpreted. This enables early binding, strong typing,
and huge performance benefits.
Caching
The ASP.NET programming model provides a cache API that
enables programmers to activate caching services to improve
performance. An output cache saves completely rendered pages,
and a fragment cache stores partial pages (that is, static
components of a given page). Classes are provided so that
applications, HTTP modules, and request handlers can store
arbitrary objects in the cache as needed.
Security
An important part of many Web applications is the ability to identify
users and control access to resources. The act of determining the
identity of the requesting entity is known as authentication.
Generally, the user must present credentials, such as a
name/password pair, in order to be authenticated. Once an
authenticated identity is available, it must be determined whether
that identity should be allowed access a given resource. This
process is known as authorization. ASP.NET works in conjunction
with IIS to provide authentication and authorization services to
applications.
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/dnnetsec/html/secnetlpMSDN.asp
There is also an ASP.NET forum devoted specifically to security:
Over the past few years, the world has seen an explosion of new
wireless devices such as mobile phones, pagers, and personal
digital assistants (PDAs), which enable users to browse Web sites at
any time from any location. Developing applications for these
devices is challenging:
In the figures to the left, you can see how a more sophisticated
application renders on different devices. The first device is a mobile
phone running a WAP browser that supports WML. The second
device is Pocket PC running an HTML browser.
Once applications have general rules for how they will represent
data types and commands, they need a way to describe the specific
data and commands they accept. It is not enough for an application
to say that it accepts integers; somehow, there must be a way to say
deterministically that, if you give it two integers, it will multiply them.
The Web Services Description Language (WSDL) enables
developers and development tools to describe and learn about the
capabilities of an XML Web service.
Beyond WSDL, you need a set of rules for locating an XML Web
service's description—where does a tool look to discover an XML
Web service's capabilities? The SOAP Discovery specification
provides a set of rules for automatically discovering the WSDL
description files on a particular Web site.
In te rn e t
Windows Server 2003 includes UDDI Services, enabling companies
to run their own private UDDI service for intranet or extranet use.
UDDI Services helps companies organize and catalog programmatic
resources. As a core piece of XML Web services infrastructure in
Windows Server 2003, UDDI Services makes it easy to discover,
SOAP
View of accessing an XML Web service Microsoft also hosts a node of the UDDI Business Registry (UBR).
Offered at no cost, this instance of UDDI is a public directory where
one can publish and inquire about XML Web services available on
the Internet. The Microsoft UBR node replicates with other UBR
operator nodes. For more information, see http://uddi.microsoft.com.
The following Visual Basic code shows how to create an XML Web
service that exposes a function to Web requests. As we mentioned
previously, this functionality can be found in the
System.Web.Services namespace, which we first import into our
project. This then allows us to specify both the WebService attribute
on the class (which is inherited from
System.Web.Services.WebService) as well as the WebMethod
<WebService(Namespace := "http://tempuri.org/")>
_
Public Class Service1
Inherits System.Web.Services.WebService
...
<WebMethod(Description:="Converts F to C")> _
Public Function CalcTemp(ByVal dF As Double)
_
As Double
CalcTemp = ((dF - 32) * 5) / 9
End Function
End Class
In the example Visual Basic .NET code below, the client application
is accessing the XML Web service described above, named
Converter—for which it has a Web reference. It is accessing this
XML Web service through a proxy class Service1, which has
exposes the XML Web service's CalcTemp method. The two lines
of code that are underlined are the only code that is necessary to
instantiate and call the XML Web service. The .NET Framework
handles all the complexities of generating and parsing XML, HTTP
requests, etc. for the developer transparently.
Imports System
Module Module1
Sub Main()
Dim cService As New Converter.Service1()
Dim dFahrenheit As Double
Dim dCelsius As Double
Console.Write("Temp in degrees Fahrenheit:
")
dFahrenheit =
Convert.ToDouble(Console.ReadLine())
dCelsius = cService.CalcTemp(dFahrenheit)
Console.Write("Temp in degrees Celsius: ")
Console.WriteLine(dCelsius.ToString())
End Sub
End Module
IIS 6.0 has improved the way the operating system uses internal
resources. For example, IIS 6.0 does not pre-allocate resources at
initialization time, so starting up and shutting down a server is faster.
And a new kernel mode driver for HTTP parsing and caching
provides increased scalability and performance.
With the new IIS process model, for the first time, each ASP.NET
application can now run in its own process. This enables
administrators to isolate applications from one another, granting
each different access privileges to available resources. (Note:
Version 1.1 of the .NET Framework enables administrators to
emulate this feature on IIS 5.0 by setting up code access security
policies for each of the different ASP.NET applications running in the
ASPNET process.)
Smart client applications built on the .NET Framework have the best
of all possible worlds. The Windows Forms libraries enable quick
and easy Windows-style UI development that can be implemented
either by hand-coding or by dragging and dropping controls onto a
form in Visual Studio .NET. Smart client applications can access the
local system but only in so much as they are allowed by .NET
Framework code access security policies, as described above.
Minimal Windows Form As you can see, the code for this application is quite small. Most of
the functionality comes automatically by inheriting from the Form
class in the System.Windows.Forms class library.
When designing the user interface for your application, you typically
Data entry grid showing an error create a class that derives from Form. You can then add controls,
set properties, create event handlers, and add programming logic to
your form.
In addition, you can inherit from your own defined forms: this so-
called “visual forms inheritance” gives you both the appearance of
the form as well as the functionality built into your defined form,
which you can extend, as needed.
Controls
Each component that is added to a form, such as a Button, a
TextBox, or a RadioButton, is called a control. Windows Forms
includes all of the controls commonly associated with Windows
client applications.
Events
The Windows Forms programming model is event-based. When a
control changes state, such as when the user clicks a button, it
raises an event. In order to handle an event, your application
registers an event-handling method for that event. This code in this
method will be called and run whenever that particular event
transpires. The Windows Forms controls support most of the events
you will be interested in following and responding to in your
applications. You can easily create and handle custom events—
either triggered by controls or by other actions in the flow of your
application logic.
Creating Controls
There are many sources for controls that can be used in your smart
client applications. Many controls are already included with the
.NET Framework (these are often referred to as “built-in” controls) in
the Windows Forms class library, as discussed above. You can also
reuse virtually any existing ActiveX controls. In addition, you can
use third-party .NET Framework-based or ActiveX controls from a
software vendor or any custom controls that you develop to perform
specific tasks. Of course, using the .NET Framework you can author
A composite control controls in any of the programming languages supported by the
.NET Framework.
There are three basic techniques for creating controls:
Multilanguage Support
With the .NET Framework, developers can take advantage of the
programming language they are most comfortable with or use the
language that is best suited to the job at hand. Having objects of one
language call into objects of another may not be new, but the .NET
Framework takes this a step further by enabling developers to use
cross-language implementation inheritance and cross-language
debugging—all of this with a single, easy-to-use, unified class
library.
Operational Excellence
With XCOPY and No-Touch Deployment, the .NET Framework
makes it easy for administrators to efficiently roll out new
applications or updates to existing ones. With code access security,
the .NET Framework puts administrators firmly in control of the
security permissions granted to managed code running within their
domain. With its automatic restart capabilities, its support for
compilation, and improvements in caching, the ASP.NET libraries
make Web-enabled applications more reliable with better
performance than ever before.
Developer Productivity
By providing one unified programming model with a unified set of
class libraries for building all types of applications, developers skilled
in building ASP.NET Web applications can quickly translate their
skills over into building smart client applications, Windows Services,
or console applications, and vice versa. With the ASP.NET mobile
Standards-Based
The .NET Framework is based on Extensible Markup Language
(XML) and SOAP, which are standards overseen by the World Wide
Web Consortium standards body. In addition, key parts of the .NET
Framework, referred to collectively as the common language
infrastructure, have been ratified as a standard by the European
Computer Manufacturers Association (ECMA). For more
information, see Appendix C.
Note: While we are re-enabling code from the Internet zone, the
defaults do not give this code full access to the user's machine.
Thanks to code access security, this code runs in a restricted
manner by default, and is allowed access only to a limited set of
resources that are safe to use. This code cannot damage your data
or system, nor can it steal private information that you do not
explicitly give it.
Note: The .NET Compact Framework does not ship natively with the
.NET Framework. Developers may access the .NET Compact
Framework using Visual Studio .NET 2003.
Windows 98
Recommended Software
Depending on your application requirements, you might also need to
install one or more of the following:
Hardware Requirements
Minimum Hardware Requirements
Scenario CPU Required RAM Required
The official submissions are available from the ECMA Web site at
http://www.ecma.ch.
XML Standards
The System.Xml namespace provides standards-based support for
processing Extensible Markup Language (XML). The supported
standards are:
XML 1.0
http://www.w3.org/TR/1998/REC-xml-19980210 (including
DTD support)
XML Namespaces
http://www.w3.org/TR/REC-xml-names/ (both stream level
and DOM)
XSD Schemas
http://www.w3.org/2001/XMLSchema
XPath expressions
http://www.w3.org/TR/xpath
XSLT transformations
http://www.w3.org/TR/xslt
WS-Coordination
Provides protocols that coordinate the actions of distributed
applications. This enables existing transaction processing,
workflow, and other systems for coordination to operate in a
heterogeneous environment
WS-Inspection
Assists in the inspection of a site for available services.
WS-Referral
Enables the routing strategies used by SOAP nodes in a
message path to be dynamically configured.
WS-Routing
Provides a simple, stateless, SOAP-based protocol for
routing SOAP messages in an asynchronous manner over
a variety of transports like TCP, UDP, and HTTP.
WS-Security
Enhances SOAP messaging to provide quality of protection
through message integrity, message confidentiality, and
single message authentication.
WS-Transaction
Describes coordination types that are used with the
extensible coordination framework described in the WS-
Coordination specification.
Enterprise Servers
Windows Server 2003
The Windows Server 2003 family takes the best of Windows 2000
Server technology and makes it easier to deploy, manage, and use,
while adding new technologies to maximize performance and
security. The result is a highly productive infrastructure that helps
make networks a strategic asset for organizations.
Microsoft Office
The Microsoft Office XP Web Services Toolkit brings the power of
XML Web services to Office XP by enabling developers to consume
XML Web services in Office XP solutions directly from within the
Office Visual Basic Editor.
Term Definition
.NET Framework The Microsoft .NET Framework is an integral Microsoft Windows® component that supports building
and running the next generation of software applications and XML Web services. It includes
technologies for XML Web services and Web applications (ASP.NET), data access (ADO.NET),
smart client applications (Windows Forms), and many others.
Active Directory The Windows directory service that provides a unified, hierarchical view of complex networks.
ADO.NET A class library in the .NET Framework for data access and manipulation.
ASP.NET A class library in the .NET Framework for building, deploying, and running Web applications and
XML Web services.
Assembly The primary building block—also the unit of deployment and versioning—of a .NET Framework
application. An assembly includes an assembly manifest, which describes the contents of the
assembly.
C# A new ECMA-approved programming language designed for the .NET Framework. C#, which is an
evolution of C and C++, is type safe and object-oriented. Because it is compiled as managed code, it
benefits from the services of the common language runtime, such as language interoperability,
enhanced security, and garbage collection.
Class Library A library of classes, interfaces, and value types that are included in the .NET Framework and can be
used from any CLS-compliant language. Classes provide pre-packaged functionality that may be
used by developers in writing their own code.
Code access The .NET Framework introduces code access security. This enables administrators to set up
security policies granting different assemblies different security permissions based on evidence about the
assembly—such as from what site, security zone, or URL was an assembly obtained, what is its
strong name, and whether it has a digital signature and from whom.
Common language The core run-time engine in the .NET Framework for securely executing applications. The common
runtime (CLR) language runtime supplies managed code with services such as cross-language integration, code
access security, object lifetime management, and debugging and profiling support.
Common Language A subset of .NET Framework features that are supported by a broad set of compliant languages and
Specification (CLS) tools. CLS-compliant languages and tools are guaranteed to interoperate with other CLS-compliant
languages and tools.
ECMA The European Computer Manufacturers Association, a European standards body created in 1961.
Internationally accredited, ECMA has fast-track approval for ISO and is the forum for successful
standards such as ECMAScript.
Extensible Markup A subset of Standard Generalized Markup Language (SGML) that is optimized for delivery over the
Language (XML) Web. XML provides a uniform method for describing and exchanging structured data that is
independent of applications or vendors.
Garbage collection The process of transitively tracing through all pointers to actively used objects to locate all objects
(GC) that can be referenced and then arranging to reuse any heap memory that was not found during this
trace. The common language runtime garbage collector also compacts the memory that is in use to
reduce the working space needed for the heap.
HTTP Hyper Text Transfer Protocol is a standard Internet protocol for transfer of information between
servers and between clients and servers.
IDL Interface Definition Language. A language used by applications to specify the various interfaces they
intend to offer to other applications.
JIT An acronym for “just-in-time," a phrase that describes an action that is taken only when it becomes
necessary, such as just-in-time compilation or just-in-time object activation.
Loosely coupled A distributed application in which you can change the implementation of one tier without affecting
architecture any of the other tiers. Contrast tightly coupled architecture.
Managed code Code written using the .NET Framework that is then executed and managed by the .NET
Framework's common language runtime (CLR). Managed code must supply the information
necessary for the CLR to provide services such as memory management, cross-language
integration, code access security, and automatic lifetime control of objects. All code based on
Microsoft intermediate language (MSIL) executes as managed code.
Manifest An integral part of every assembly that renders the assembly self-describing via metadata. The
metadata describes which modules and resource files are part of a particular assembly, which types
are exported, and which other assemblies are referenced. It also specifies which security
permissions are required to run, what additional permissions are optionally requested, and what
permissions the assembly refuses.
Metadata Data (or information) about data. In the common language runtime, metadata is used to describe
assemblies and types. It is stored with them in the executable files, and is used by compilers, tools,
and the runtime to provide a wide range of services. Metadata is essential for run-time type
information and dynamic method invocation. Many different systems use metadata—for example,
Type Libraries in COM provide metadata.
Microsoft The CPU-independent instruction set that is consumed by the .NET Framework. Before MSIL can be
intermediate executed, it must be converted to native, CPU-specific code. The .NET Framework common
language (MSIL) language runtime handles that task. The .NET Framework language compilers generate MSIL.
Native code Code that has been compiled to processor-specific machine code.
N-tier System architecture that separates presentation, business logic, data access, and database (or other
persistence mechanism) tiers.
Reflection .NET Framework technology that allows you to examine metadata that describes types and their
members. Reflection can be used to create, invoke, and access type instances at run time.
Serviced component The name for a .NET Framework component that has been enabled for use with COM+ services.
Side-by-side The ability to run multiple versions of the same assembly simultaneously. This can be on the same
execution computer or in the same process or application domain. Allowing assemblies to run side-by-side is
essential to support robust versioning in the common language runtime. Side-by-side is also used to
describe to describe two versions of the .NET Framework running simultaneously on the same
computer.
SOAP A WC3 standard, SOAP is a lightweight protocol for the exchange of information in a decentralized,
distributed environment. It is an XML-based protocol for exchanging structured and type information
on the Web. The SOAP protocol contains no application or transport semantics, which makes it
highly modular and extensible.
Tightly coupled A distributed application where a change to any tier affects some or all the other remaining tiers.
architecture Contrast loosely coupled architecture.
UDDI Universal Description, Discovery, and Integration (UDDI) specification. An initiative that creates a
global, platform-independent, open framework to enable Web service providers to advertise the
existence of their Web services and for Web service consumers to locate Web services of interest.
Unmanaged code Code that was created without using the .NET Framework
Web Services An XML-based contract language for describing the functionality offered by an XML Web service.
Description
Language (WSDL)
Windows Forms A class library in the .NET Framework for building smart client applications
Windows A component of the Windows operating system that provides management information and control in
Management an enterprise environment using industry-wide standards
Instrumentation
(WMI)
XML Schema A W3C recommendation that specifies how to describe the elements of an XML document formally.
Definition (XSD) The schema can be used to verify the conformance of elements in an XML document.
XML Web services Components which facilitate integration by sharing data and functionality over the network through
standard, platform-independent protocols such as XML, SOAP, and HTTP.