You are on page 1of 41

Introduction

Our Project is Automatic Paper Generation System which will enable college
authorities to automatically Generate Question Papers out of existing Question Bank
in the Database.
The system will have capability to process different unique sets of papers very
automatically.

CHAPTER 1

SYSTEM
DEVELOPMENT
LIFE CYCLE

1. System Development Life Cycle


The basic idea of software development life cycle (SDLC) is that there is a well
defined process by which an application is conceived, developed and implemented.
The phases in the SDLC provide a basis for the management and control because
they define segments of the flow of work, which can be identified for the managerial
purpose and specifies the documents or other deliveries to be produced in each
phase.
System Development revolves around a life cycle that begins with the recognition
of user needs. In order to develop good software, it has to go through different
phases. There are various phases of the System Development Life Cycle for the
project and different models for software development, which depict these phases.
We decided to use waterfall model, the oldest and the most widely used paradigm
for software engineering. The Various relevant stages of the System Life Cycle of
this Application Tool are depicted in the following flow diagram.

SYSTEM ANAYLSIS

SYSTEM DESIGN

CODING
SYSTEM TESTING

SYSTEM

SYSTEM MAINTENANCE

Let us have a look on each of the above activities:


1. System Analysis
System Analysis is the process of diagnosing situations, done with a defiant aim,
with the boundaries of the system kept in mind to produce a report based on the
findings. Analysis is fact-finding techniques where problem definition, objective,
system requirement specifications, feasibility analysis and cost benefit analysis are
carried out. The requirement of both the system and the software are document
and reviewed with the user.
2. System Design
System Design is actually a multistep process that focuses on four distinct attributes of
a program: data structures, software architecture, interface representations, and
procedural (algorithmic) detail. System design is concerned with identifying the software
components (Functions, data streams, and data stores), specifying relationships among
components, specifying software structure, maintaining a record of design decisions
and providing a blueprint for the implementation phase.

3. Coding
Coding step performs the translations of the design representations into an artificial
language resulting in instructions that can be executed by the computer. It thus involves
developing computer programs that meet the system specifications of design stage.

4. System Testing
System testing process focuses on the logical internals of the software, ensuring that all
statements have been tested on the functional externals, that is conducting tests using
various tests data to uncover errors that defined input will produce actual results that
agree with required results.

5. System Implementation
System Implementation is a process that includes all those activities that take place
to convert an old system to a new system. The new system may be totally new
system replacing the existing system or it may be major modification to the existing
system. Coding performs the translations of the design representations into an
artificial language resulting in instructions that can be executed by the computer. It
thus involves developing computer programs that meet the system design
specifications. System implementation involves the translation of the design
specifications into source code and debugging, documentation and unit testing of
the source code.

6. System Maintenance
Maintenance is modification of a software product after delivery to correct faults to
improve performance or to adopt the product to a new operating environment. Software
maintenance canot be avoided due to ware & tear caused by users. Some of the
reasons for maintaining the software are
1. Over a period of time, software original requirements may change.

2. Errors undetected during software development may be found during user &
require correction.
3. With time new technologies are introduced such as hardware, operating system
etc. The software therefore must be modified to adapt new operating
environment.
Type of Software Maintenance
Corrective Maintenance: This type of maintenance is also called bug fixing that
may observed while the system is in use i.e correct reported errors.
Adaptive Maintenance: This type of maintenance is concern with the modification
required due to change in environment. (i.e external changes like use in different
hardware platform or use different O.S.
Perfective Maintenance: Perfective maintenance refers to enhancement to the
software product there by adding or support to new features or when user change
different functionalities of the system according to customer demands making the
product better, faster with more function or reports.
Preventive Maintenance: This type of maintenance is done to anticipate future
problems and to improve the maintainability to provide a better basis for future
enhancement or business changes.

SYSTEM ANAYLSIS
1.1.1 Problem Definition
Our Project is Automatic Paper Generation System which will enable college
authorities to automatically Generate Question Papers out of existing Question Bank in
the Database.
The system will have capability to process different unique sets of papers very

automatically., also the system will provide notifications regarding any file delete etc.

1.1.2 Proposed System


The Proposed system will have the following module:

Login Module: This module will enable users to login into the system and then
based on the type of user, grant the user appropriate type of functionality.
Basically the system will provide access to General Users(Faculty) and
Administrative Users(Exam Section)
Faculty Module: This module will alow teachers to create the questions in the
Question Bank. The Teachers can enter questions into the system alongwith the
chapters. The Teachers can set Topics/Chapters Weightage in the examination
and then can enter different questions in a topic and set the maximum marks for
that particular question.
Exam Generation Module: This module will enable examination section i.e.
admin to generate question apers frm the database that has been created by
faculty. The examiner needs to provide maximum marks associated with paper
of particular class and the system will automatically create the question paper
taking in consideration the weightage of each and every topic and accordingly
will select the questions without repeating any question.
Export Wizard Module: This module will enable the administrator to export the
generated question paper into PDF or Word Format.

1.1.3 Significance of Project


These days information technology has become a way of life thus there was a
much need for automation of question paper setting process in colleges thats why we
have chosen this project.

1.1.4 Advantages of the Proposed System


The various advantages of the proposed System are:
The Software will empower the College with a powerful tool to generate Question
Papers in a very short span of time thus saving a lot of their precious time.
The Authorities have the flexibility to generate class tests, unit tests, terminal
tests, and final tests.
The teachers can add / edit / delete the questions generated by this software as
per their own requirements or parameters.
Questions are generated dynamically, so College Authorities have variety of
questions and without any repetition.
Different Sets of Papers without Questions in Different Sequence Can be
generated.
The Question Papers are stored in Database so any time old question paper can
be extracted

1.1.5 REQUIREMENT ANALYSIS


Software requirement analysis is a software-engineering task that bridges the gap
between system level software allocation and software design. For Developing our
Travel Portal in-depth analysis was deon. The analysis was divided into the following
three Parts.
Problem Recognition
Evaluation and Synthesis
Specification & Review

Problem Recognition
The aim of the poroject was understood and through research was done on internet to
get a deep insight of how the proposed system will work, we went to different travel
related sites and understood their working. We recorded what all features will be
required when we build our website like for eg. We need to keep a database of
destinations, Travel Agents and Hotels should be able to register and post their data
online etc. All these features were noted down so that they could be incorporated in our
application.

Evaluation and Synthesis


Problem evaluation and solution synthesis was the next major area of effort. It was in
this step that all externally observable data objects, evaluation of flow and content of
information was defined. It was decided in this phase that how our application will look
and works, what parameters it will take and what it will return.

Specification & Review


The main objective is to improve the quality of software that can be done by inspection
or walkthrough of formal technical reviews. The main objective is
To uncover errors in function, logfics or implementation.
Verify software under revies to meet requirement specification.
Ensure that software has been represented according to predefined
standards.
Achive software development in uniform manner
Make projexct more meaningfull.

1.1.6 FEASIBILITY STUDY


The feasibility study is carried out to test if the proposed system is worth being
implemented. Given unlimited and infinite time, all projects are feasible. Unfortunately
such resources and time are not possible in real life situations. Hence it becomes both
necessary and prudent to evaluate the feasibility of the project at the earliest possible
time in order to avoid unnecessarily wastage of time, effort and professional
embarrassment over an ill conceived system. Feasibility study is a test of system
proposed regarding its work ability, impact on the organization ability to meet the user
needs and effective use of resources.

The main objective of feasibility study is to test the technical, operational and
economical feasibility of developing a computer system Application.
The following feasibility studies were carried out for the proposed system:
Economic Feasibility: An evaluation of development cost weighed against the
income of benefit derived from the developed system. Here the development cost
is evaluated by weighing it against the ultimate benefits derived from the new
system. The proposed system is economically feasible if the benefits obtained in
the long run compensate rather than overdo the cost incurred in designing and
implementing. In this case the benefits outweigh the cost that makes the system
economically feasible.
Technical Feasibility: A study of function performance and constraints that may
affect the ability to achieve the acceptable system. A system is technically
feasible, if it can be designed and implemented within the limitations of available
resources like funds, hardware, software etc. The considerations that are
normally associated with technical feasibility include development risk, resources
availability and technology. Management provides latest hardware and software
facilities for successful completion of the project.
The proposed system is technically feasible as the Technology we are using to
implement the Project (i.e. ASP.NET) is fully capable to implement our projects
requirement analysis that was performed in the analysis section.
Operational Feasibility: The Project is Operationally Feasilbe as it can be
implemented easily in the college computer Lab.
Schedule Feasibility: Evaluates the time taken in the development of the
project. The system had schedule feasibility.

SYSTEM DESIGN

DESIGN CONCEPTS 1.2.1


The design of an information system produces the detail that state how a system will
meet the requirements identified during system analysis. System specialists often refer
to this stage as Logical Design, in contrast to the process of development program
.software, which is referred to as Physical Design
System Analysis begins process by identifying the reports and the other outputs the
system will produce. Then the specific on each are pin pointed. Usually, designers
sketch the form or display as they expect it to appear when the system is complete. This
may be done on a paper or computer display, using one of the automated system tools
available. The system design also describes the data to be input, calculated or stored.
Individual data items and calculation procedures are written in detail. The procedure
.tells how to process the data and produce the output

DESIGN OBJECTIVES 1.2.2


:The following goals were kept in mind while designing the system
.To reduce the manual work required to be done in the existing system
To avoid errors inherent in the manual working and hence make the outputs
.consistent and correct
To improve the management of permanent information of the Computer center by
keeping it in properly structured tables and to provide facilities to update this
.information efficiently as possible
To make the system completely menu-driven and hence user friendly, and hence
user friendly, this was necessary so that even non-programmers could use the
.system efficiently
To make the system completely compatible i.e., it should fit in the total integrated
.system
To design the system in such a way that reduced future maintenance and
.enhancement times and efforts
.To make the system reliable, understandable and cost effective

DESIGN MODULE 1.2.3

Login Module: This module will enable users to login into the system and then
based on the type of user, grant the user appropriate type of functionality.
Basically the system will provide access to General Users(Faculty) and
Administrative Users(Exam Section)
Faculty Module: This module will alow teachers to create the questions in the
Question Bank. The Teachers can enter questions into the system alongwith the
chapters. The Teachers can set Topics/Chapters Weightage in the examination
and then can enter different questions in a topic and set the maximum marks for
that particular question.
Exam Generation Module: This module will enable examination section i.e.
admin to generate question apers frm the database that has been created by
faculty. The examiner needs to provide maximum marks associated with paper
of particular class and the system will automatically create the question paper
taking in consideration the weightage of each and every topic and accordingly
will select the questions without repeating any question.
Export Wizard Module: This module will enable the administrator to export the
generated question paper into PDF or Word Format.

SYSTEM DESIGN
The design stage takes the final specification of the system from analysis stages and
finds the best way of filing them, given the technical environment and previous decision
on required level of automation.
The system design is carried out in two phases:
i)

Architectural Design (High Level Design)

ii)

Detailed Design (Low Level Design)

1.2.4 ARCHITECTURAL DESIGN


The high level Design maps the given system to logical data structure. Architectural
design involves identifying the software component, decoupling and decomposing the
system into processing modules and conceptual data structures and specifying the
interconnection among components. Good notation can clarify the interrelationship and
interactions if interest, while poor notation can complete and interfere with good design
practice. A data flow-oriented approach was used to design the project. This includes
Entity Relationship Diagram (ERD) and Data Flow Diagrams (DFD).

Figure 1

Figure 2

1.2.4.1

Entity Relationship Diagram

One of the best design approaches is Entity Relationship Method. This design approach
is widely followed in designing projects normally known as Entity Relationship Diagram
(ERD).
ERD helps in capturing the business rules governing the data relationships of the
system and is a conventional aid for communicating with the end users in the
conceptual design phase. ERD consists of:
Entity It is the term use to describe any object, place, person, concept, activity that
the enterprise recognizes in the area under investigation and wishes to collect and
store data. It is diagrammatically represented as boxes.
Attribute They are the data elements that are used to describe the properties that
distinguish the entities.
Relationship It is an association or connection between two or more entities. They
are diagrammatically represented as arrows.

A Unary relationship is a relationship between instances of the same entity.


A Binary relationship is a relationship between two entities.
A N-ary relationship is a relationship among N entities. It is defined only when the
relationship does have a meaning without the participation of all the N entities.
Degree of Relationship An important aspect of relationship between two or more
entities is the degree of relationship. The different relationships recognized among
various data stores in the database are:
One-to-One (1:1)
It is an association between two entities. For example, each student can have
only one Roll No.
One-to-Many (1:M)
It describes entities that may have one or more entities related to it. For
example, a father may have one or many children.
Many-to-Many (M:M)
It describes entities that may have relationships in both directions. This
relationship can be explained by considering items sold by Vendors. A vendor
can sell many items and many vendors can sell each item.

ERD representation of the project is given below. It follows Chens convention in which
entities are represented as rectangles and relationships as diamonds.

Figure 3

Figure 4
Entity Relationship Diagram

1.2.4.2

Context Analysis Diagram

Context Analysis Diagram (CAD) is the top-level data flow diagram, which depicts the
overview of the entire system. The major external entities, a single process and the
output data stores constitute the CAD. Though this diagram does not depict the system
in detail, it presents the overall inputs, process and the output of the entire system at a
very high level. The Context Analysis Diagram if the project is given ahead.

Figure 5

Context Level
Data Flow Diagram

1.2.4.3

Data Flow Diagrams

A Data Flow Diagram (DFD) is a graphical tool used to describe and analyze the
movement of data through a system manual or automated including the processes,
stores of data and delays in the system. They are central tools and the basis from which
other components are developed. It depicts the transformation of data from input to
output through processes and the interaction between processes.

Transformation of data from input to output through processes logically and independent
of physical components is called the DFD. The physical DFD shows the actual
implementation and movement of data between people, departments and workstation.
DFDs are an excellent mechanism of communicating with the customers during
requirement analysis and are widely used for representing external and top-level
internal design specification. In the Later situations, DFDs are quite valuable for
establishing naming conventions and names of system components such as
subsystems, files and data links.

In a DFD there are four components:

1. Sources or Destinations of data such as human, entities that interact with


system, outside the system boundary, who form the source and the
recipient of information are depicted in the form of a closed rectangle.
2. Data flow is a packet of data. It identifies data flow. It is a pipeline through
which information flows. It is depicted in DFD as an arrow with the pointer
pointing in the direction of flow. This connecting symbol connects an
entity, process and data stores. This arrow mark also specifies the sender
and the receiver.
3. Process depicts procedure, function or module that transform input data
into output data. It is represented as a circle or a bubble with the procedure
name and a unique number inside the circle.
4. Data stores are the physical areas in the computers hard disk where a
group of related data is stored in the form of files. They are depicted as an

open-ended rectangle. The Data store is used either for storing data into
the files or for reference purpose.

Figure 6

Figure 7

1.2.5 DETAILED DESIGN


The Low Level Design maps the logical model of the system to a physical database
design. Tables created for the system Entities and Attributes were mapped into Physical
tables. The name of the entity is taken as the table name.
During detailed design phase, the database if any and programming modules are
designed and detailed user procedures are documented. The interfaces between the
System users and computers are also defined.

1.2.5.1 APPLICATION DESIGN


After the detailed problem definition and system analysis of the problem, it was thought
of designing web based Computer designing. Simplicity is hard to design. It is difficult to
design something that is technically sophisticated but appears simple to use. Any
software product must be efficient, fast and functional but more important it must be
user friendly, easy to learn and use. For designing good interface we should use the
following principles.
i)

Clarity and consistency

ii)

Visual feedback.

iii)

Understanding the people.

iv)

Good response.

WORKING ENVIRONMENT

2.1 Technical Specifications

HARDWARE ENVIRONMENT

PC with the following Configuration


Processor

Pentium-IV 3.0 GHz

RAM

256 DDR 2 RAM

HARD DISK

80 GB

SOFTWARE ENVIRONMENT

Operating System

Microsoft Windows XP.

Backend

Microsoft Access

Frontend

ASP.NET

Case Tool

Say Microsoft Word 2003, Ms Front Page

Technology Used: ASP.NET

We have used the Latest Technology from Microsoft: The ASP.NET to


develop our Application.
What are Web Applications?
These applications provide content from a server to client machines
over the Internet. Users view the Web application through a Web browser.
How Web Applications Work
Web applications use a client/server architecture. The Web application
resides on a server and responds to requests from multiple clients over the
Internet, as shown in Figure 1-1.

Figure 1-1. ASP.NET Web application architecture


On the client side, the Web application is hosted by a browser. The
applications user interface takes the form of Hypertext Markup Language
(HTML) pages that are interpreted and displayed by the clients browser.
On the server side, the Web application runs under Microsoft Internet
Information Services (IIS). IIS manages the application, passes requests
from clients to the application, and returns the applications responses to the
client. These requests and responses are passed across the Internet using
Hypertext Transport Protocol (HTTP). A protocol is a set of rules that describe
how two or more items communicate over a medium, such as the Internet.
Figure 1-2 shows how the client and server interact over the Internet.

Figure 1-2. Client/server interaction in a Web application


The Web application composes responses to requests from resources found
on the server. These resources include the executable code running on the
server (what we traditionally think of as the application in Microsoft

Windows programming), Web forms, HTML pages, image files, and other
media that make up the content of the application.
Web applications are much like traditional Web sites, except that the content
presented to the user is actually composed dynamically by executable, rather
than being served from a static page stored on the server. Figure 1-3 shows
how a Web application composes the HTML returned to a user.

Figure 1-3. An ASP.NET Web application response from server resources


The executable portion of the Web application enables you to do many things
that you cant do with a static Web site, such as:

Collect information from the user and store that information on the server

Perform tasks for the user such as placing an order for a product, performing
complex calculations, or retrieving information from a database

Identify a specific user and present an interface that is customized for that
user

Present content that is highly volatile, such as inventory, pending order, and
shipment information

This is only a partial list. Basically, you can do anything with a Web
application that you can imagine doing with any client/server application.
What makes a Web application special is that the client/server interaction
takes place over the Internet.

What ASP.NET Provides


ASP.NET is the platform that you use to create Web applications and Web
services that run under IIS. ASP.NET is not the only way to create a Web
application. Other technologies, notably the CGI, also enable you to create
Web applications. What makes ASP.NET special is how tightly it is integrated
with the Microsoft server, programming, data access, and security tools.
ASP.NET provides a high level of consistency across Web application
development. In a way, this consistency is similar to the level of consistency
that Microsoft Office brought to desktop applications. ASP.NET is part of
the .NET Framework and is made up of several components.

Visual Studio .NET Web development tools.


These include visual tools for designing Web pages and application
templates, project management, and deployment tools for Web applications.

The System.Web namespaces.


These are part of the .NET Framework and include the programming classes
that deal with Web-specific items such as HTTP requests and responses,
browsers, and e-mail.

Server and HTML controls.


These are the user-interface components that you use to gather information
from and provide responses to users.

In addition to the preceding components, ASP.NET also uses the following,


more general programming components and Windows tools. These items
arent part of ASP.NET. However, they are key to ASP.NET programming.

Microsoft Internet Information Services (IIS).


As mentioned in the previous section, IIS hosts Web applications on the
Windows server.

The Microsoft Visual Basic .NET, Microsoft Visual C#, and Microsoft Visual
J# programming languages.
These three languages have integrated support in Visual Studio .NET for
creating Web applications.

The .NET Framework.


This is the complete set of Windows programming classes, including the
ASP.NET classes as well as classes for other programming tasks such as file
access, data type conversion, array and string manipulation, and so on.

Microsoft ADO.NET database classes and tools.


These components provide access to Microsoft SQL Server and ODBC
databases. Data access is often a key component of Web applications.

Microsoft Application Center Test (ACT).


This Visual Studio .NET component provides an automated way to stresstest Web applications.
ASP.NET is the most complete platform for developing Web applications that
run under IIS. However, it is important to remember that ASP.NET is not
platform-independent. Because it is hosted under IIS, ASP.NET must run on

Windows servers. To create Web applications that run on non-Windows/IIS


servers, such as Linux/Apache, you must use other toolsgenerally CGI.
Advantages of ASP.NET
ASP.NET has many advantages over other platforms when it comes to
creating Web applications. Probably the most significant advantage is its
integration with the Windows server and programming tools. Web
applications created with ASP.NET are easier to create, debug, and deploy
because those tasks can all be performed within a single development
environmentVisual Studio .NET.
ASP.NET delivers the following other advantages to Web application
developers:

Executable portions of a Web application compiled so they execute more


quickly than interpreted scripts

On-the-fly updates of deployed Web applications without restarting the server

Access to the .NET Framework, which simplifies many aspects of Windows


programming

Use of the widely known Visual Basic programming language, which has
been enhanced to fully support object-oriented programming

Introduction of the new Visual C# programming language, which provides a


type-safe, object-oriented version of the C programming language

Automatic state management for controls on a Web page (called server


controls) so that they behave much more like Windows controls

The ability to create new, customized server controls from existing controls

Built-in

security

through

the

Windows

server

or

through

other

authentication/authorization methods

Integration with ADO.NET to provide database access and database design


tools from within Visual Studio .NET

Full support for Extensible Markup Language (XML), cascading style sheets
(CSS), and other new and established Web standards

Built-in features for caching frequently requested Web pages on the server,
localizing content for specific languages and cultures, and detecting browser
capabilities
Parts of a Web Application
A Web application consists of three parts: content, program logic, and Web
configuration information. Table 1-2 summarizes these parts and gives
examples of where they reside in an ASP.NET Web application.
Table 1-2. Parts of an ASP.NET Web Application

Part

Types of files

Content

Content files determine the appearance of a Web


Web forms, HTML, application. They can contain static text and images
images,
audio, as well as elements that are composed on the fly by
video, other data
the program logic (as in the case of a database
query).

Program logic

Executable
scripts

Description

The program logic determines how the application


responds to user actions. ASP.NET Web applications
files,
have a dynamic-link library (DLL) file that runs on the
server, and they can also include scripts that run on
the client machine.

Web configuration The configuration files and settings determine how


Configuration file, style sheets, IIS the application runs on the server, who has access,
settings
how errors are handled, and other details.

The Web form is the key element of a Web application. A Web form is a cross
between a regular HTML page and a Windows form. It has the same
appearance as and similar behavior to an HTML page, but it also has
controls that respond to events and run code, like a Windows form.
In a completed Web application, the executable portion of the Web form is
stored in an assembly (.dll) that runs on the server under the control of the
ASP.NET worker process (asp_wp.exe), which runs in conjunction with IIS.
The content portion of the Web form resides in a content directory of the Web
server, as shown in Figure 1-4.

Figure 1-4. ASP.NET Web application parts on a Web server


When a user navigates to one of the Web forms from his or her browser, the
following sequence occurs:
1. IIS starts the ASP.NET worker process if it is not already running. The
ASP.NET worker process loads the assembly associated with the Web form.

2. The assembly composes a response to the user based on the content of the
Web form that the user requested and any program logic that provides
dynamic content.
3. IIS returns the response to the user in the form of HTML.
Once the user gets the requested Web form, he or she can enter data, select
options, click buttons, and use any other controls that appear on the page.
Some controls, such as buttons, cause the page to be posted back to the
server for event processing, and the sequence repeats itself, as shown in
Figure 1-5.

Figure 1-5. How the parts interact


This cycle of events is described in greater detail in Lesson 2 of Chapter 2,
Creating Web Forms Applications.
Web Form Components
Web forms can contain several different types of components, as
summarized in Table 1-3.

Table 1-3. Components on a Web Form


Component

Examples

Description
These controls respond to user events by
running event procedures on the server.
Label, Button,
Server controls have built-in features for
DropDownList,
saving data that the user enters between
page displays. You use server controls to
define the user interface of a Web form.

Server
controls

TextBox,
ListBox,
DataGrid

HTML
controls

These represent the standard visual


Text Area, Table, Image,
elements provided in HTML. HTML controls
Submit
Button,
Reset
are useful when the more complete feature
Button
set provided by server controls is not needed.

SqlConnection,
SqlCommand,
Data controls
OleDbConnection,
OleDbCommand, DataSet

Data controls provide a way to connect to,


perform commands on, and retrieve data
from SQL and OLE databases and XML data
files.

System
FileSystemWatcher,
These components provide access to various
components EventLog, MessageQueue system-level events that occur on the server.
You use the server and HTML controls to create the user interface on a Web
form. The data controls and system components appear on the Web form
only at design time to provide a visual way for you to set their properties and
handle their events. At run-time, data controls and system components do
not have a visual representation. Figure 1-6 shows a Web form containing
components.

Figure 1-6. A Web form with components


Chapter 4, Creating a User Interface, provides more detail about using
server and HTML controls on a Web form.
The .NET Framework
ASP.NET is an important part of the .NET Framework, but it is just one part.
Understanding what else the .NET Framework provides will help you
program your ASP.NET application effectively and avoid writing new code to
perform tasks that are already implemented within the .NET Framework.

First, a little background. The .NET Framework is the new Microsoft


programming platform for developing Windows and Web software. It is made
up of two parts:

An execution engine called the common language runtime (CLR)

A class library that provides core programming functions, such as those


formerly available only through the Windows API, and application-level
functions used for Web development (ASP.NET), data access (ADO.NET),
security, and remote management
.NET applications arent executed the same way as the traditional Windows
applications you might be used to creating. Instead of being compiled into an
executable containing native code, .NET application code is compiled into
Microsoft intermediate language (MSIL) and stored in a file called an
assembly. At run time, the assembly is compiled to its final state by the CLR.
While running, the CLR provides memory management, type-safety checks,
and other run-time tasks for the application. Figure 1-7 shows how this
works.

Figure 1-7. How a .NET application runs


Applications that run under the CLR are called managed code because the
CLR takes care of many of the tasks that would have formerly been handled
in the applications executable itself. Managed code solves the Windows
programming problems of component registration and versioning (sometimes
called DLL hell) because the assembly contains all the versioning and type
information that the CLR needs to run the application. The CLR handles
registration dynamically at run time, rather than statically through the system
registry as is done with applications based on the Component Object Model
(COM).
The .NET class library provides access to all the features of the CLR. The
.NET class library is organized into namespaces. Each namespace contains
a functionally related group of classes. Table 1-4 summarizes the .NET
namespaces that are of the most interest to Web application programmers.