Sunteți pe pagina 1din 134

Software

Project
Management

Chapt
er 1

Abstr
act

In software industry, the major problem is meeting the clients requirements


with specific to a software project development is the deliverables that should
be promised to the client. The client standardizes himself to a contract and
fixes a specific time onto the systems, when the project has to be delivered.
Once the software development contract is signed, the actual task on
scheduling the manpower and machine requirements arises. In scheduling the
manpower and machine requirements arise. In a software development
process, if the manpower is not organized properly then it can cause a great
lot of have in reaching the targets. The major goal of any software
development firm is to meet the targets as fast as possible with the least
manpower, to get targeted profits. The other area where the software
developments firm are interested are with respect to the management of
library with specific to the previous project development processes. The
application training the bugs and their associated tescases that were
developed previously also plays a vital role. The software project management
solutions, is an application that kinds itself with the overall standards of
managing a project at all levels of its development processes. The application
is projected towards the maintenance of data, that is utmost necessary to
know the state and status of a project that is undergoing through the process
of development. The major intension its to maintain the history of all the
components that have been developed for a specific projects along with the
associated information about the software engineer who has been involved in
the process of development of that component. This type of standard always
helps the industry not only in managing the Human Resources properly but
also help to keep down the maintenance upon the system. The history of
information also helps in keeping the standards of bug tracking and bug
management much easier, flexible and faster.
The project has been planned to be having the view of distributed
architecture, with centralized storage of the database. The application for the
storage of the data has been planned. Using the constructs of MSSQLServer2000 and all the user interfaces have been designed using the
ASP.Net technologies. The database connectivity is planned using the SQL

Connection methodology. The standards of security and data protective


mechanism have been given a big choice for proper usage. The application
takes care of different modules and their associated reports, which are
produced as per the applicable strategies and standards that are put
forwarded by the administrative staff.

Chapt
er 2

Project
Synopsis

The entire project has been developed keeping in view of the distributed client
server computing technology, in mind. The specification have been normalized
up to 3NF to eliminate all the anomalies that may arise due to the database
transaction that are executed by the general users and the organizational
administration. The user interfaces are browser specific to give distributed
accessibility for the overall system. The internal database has been selected as
MS-SQL server 200.The basic constructs of tablespaces, clusters and indexes
have been exploited to provide higher consistency and reliability for the data
storage. The MS-SQL server 200 was a choice as it provides the constructs of
high-level reliability and security. The total front end was dominated using the
ASP.Net technologies. At all proper levels high care was taken to check that
the system manages the data consistency with proper business rules or
validations. The database connectivity was planned using the latest SQL
Connection technology provided by Microsoft Corporation. The authentication
and authorization was crosschecked at all the relevant stages. The user level
accessibility has been restricted into two zones namely. The administrative
zone and the normal user zone.

About the Organization


The system has a major problem in finding the product support and service
activities that are undertaken by the employees. Once the products have
installed at the clients site, the cycle of warranty maintenance starts. To keep
the customers in a proper chain of satisfaction the system needs the data to
organized in a proper relational way. The actual the project is to maintain this
relational communication among the project is to maintain this relational
communication among the data, such that consistency, reliability and integrity
can be achieved. Thye major technicality within the system lies in managing
the coordination among the sales and service departments, which is the major
hold upon the system to gain or achieve profits.

Manual Process
First Phase

A software
contract is
signed

The process of
development
starts
in
connection to
each
professionals
responsibility

The details of
the client and
the
software
deliverablesdata
are mained as
history
in
respective
registers spread
sheets.

The
s/w
professionals
are
assigned
through
their responsibilities
and are put onto the
allocated work.

The
specification
collection
in
charge
is
recognized and
his credentials
are stored.

A
team
of
s/w
professionals
is
identified
for
the
purpose
and
their
specifications
are
recorded.

Second Phase

The
developer
needs some
library
information

Proceed with
the
development
process in an
integrated
approach.

He
needs
to
collect
the
information
of
available
libraries

If found to be proper
then
copy
the
libraries
into
his
required areas.

Check down the


appropriate
register in
which it can be
available

Cross
verify
the
standards as per
the requirements

Why the New system


The development of the new system contains the following activities,
which try to automate the entire process keeping in view of the
database integration approach.
1. The system makes the overall project management much easier

and flexible.
2. The contract signed clients details are readily available at any

moment when the information is necessary.


3. The schedule of the presently working software engineers, Team

leaders and project leaders can be known is a flash of a second.


4. The generic schedules and the future availability of the man

power calculation can take place in a short time.


5. There is no risk of data mismanagement at any level while the

project development is under process.


6. The library search with regard to the previously developed

modules will becomes much easier and faster.


7. The associated relationship with respect to a module, component

or element design can be found out very easily and very quickly.
8. The application at peak stages can make the Bug tracking and

maintenance to be more specific and more proper.

Chapt
er 3

Fe a s i b i l
ity
Report

Technical Descriptions
Databases: The total number of databases has been identified as 22
entities.

The

major

part

of

the

databases

is

categorized

as

administrative components and the general user components. The


administrative components are useful in managing the actual master
data that is very much necessary to maintain the consistency upon the
system. The administrative databases are purely used for the internal
organizational needs and necessities only at the upper and middle
management areas.
The user components are designed to handle the transactional states
that arise upon the system whenever the general employee within the
organization visits the user interface for mock enquiry for the required
data. The normal user interfaces get associated to the environment
mostly for the sake of report standardization. The user components are
scheduled to accept parametrical information from the users as per the
system necessity.
GUIs
In the flexibility of the uses the interface has been developed a graphics
concept in mind, associated through a browses interface. The GUIS at
the top level have been categorized as
1. Administrative user interface
2. The operational or generic user interface
The administrative user interface concentrates on the consistent
information that is practically, part of the organizational activities and
which needs proper authentication for the data collection. The interfaces
help the administrations with all the transactional states like Data
insertion, Data deletion and Date updation along with the extensive
data search capabilities.

The operational or generic user interface helps the users upon the
system in transactions through the existing data and required services.
The operational user interface also helps the ordinary users in managing
their own information helps the ordinary users in managing their own
information in a customized manner as per the assisted flexibilities.
Number of Modules

The system after careful analysis has been identified to be presented


with the following modules:
1. Branch

Information

Module:

This

module

handles

the

information of all the unique branches existing under the


organization. The information is maintained in branch master
table.
It also maintains the employees working under a particular
branch, which can be known a report generated on employee
master table grouping on branch id.
2. Employee information module: It manages the following sub
modules

Employees performance module.

Employees took assignment module


Employees skill set information module.
This module maintains the total information related to the
employees working in the organization. Their designations and
the departments in which they are recruited. It also gives the
information regarding the employees performance within the
organization related to their job targets. It manages a clear
history of employee still sets and defines the role played by the

employee in a project and the area of his interaction in the


project i.e., at the level of project or module component of
elements.
It also maintains department master table.
3. Project information management module: It maintains the
total information related to the unique projects that have been
signed for contract of development. The module reveals the
information regarding which project belongs to which client and
the associated employee who is in charge for the overall project.
The major concentration is surrounded upon the facts table, which
clearly specifies how many modules a project manages with
respect to no. Of components in each module and the no. Of
elements in association to each component.
The module also specifies the duration of each entity with respect
to the role played by each employee and the entity level in
charge.
4. Package information module: This module manages the entire
information regarding the different types of packages that are
purposefully

used

by

the

organization

in

their

project

development process and specifies the required packages list to


complete a signed project. It also relates itself to know the
different packages an employee can handle, which can serve as
an information to recognize which employee can be resourceful to
which type of project.
5. Project documentation Module: This module maintains the
overall information related to all the documents that are produced
in course of project development process by different employees
with respect to different areas of the project.

The module also serves to build on online help like system for the
sake of user convenience and serves as a reference material to
the developers as well as users.
6.Employees performance management module: This module
maintains the specific time levels taken by the employer in
completing his tasks in turn serving the project analysis team to
get the history of employees response towards an assigned task.
The information from this module can be used as a cross referential
check to know the rating levels of the employee as designated
within the company.
7.Report designing module: This module practically manges the
descriptive reports that are necessary within the organization as
per the requirements of the information format at different levels of
designations or departments.

Chapter 4

Analysis
Report

SRS

Document:

Intended Audience And Reading Suggestions


The document is prepared keeping is view of the academic
constructs

of

my

Bachelors

Degree

Masters

Degree

from

university as partial fulfillment of my academic purpose the


document specifies the general procedure that that has been
followed by me, while the system was studied and developed.
The

general

document

was

provided

by

the

industry

as

reference guide to understand my responsibilities in developing


the system, with respect to the requirements that have been
pin pointed to get the exact structure of the system as stated
by the actual client.
The

system

as

stated

by

my

project

leader

the

actual

standards of the specification were desired by conducting a


series

of

interviews

and

questionnaires.

The

collected

information was organized to form the specification document


and then was modeled to suite the standards of the system as
intended.
Document Conventions:
The

overall

documents

for

this

project

use

the

recognized

modeling standards at the software industries level.

ER-Modeling to concentrate on the relational states


existing
upon
the
system
with
respect
to
Cardinality.

The Physical dispense, which state the overall data


search for the relational key whereas a transactions
is implemented on the wear entities.

Unified modeling language concepts to give


generalized blue print for the overall system.

The standards of flow charts at the required states


that are the functionality of the operations need
more concentration.

Microsoft SQL Server 7.0 Storage Engine


Introduction
SQL Server 7.0 a scalable, reliable, and easy-to-use product
that will provide a solid foundation for application design for
the next 20 years.

Storage Engine Design Goals


Database applications can now be deployed widely due to
intelligent, automated storage engine operations. Sophisticated
y e t s i m p l i f i e d a r c h i t e c t u r e i m p r o v e s p e r f o r m a n c e , r e l i a b i l i t y,
a n d s c a l a b i l i t y.

Feature

Description and Benefits

Reliability

C o n c u r r e n c y, s c a l a b i l i t y, a n d r e l i a b i l i t y a r e
improved with simplified data structures and
algorithms. Run-time checks of critical data
structures make the database much more robust,
minimizing the need for consistency checks.

Scalability

The new disk format and storage subsystem


provide storage that is scalable from very small to
very large databases. Specific changes include:
Simplified mapping of database objects to
files eases management and enables tuning
f l e x i b i l i t y. D B o b j e c t s c a n b e m a p p e d t o
specific disks for load balancing.

Ease of Use

More efficient space management including


increasing page size from 2 KB to 8 KB, 64
KB I/O, variable length character fields up to
8 KB, and the ability to delete columns from
existing tables without an unload/reload of
the data.

Redesigned utilities support terabyte-sized


d a t a b a s e s e f f i c i e n t l y.

DBA intervention is eliminated for standard


operationsenabling branch office automation and
desktop and mobile database applications. Many
complex server operations are automated.

Storage Engine Features

Feature

Description and Benefits

D a t a Typ e
Sizes

Maximum size of character and binary data types


is dramatically increased.

Databases
and Files

Databases creation is simplified, now residing on


operating system files instead of logical devices.

Dynamic
Memory

Improves performance by optimizing memory


allocation and usage. Simplified design
minimizes contention with other resource
managers.

Dynamic
Row- Level
Locking

Full row-level locking is implemented for both


data rows and index entries. Dynamic locking
automatically chooses the optimal level of lock
(row, page, multiple page, table) for all
database operations. This feature provides
improved concurrency with no tuning. The
database also supports the use of "hints" to
force a particular level of locking.

Dynamic
Space
Management

A database can automatically grow and shrink


within configurable limits, minimizing the need
for DBA intervention. It is no longer necessary to
pre allocate space and manage data structures.

Evolution

The new architecture is designed for


e x t e n s i b i l i t y, w i t h a f o u n d a t i o n f o r o b j e c t relational features.

Large
Memory
Support

SQL Server 7.0 Enterprise Edition will support


memory addressing greater than 4 GB, in
conjunction with Windows NT Server 5.0, Alpha
processor-based systems, and other techniques.

Unicode

Native Unicode, with ODBC and OLE DB Unicode


APIs, improves multilingual support.

Storage Engine Architectural Overview


Overview
The original code was inherited from Sybase and designed for
eight-megabyte

Unix

systems

in

1983.These

new

formats

improve manageability and scalability and allow the server to


easily

scale

from

low-end

to

high-end

systems,

improving

p e r f o r m a n c e a n d m a n a g e a b i l i t y.
Benefits
There are many benefits of the new on-disk layout, including:

Improved scalability and integration with Windows


NT Server

Better performance with larger I/Os


Stable record locators allow more indexes
More indexes speed decision support queries
Simpler data structures provide better quality
Greater extensibility, so that subsequent releases
will have a cleaner development process and new
features are faster to implement

Storage Engine Subsystems


Most relational database products are divided into relational
engine and storage engine components. This document focuses
on the storage engine, which has a variety of subsystems:

Mechanisms that store data in files and find pages,


files, and extents.

Record management for accessing the records on


pages.
Access methods using b-trees that are used to
quickly find records using record identifiers.
Concurrency control for locking,used to implement
the physical lock manager and locking protocols
for page- or record-level locking.
I/O buffer management.
Logging and recovery.

Utilities
for
backup
and
restore,
checking, and bulk data loading.

consistency

Databases, Files, and Filegroups


Overview
SQL Server 7.0 is much more integrated with Windows NT
Server than any of its predecessors. Databases are now stored
directly in Windows NT Server files .SQL Server is being
stretched towards both the high and low end .
Files
SQL Server 7.0 creates a database using a set of operating
system files, with a separate file used for each database.
Multiple databases can no longer share the same file. There
are several important benefits to this simplification. Files can
now grow and shrink, and space management is greatly
simplified. All data and objects in the database, such as
tables, stored procedures, triggers, and views, are stored only
within these operating system files:
F i l e Typ e

Description

Primary
data file

This file is the starting point of the database.


Every database has only one primary data file and
all system tables are always stored in the primary
data file.

Secondary
data files

These files are optional and can hold all data and
objects that are not on the primary data file. Some
databases may not have any secondary data files,
while others have multiple secondary data files.

Log files

These
files
hold
all
of
the
transaction
log
information used to recover the database. Every
database has at least one log file.

When a database is created, all the files that comprise the


database are zeroed out (filled with zeros) to overwrite any
existing data left on the disk by previously deleted files. This
improves the performance of day-to-day operations.

Filegroups
A database now consists of one or more data files and one or
more log files. The data files can be grouped together into
u s e r - d e f i n e d f i l e g r o u p s . Tab l e s a n d i n d e x e s c a n t h e n b e
mapped to different filegroups to control data placement on
physical
disks.
Filegroups
are
a
convenient
unit
of
a d m i n i s t r a t i o n , g r e a t l y i m p r o v i n g f l e x i b i l i t y. S Q L S e r v e r 7 . 0
will allow you to back up a different portion of the database
each night on a rotating schedule by choosing which filegroups
to back up. Filegroups work well for sophisticated users who
know where they want to place indexes and tables. SQL Server
7.0 can work quite effectively without filegroups.
Log files are never a part of a filegroup. Log space is managed
separately from data space.
Using Files and Filegroups
Using files and filegroups improves database performance by
allowing a database to be created across multiple disks,
multiple disk controllers, or redundant array of inexpensive
disks (RAID) systems. For example, if your computer has four
disks, you can create a database that comprises three data
files and one log file, with one file on each disk. As data is
accessed, four read/write heads can simultaneously access the
data
in
parallel,
which
speeds
up
database
o p e r a t i o n s . A d d i t i o n a l l y, f i l e s a n d f i l e g r o u p s a l l o w b e t t e r d a t a
placement because a table can be created in a specific
filegroup. This improves performance because all I/O for a
specific table can be directed at a specific disk. For example, a
heavily used table can be placed on one file in one filegroup
and located on one disk. The other less heavily accessed tables
in the database can be placed on other files in another
filegroup, located on a second disk.
Space Management
There are many improvements in the allocations of space and
the management of space within files. The data structures that
keep track of page-to-object relationships were redesigned.
Instead of linked lists of pages, bitmaps are used because they
are cleaner and simpler and facilitate parallel scans. Now each
f i l e i s m o r e a u t o n o m o u s ; i t h a s m o r e d a t a a b o u t i t s e l f, w i t h i n
itself. This works well for copying or mailing database files.

SQL Server now has a much more efficient system for tracking
table space. The changes enable

Growing and shrinking files

Better support for large I/O

Row space management within a table

Less expensive extent allocations

SQL Server is very effective at quickly allocating pages to


objects and reusing space freed by deleted rows. These
operations are internal to the system and use data structures
not visible to users, yet are occasionally referenced in SQL
Server messages.
File Shrink
The
server
checks
the
space
usage
in
each
database
p e r i o d i c a l l y. I f a d a t a b a s e i s f o u n d t o h a v e a l o t o f e m p t y
space, the size of the files in the database will be reduced.
Both data and log files can be shrunk. This activity occurs in
the background and does not affect any user activity within the
d a t a b a s e . You c a n a l s o u s e t h e S Q L S e r v e r E n t e r p r i s e M a n a g e r
or DBCC to shrink files as individually or as a group, or use the
D B C C c o m m a n d s S H R I N K D ATAB A S E o r S H R I N K F I L E .
SQL Server shrinks files by moving rows from pages at the end
of the file to pages allocated earlier in the file. In an index,
nodes are moved from the end of the file to pages at the
beginning of the file. In both cases pages are freed at the end
of files and then returned to the file system. Databases can
only be shrunk to the point that no free space is remaining;
there is no data compression.
File Grow
Automated file growth greatly reduces the need for database
management and eliminates many problems that occur when
logs or databases run out of space. When creating a database,
an initial size for the file must be given. SQL Server creates
the data files based on the size provided by the database
creator and data is added to the database these files fill. By
default, data files are allowed to grow as much as necessary
u n t i l d i s k s p a c e i s e x h a u s t e d . A l t e r n a t i v e l y, d a t a f i l e s c a n b e

c o n f i g u r e d t o g r o w a u t o m a t i c a l l y, b u t o n l y t o a p r e d e f i n e d
maximum size. This prevents disk drives from running out of
space.
Allowing files to grow automatically can cause fragmentation of
those files if a large number of files share the same disk.
Therefore, it is recommended that files or filegroups be
created on as many different local physical disks as available.
Place objects that compete heavily for space in different
filegroups.

Physical Database Architecture


Microsoft
SQL
Server
version
7.0
introduces
significant
i m p r o v e m e n t s i n t h e w a y d a t a i s s t o r e d p h y s i c a l l y. T h e s e
changes are largely transparent to general users, but do affect
the setup and administration of SQL Server databases.
Pages and Extents
The fundamental unit of data storage in SQL Server is the
page. In SQL Server version 7.0, the size of a page is 8 KB,
increased from 2 KB. The start of each page is a 96-byte
header used to store system information, such as the type of
page, the amount of free space on the page, and the object ID
of the object owning the page.
There are seven types of pages in the data files of a SQL
Server 7.0 database.
Page Type

Contains

Data

Data rows with all data except text, ntext,


and image.

Index

Index entries

Log

Log records recording data changes for use


in recovery

Tex t / I m a g e

Tex t , n t e x t , a n d i m a g e d a t a

Global
Map

Allocation Information about allocated extents

Page Free Space

Information about free space available on


pages

Index
Map

Allocation Information about extents used by a table


or index.

Torn Page Detection


Tor n p a g e d e t e c t i o n h e l p s i n s u r e d a t a b a s e
Server 7.0, pages are 8 KB, while Windows
byte segments. This discrepancy makes it
to be partially written. This could happen
failure or other problem between the time
byte segment is written and the completion

c o n s i s t e n c y. I n S Q L
NT does I/O in 512possible for a page
if there is a power
when the first 512of the 8 KB of I/O.

There are several ways to deal with this. One way is to use
battery-backed cached I/O devices that guarantee all-ornothing I/O. If you have one of these systems, torn page
d e t e c t i o n i s u n n e c e s s a r y.
In SQL Server 7.0, you can enable torn page detection for a
particular database by turning on a database option.
Locking Enhancements
Row-Level Locking
SQL Server 6.5 introduced a limited version of row locking on
inserts. SQL Server 7.0 now supports full row-level locking for
b o t h d a t a r o w s a n d i n d e x e n t r i e s . Tra n s a c t i o n s c a n u p d a t e
i n d i v i d u a l r e c o r d s w i t h o u t l o c k i n g e n t i r e p a g e s . M a n y O LTP
a p p l i c a t i o n s c a n e x p e r i e n c e i n c r e a s e d c o n c u r r e n c y, e s p e c i a l l y
when applications append rows to tables and indexes.
Dynamic Locking
SQL Server 7.0 has a superior locking mechanism that is
u n i q u e i n t h e d a t a b a s e i n d u s t r y. A t r u n t i m e , t h e s t o r a g e
engine dynamically cooperates with the query processor to
choose
the
lowest-cost
locking
s t r a t e g y, b a s e d
on
the
c h a r a c t e r i s t i c s o f t h e s c h e m a a n d q u e r y.
Dynamic locking has the following advantages:

Simplified database administration, because database


administrators no longer need to be concerned with
adjusting lock escalation thresholds.

Increased performance, because SQL Server minimizes


system overhead by using locks appropriate to the task.
Application developers can concentrate on development,
b e c a u s e S Q L S e r v e r a d j u s t s l o c k i n g a u t o m a t i c a l l y.

Multigranular locking allows different types of resources to be


l o c k e d b y a t r a n s a c t i o n . To m i n i m i z e t h e c o s t o f l o c k i n g , S Q L
Server automatically locks resources at a level appropriate to
t h e t a s k . L o c k i n g a t a s m a l l e r g r a n u l a r i t y, s u c h a s r o w s ,
increases concurrency but has a higher overhead because more
locks must be held if many rows are locked. Locking at a larger
g r a n u l a r i t y, s u c h
as
tables,
is
expensive
in
terms
of
c o n c u r r e n c y. H o w e v e r, l o c k i n g a l a r g e r u n i t o f d a t a h a s a l o w e r
overhead because fewer locks are being maintained.

Lock Modes
SQL Server locks resources using different lock modes that
determine how the resources can be accessed by concurrent
transactions.
SQL Server uses several resource lock modes:
Lock mode

Description

Shared

Used for operations that do not change or


update data (read-only operations), such as a
SELECT statement.

Update

Used
on
resources
that
can
be
updated.
Prevents a common form of deadlock that
occurs when multiple sessions are reading,
locking, and then potentially updating resources
l a t e r.

Exclusive

Used for data-modification operations, such as


U P D ATE , I N S E R T, o r D E L E T E . E n s u r e s t h a t
multiple updates cannot be made to the same
resource at the same time.

Intent

U s e d t o e s t a b l i s h a l o c k h i e r a r c h y.

Schema

Used when an operation dependent on the


schema of a table is executing. There are two
types of schema locks: schema stability and
schema modification.

Table and Index Architecture


Overview
Fundamental changes were made in table organization. This
new organization allows the query processor to make use of
more nonclustered indexes, greatly improving performance for
decision support applications. The query optimizer has a wide
set of execution strategies and many of the optimization
limitations of earlier versions of SQL Server have been
r e m o v e d . I n p a r t i c u l a r, S Q L S e r v e r 7 . 0 i s l e s s s e n s i t i v e t o
index-selection issues, resulting in less tuning work.
Table Organization
The data for each table is now stored in a collection of 8-KB
data pages. Each data page has a 96-byte header containing
system information such as the ID of the table that owns the
page and pointers to the next and previous pages for pages
linked in a list. A row-offset table is at the end of the page.
Data rows fill the rest of the page.
SQL Server 7.0 tables use one of two methods to organize their
data pages:

Clustered tables are tables that have a clustered index.


The data rows are stored in order based on the clustered
i n d e x k e y. T h e d a t a p a g e s a r e l i n k e d i n a d o u b l y l i n k e d
list. The index is implemented as a b-tree index structure
that supports fast retrieval of the rows based on their
clustered index key values.

Heaps are tables that have no clustered index. There is


no particular order to the sequence of the data pages and
the data pages are not linked in a linked list.

Table Indexes
A SQL Server index is a structure associated with a table that
speeds retrieval of the rows in the table. An index contains
keys built from one or more columns in the table. These keys
are stored in a structure that allows SQL Server to quickly and
efficiently find the row or rows associated with the key values.
This structure is called a heap. The two types of SQL Server
indexes are clustered and nonclustered indexes
Clustered Indexes
A clustered index is one in which the order of the values in the
index is the same as the order of the data stored in the table.
The clustered index contains a hierarchical tree. When
searching for data based on a clustered index value, SQL
Server quickly isolates the page with the specified value and
then searches the page for the record or records with the
specified value. The lowest level, or leaf node, of the index
tree is the page that contains the data.
Nonclustered Indexes
A nonclustered index is analogous to an index in a textbook.
T h e d a t a i s s t o r e d i n o n e p l a c e ; t h e i n d e x i s s t o r e d i n a n o t h e r,
with pointers to the storage location of the indexed items in
the data. The lowest level, or leaf node, of a nonclustered
i n d e x i s t h e R o w I d e n t i f i e r o f t h e i n d e x e n t r y, w h i c h g i v e s S Q L
Server the location of the actual data row. The Row Identifier
can have one of two forms. If the table has a clustered index,
t h e i d e n t i f i e r o f t h e r o w i s t h e c l u s t e r e d i n d e x k e y. I f t h e t a b l e
is a heap, the Row Identifier is the actual location of the data
row, indicated with a page number and offset on the page.
Therefore, a nonclustered index, in comparison with a
clustered index, has an extra level between the index structure
and the data itself.
When SQL Server searches for data based on a nonclustered
index, it searches the index for the specified value to obtain
the location of the rows of data and then retrieves the data
from their storage locations. This makes nonclustered indexes
the optimal choice for exact-match queries.
Some books contain multiple indexes. Since nonclustered
indexes frequently store clustered index keys as their pointers

to data rows, it is important to keep clustered index keys as


small as possible.
SQL Server supports up to 249 nonclustered indexes on each
table. The nonclustered indexes have a b-tree index structure
similar to the one in clustered indexes. The difference is that
nonclustered indexes have no effect on the order of the data
rows. The collection of data pages for a heap is not affected if
nonclustered indexes are defined for the table.
Data Type Changes
Unicode Data
SQL Server now supports Unicode data types, which makes it
easier to store data in multiple languages within one database
by eliminating the problem of converting characters and
installing multiple code pages. Unicode stores character data
using two bytes for each character rather than one byte. There
are 65,536 different bit patterns in two bytes, so Unicode can
use one standard set of bit patterns to encode each character
in all languages, including languages such as Chinese that
have
large
numbers
of
characters.
Many
programming
languages also support Unicode data types.
T h e n e w d a t a t y p e s t h a t s u p p o r t U n i c o d e a r e n t e x t , n c h a r, a n d
n v a r c h a r. T h e y a r e t h e s a m e a s t e x t , c h a r, a n d v a r c h a r, e x c e p t
for the wider range of characters supported and the increased
storage space used.
Improved Data Storage
Data storage flexibility is greatly improved with the expansion
o f t h e m a x i m u m l i m i t s f o r c h a r, v a r c h a r, b i n a r y, a n d v a r b i n a r y
data types to 8,000 bytes, increased from 255 bytes. It is no
longer necessary to use text and image data types for data
s t o r a g e f o r a n y t h i n g b u t v e r y l a r g e d a t a v a l u e s . T h e Tra n s a c t SQL string functions also support these very long char and
varchar values, and the SUBSTRING function can be used to
process text and image columns. The handling of Nulls and
empty strings has been improved. A new unique identifier data
type is provided for storing a globally unique identifier (GUID).

Normalization
Normalization is the concept of analyzing the inherent or
normal

relationships

between

the

various

elements

of

database. Data is normalized in different forms.

First normal form: Data is in first normal form if data of the


tables is moved in to separate tables where data in each table
is of a similar type, giving each table a primary key a unique
l a b e l o r a n i d e n t i f i e r. T h i s e l i m i n a t e s r e p e a t i n g g r o u p s o f d a t a .

Second normal form: Involves taking out data that is only


d e p e n d e n t o n p a r t o f k e y.

Third

normal

form:

Involves

removing

the

transitive

dependencies. This means getting rid of any thing in the tables


t h a t d o e s n t d e p e n d S o l e l y o n t h e p r i m a r y k e y. T h u s , t h r o u g h
normalization,

effective

data

storage

can

be

achieved

eliminating redundancies and repeating groups.


SQL
The structured query language is used to manipulate data in
the oracle database. It is also called SEQUEL.
SQL *plus- the user friendly interface:
SQL *plus Is a superset of the standard SQL .it conforms to
the standards of an SQL compliant language and it has some
specific oracle add ones, leading to its name SQL and plus.
SQL *plus was always called UFI (user friendly interface). The
oracle server only understands statements worded using SQL.
Other front-end tools interact with the oracle database using
the SQL statements. Oracles implementation of SQL through
SQL *plus is compliant with ANSI (American national standard

institute) and the ISO (international standards organization)


standards. Almost all oracle tools support identical SQL syntax

Data can be manipulated upon by using the Data Manipulation


Language

(DML). The DML statements provided by SQL are

select, update, and delete. SQL *plus 3.3 can be accessed only
by giving the valid username and password. This is one of the
security features imposed by oracle to restrict unauthorized
data accessed. SQL allows provides commands for creating new
users, granting privileges etc.
All such features of SQL*plus make it a power data access tool
especially for oracle products.

Client Server Technologies

MS.NET
Overview of the .NET Framework
The

.NET

Framework

is

new

computing

platform

that

simplifies application development in the highly distributed


environment

of

the

Internet.

The

.NET

Framework

is

designed to fulfill the following objectives:

To p r o v i d e a c o n s i s t e n t o b j e c t - o r i e n t e d p r o g r a m m i n g
environment
executed

whether

l o c a l l y,

object

executed

code

is

locally

stored

but

and

Internet-

d i s t r i b u t e d , o r e x e c u t e d r e m o t e l y.

To

provide

minimizes

code-execution

software

deployment

environment
and

that

versioning

conflicts.

To

provide

code-execution

environment

that

guarantees safe execution of code, including code


c r e a t e d b y a n u n k n o w n o r s e m i - t r u s t e d t h i r d p a r t y.

To

provide

code-execution

environment

that

eliminates the performance problems of scripted or


interpreted environments.

To m a k e t h e d e v e l o p e r e x p e r i e n c e c o n s i s t e n t a c r o s s
widely

varying

Windows-based
applications.

types

of

applications,

applications

and

such

as

W eb - b a s e d

To b u i l d a l l c o m m u n i c a t i o n o n i n d u s t r y s t a n d a r d s t o
ensure that code based on the .NET Framework can
integrate with any other code.

The .NET Framework has two main components: the common


l a n g u a g e r u n t i m e a n d t h e . N E T F r a m e w o r k c l a s s l i b r a r y. T h e
common

language

runtime

is

the

foundation

of

the

.NET

F r a m e w o r k . You c a n t h i n k o f t h e r u n t i m e a s a n a g e n t t h a t
manages code at execution time, providing core services such
as memory management, thread management, and remoting,
while also enforcing strict type safety and other forms of code
accuracy

that

ensure

security

and

robustness.

In

fact,

the

concept of code management is a fundamental principle of the


runtime. Code that targets the runtime is known as managed
code, while code that does not target the runtime is known as
u n m a n a g e d c o d e . T h e c l a s s l i b r a r y, t h e o t h e r m a i n c o m p o n e n t
of the .NET Framework, is a comprehensive, object-oriented
collection

of

applications
graphical

reusable

types

that

ranging

from

traditional

user

interface

(GUI)

you

can

use

to

develop

command-line

applications

to

or

applications

b a s e d o n t h e l a t e s t i n n o v a t i o n s p r o v i d e d b y A S P.N E T, s u c h a s
Web Forms and XML Web services.
The .NET Framework can be hosted by unmanaged components
that load the common language runtime into their processes
and initiate the execution of managed code, thereby creating a
software

environment

that

can

exploit

both

managed

and

unmanaged features. The .NET Framework not only provides


several runtime hosts, but also supports the development of
third-party runtime hosts.
F o r e x a m p l e , A S P.N E T h o s t s t h e r u n t i m e t o p r o v i d e a s c a l a b l e ,
server-side

environment

for

managed

code.

A S P.N E T

works

d i r e c t l y w i t h t h e r u n t i m e t o e n a b l e W eb F o r m s a p p l i c a t i o n s a n d
X M L W eb s e r v i c e s , b o t h o f w h i c h a r e d i s c u s s e d l a t e r i n t h i s
topic.
Internet Explorer is an example of an unmanaged application
that hosts the runtime (in the form of a MIME type extension).
Using Internet Explorer to host the runtime enables you to
embed
HTML

managed

components

documents.

managed

Hosting

mobile

code

or

the

Windows
runtime

(similar

to

in

Forms

controls

this

way

Microsoft

in

makes

ActiveX

controls) possible, but with significant improvements that only


m a n a g e d c o d e c a n o f f e r, s u c h a s s e m i - t r u s t e d e x e c u t i o n a n d
secure isolated file storage.
Features of the Common Language Runtime
T h e c o m m o n l a n g u a g e r u n t i m e m a n a g e s m e m o r y, t h r e a d
execution,

code

execution,

code

safety

verification,

compilation, and other system services. These features are


intrinsic

to

the

managed

code that runs on the common

language runtime.
With

regards

to

s e c u r i t y,

managed

components

are

awarded varying degrees of trust, depending on a number of


factors

that

include

their

origin

(such

as

the

Internet,

enterprise network, or local computer). This means that a


managed component might or might not be able to perform
file-access operations, registry-access operations, or other
sensitive functions, even if it is being used in the same
active application.
T h e r u n t i m e e n f o r c e s c o d e a c c e s s s e c u r i t y. F o r e x a m p l e ,
u s e r s c a n t r u s t t h a t a n e x e c u t a b l e e m b e d d e d i n a W eb p a g e
can play an animation on screen or sing a song, but cannot

access

their

security

personal

features

of

data,
the

file

system,

runtime

thus

or

network.

enable

The

legitimate

Internet-deployed software to be exceptionally feature rich.


The

runtime

implementing

also
a

enforces

strict

code

type-

robustness

and

by

code-verification

infrastructure called the common type system (CTS). The


CTS ensures that all managed code is self-describing. The
various

Microsoft

and

managed

code

generate

third-party
that

language

conforms

to

compilers

the

CTS.

This

means that managed code can consume other managed types


and instances, while strictly enforcing type fidelity and type
s a f e t y.
In

addition,

the

managed

environment

of

the

runtime

eliminates many common software issues. For example, the


runtime automatically handles object layout and manages
references
longer

to

being

objects,
used.

releasing

This

them

automatic

when

memory

they

are

no

management

resolves the two most common application errors, memory


leaks and invalid memory references.
T h e r u n t i m e a l s o a c c e l e r a t e s d e v e l o p e r p r o d u c t i v i t y. F o r
example,

programmers

can

write

applications

in

their

development language of choice, yet take full advantage of


t h e r u n t i m e , t h e c l a s s l i b r a r y, a n d c o m p o n e n t s w r i t t e n i n
other languages by other developers. Any compiler vendor
who chooses to target the

runtime

can do so. Language

compilers that target the .NET Framework make the features


of the .NET Framework available to existing code written in
that

language,

greatly

existing applications.

easing

the

migration

process

for

While the runtime is designed for the software of the


f u t u r e , i t a l s o s u p p o r t s s o f t w a r e o f t o d a y a n d y e s t e r d a y.
Interoperability
enables

between

developers

to

managed
continue

and
to

unmanaged

code

necessary

COM

use

components and DLLs.


The

runtime

Although

the

standard

is

designed

common

runtime
A

enables

managed

all

feature

enhance

language

services,

interpreted.

to

called
code

to

runtime

managed
in

provides
code

just-in-time
run

performance.

the

is

(JIT)

many
never

compiling

native

machine

language of the system on which it is executing. Meanwhile,


the

memory

fragmented

manager

memory

and

removes

the

increases

possibilities

memory

of

locality-of-

reference to further increase performance.


F i n a l l y, t h e r u n t i m e c a n b e h o s t e d b y h i g h - p e r f o r m a n c e ,
server-side applications, such as Microsoft SQL Server
and Internet Information Services (IIS). This infrastructure
enables you to use managed code to write your business
logic, while still enjoying the superior performance of the
industry's

best

enterprise

servers

that

support

runtime

hosting.
Common Type System
The common type system defines how types are declared,
used, and managed in the runtime, and is also an important
part of the runtime's support for cross-language integration.
The common type system performs the following functions:
Establishes

integration,

type

execution.

framework
s a f e t y,

that
and

enables
high

cross-language

performance

code

Provides

an

object-oriented

model

that

supports

the

complete implementation of many programming languages.


Defines
ensure

rules
that

that

languages

objects

written

must
in

follow,

different

which

helps

languages

can

i n t e r a c t w i t h e a c h o t h e r.
I n T h i s S e c t i o n C o m m o n Typ e S y s t e m O v e r v i e w
Describes

concepts

and

defines

terms

relating

to

the

common type system.


Type Definitions
Describes user-defined types.
Type Members
Describes

events,

properties,

and

fields,

concepts

nested
such

as

types,

methods,

member

and

overloading,

overriding, and inheritance.


Value Types
Describes built-in and user-defined value types.
Classes
Describes
classes.

the

characteristics

of

common

language

runtime

Delegates
Describes
the
delegate
object,
which
alternative to unmanaged function pointers.

is

Arrays
Describes common language runtime array types.

the

managed

Interfaces
Describes characteristics of interfaces and the restrictions on
interfaces imposed by the common language runtime.
Pointers
Describes
managed
pointers,
unmanaged function pointers.

unmanaged

pointers,

and

Related Sections
. NET Framework Class Library
Provides a reference to the classes, interfaces, and value types
included in the Microsoft .NET Framework SDK.
Common Language Runtime
Describes

the

execution

of

run-time
code

environment

and

provides

that

application

manages

the

development

services.
Cross-Language Interoperability
The common language runtime provides built-in support for
language
guarantee
language

i n t e r o p e r a b i l i t y.
that
can

H o w e v e r,

developers

use

code

you

using
write.

this

support

another
To e n s u r e

does

not

programming
that

you

can

develop managed code that can be fully used by developers


using any programming language, a set of language features
and

rules

for

using

them

called

the

Common

Language

Specification (CLS) has been defined. Components that follow


these rules and expose only CLS features are considered CLScompliant.

This section describes the common language runtime's built-in


support for language interoperability and explains the role that
the

CLS

plays

in

enabling

guaranteed

cross-language

i n t e r o p e r a b i l i t y. C L S f e a t u r e s a n d r u l e s a r e i d e n t i f i e d a n d C L S
compliance is discussed.
In This Section
Language Interoperability
Describes built-in support for cross-language interoperability
and introduces the Common Language Specification.

What is the Common Language Specification?


Explains

the

need

for

set

of

features

common

to

all

languages and identifies CLS rules and features.

Writing CLS-Compliant Code


Discusses the meaning of CLS compliance for components and
identifies levels of CLS compliance for tools.

Common Type System


Describes how types are declared, used, and managed by the
common language runtime.

Metadata and Self-Describing Components


Explains

the

common

language

runtime's

mechanism

for

describing a type and storing that information with the type


itself.
. NET Framework Class Library
The .NET Framework class library is a collection of reusable
types

that

tightly

integrate

with

the

common

language

runtime. The class library is object oriented, providing types


f r o m w h i c h y o u r o w n m a n a g e d c o d e c a n d e r i v e f u n c t i o n a l i t y.
This not only makes the .NET Framework types easy to use,
but

also

features

reduces
of

the

the
.NET

time

associated

Framework.

In

with

learning

addition,

new

third-party

components can integrate seamlessly with classes in the .NET


Framework.
For example, the .NET Framework collection classes implement
a

set

of

interfaces

that

you

can

use

to

develop

your

own

c o l l e c t i o n c l a s s e s . You r c o l l e c t i o n c l a s s e s w i l l b l e n d s e a m l e s s l y
with the classes in the .NET Framework.
As

you

would

expect

from

an

object-oriented

class

l i b r a r y,

the .NET Framework types enable you to accomplish a range of


common

programming

tasks,

including

tasks

such

as

string

m a n a g e m e n t , d a t a c o l l e c t i o n , d a t a b a s e c o n n e c t i v i t y, a n d f i l e
access. In addition to these common tasks, the class library
includes

types

that

support

development scenarios. For

variety

of

specialized

example, you can use the .NET

Framework to develop the following types of applications and


services:

Console applications.

Scripted or hosted applications.

Windows GUI applications (Windows Forms).

ASP.NET applications.

XML Web services.

Windows services.

For example, the Windows Forms classes are a comprehensive


set

of

reusable

types

that

vastly

simplify

Windows

GUI

d e v e l o p m e n t . I f y o u w r i t e a n A S P.N E T W e b F o r m a p p l i c a t i o n ,
you can use the Web Forms classes.
Client Application Development
Client

applications

application

in

are

the

closest

Windows-based

to

traditional

programming.

These

style
are

of
the

types of applications that display windows or forms on the


desktop, enabling a user to perform a task. Client applications
include applications such as word processors and spreadsheets,
as well as custom business applications such as data-entry
tools, reporting tools, and so on. Client applications usually
employ windows, menus, buttons, and other GUI elements, and
they likely access local resources such as the file system and
peripherals such as printers.
Another kind of client application is the traditional ActiveX
control (now replaced by the managed Windows Forms control)
deployed over the Internet as a Web page. This application is
m u c h l i k e o t h e r c l i e n t a p p l i c a t i o n s : i t i s e x e c u t e d n a t i v e l y, h a s
access to local resources, and includes graphical elements.

In the past, developers created such applications using C/C++


in conjunction with the Microsoft Foundation Classes (MFC) or
with a rapid application development (RAD) environment such
as Microsoft Visual Basic. The .NET Framework incorporates
aspects of these existing products into a single, consistent
development

environment

that

drastically

simplifies

the

development of client applications.


The Windows Forms classes contained in the .NET Framework
a r e d e s i g n e d t o b e u s e d f o r G U I d e v e l o p m e n t . You c a n e a s i l y
create command windows, buttons, menus, toolbars, and other
screen elements with the flexibility necessary to accommodate
shifting business needs.
For example, the .NET Framework provides simple properties to
adjust visual attributes associated with forms. In some cases
the underlying operating system does not support changing
these

attributes

d i r e c t l y,

and

in

these

cases

the

.NET

Framework automatically recreates the forms. This is one of


many

ways

developer

in

which

interface,

the

.NET

making

Framework

coding

integrates

simpler

and

the
more

consistent.
Unlike ActiveX controls, Windows Forms controls have semit r u s t e d a c c e s s t o a u s e r ' s c o m p u t e r. T h i s m e a n s t h a t b i n a r y o r
natively executing code can access some of the resources on
the

user's

access)

system

without

(such

being

as

able

GUI
to

elements

access

or

and

limited

compromise

file

other

r e s o u r c e s . B e c a u s e o f c o d e a c c e s s s e c u r i t y, m a n y a p p l i c a t i o n s
that once needed to be installed on a user's system can now be
safely

deployed

implement

the

through
features

d e p l o y e d l i k e a W eb p a g e .

the
of

Web.
local

You r

applications

application

while

can
being

Managed Execution Process


The managed execution process includes the following steps:
Choosing a Complier
To

obtain

the

benefits

provided

by

the

common

language

runtime, you must use one or more language compilers that


target the runtime.
Compiling your code to Microsoft Intermediate Language
(MSIL)
Compiling translates your source code into MSIL and generates
the required metadata.
Compiling MSIL to native code
At execution time, a just-in-time (JIT) compiler translates the
MSIL into native code. During this compilation, code must pass
a verification process that examines the MSIL and metadata to
find out whether the code can be determined to be type safe.
Executing your code
The common language runtime provides the infrastructure that
enables execution to take place as well as a variety of services
that can be used during execution.
Assemblies Overview
Assemblies are a fundamental part of programming with the
.NET

Framework.

functions:

An

assembly

performs

the

following

It contains code that the common language runtime executes.


Microsoft

intermediate

language

(MSIL)

code

in

portable

executable (PE) file will not be executed if it does not have an


associated assembly manifest. Note that each assembly can
have only one entry point (that is, DllMain, WinMain, or Main).
I t f o r m s a s e c u r i t y b o u n d a r y. A n a s s e m b l y i s t h e u n i t a t w h i c h
permissions are requested and granted. For more information
about security boundaries as they apply to assemblies, see
Assembly Security Considerations
I t f o r m s a t y p e b o u n d a r y. E v e r y t y p e ' s i d e n t i t y i n c l u d e s t h e
n a m e o f t h e a s s e m b l y i n w h i c h i t r e s i d e s . A t y p e c a l l e d M y Typ e
loaded in the scope of one assembly is not the same as a type
c a l l e d M y Typ e l o a d e d i n t h e s c o p e o f a n o t h e r a s s e m b l y.
I t f o r m s a r e f e r e n c e s c o p e b o u n d a r y. T h e a s s e m b l y ' s m a n i f e s t
contains assembly metadata that is used for resolving types
and satisfying resource requests. It specifies the types and
r e s o u r c e s t h a t a r e e x p o s e d o u t s i d e t h e a s s e m b l y. T h e m a n i f e s t
also enumerates other assemblies on which it depends.
It forms

a version

b o u n d a r y. T h e

assembly is

the

smallest

versionable unit in the common language runtime; all types


and resources in the same assembly are versioned as a unit.
The assembly's manifest describes the version dependencies
you

specify

for

any

dependent

assemblies.

For

more

i n f o r m a t i o n a b o u t v e r s i o n i n g , s e e A s s e m b l y Ve r s i o n i n g
It forms a deployment unit. When an application starts, only
the

assemblies

that

the

application

initially

calls

must

be

present. Other assemblies, such as localization resources or


assemblies

containing

utility

classes,

can

be

retrieved

on

demand. This allows applications to be kept simple and thin

when first downloaded. For more information about deploying


assemblies, see Deploying Applications
It is the unit at which side-by-side execution is supported. For
more information about running multiple versions of the same
a s s e m b l y, s e e S i d e - b y - S i d e E x e c u t i o n
Assemblies can be static or dynamic. Static assemblies can
include .NET Framework types (interfaces and classes), as well
as resources for the assembly (bitmaps, JPEG files, resource
files, and so on). Static assemblies are stored on disk in PE
f i l e s . You c a n a l s o u s e t h e . N E T F r a m e w o r k t o c r e a t e d y n a m i c
assemblies, which are run directly from memory and are not
saved

to

disk

before

execution.

You

can

save

dynamic

assemblies to disk after they have executed.


There

are

several

ways

to

create

assemblies.

You

can

use

d e v e l o p m e n t t o o l s , s u c h a s V i s u a l S t u d i o . N E T, t h a t y o u h a v e
u s e d i n t h e p a s t t o c r e a t e . d l l o r . e x e f i l e s . You c a n u s e t o o l s
provided in the .NET Framework SDK to create assemblies with
m o d u l e s c r e a t e d i n o t h e r d e v e l o p m e n t e n v i r o n m e n t s . You c a n
also use common language runtime APIs, such as Reflection.
Emit, to create dynamic assemblies.
Server Application Development
Server-side applications in the managed world are implemented
through

runtime

hosts.

Unmanaged

applications

host

the

common language runtime, which allows your custom managed


c o d e t o c o n t r o l t h e b e h a v i o r o f t h e s e r v e r. T h i s m o d e l p r o v i d e s
you with all the features of the common language runtime and
class library while gaining the performance and scalability of
t h e h o s t s e r v e r.

The following illustration shows a basic network schema with


managed

code

Servers

such

running

as

IIS

in

and

different

SQL

Server

server
can

environments.

perform

standard

operations while your application logic executes through the


managed code.
Server-side managed code
A S P.N E T i s t h e h o s t i n g e n v i r o n m e n t t h a t e n a b l e s d e v e l o p e r s t o
use

the

.NET

Framework

to

target

W eb - b a s e d

applications.

H o w e v e r, A S P.N E T i s m o r e t h a n j u s t a r u n t i m e h o s t ; i t i s a
c o m p l e t e a r c h i t e c t u r e f o r d e v e l o p i n g We b s i t e s a n d I n t e r n e t d i s t r i b u t e d o b j e c t s u s i n g m a n a g e d c o d e . B o t h We b F o r m s a n d
XML

W eb

services

mechanism

for

use

IIS

and

applications,

A S P.N E T

and

both

as

have

the
a

publishing

collection

of

supporting classes in the .NET Framework.


XML

W eb

services,

an

important

evolution

in

W eb - b a s e d

t e c h n o l o g y, a r e d i s t r i b u t e d , s e r v e r - s i d e a p p l i c a t i o n c o m p o n e n t s
similar

to

common

W eb

sites.

H o w e v e r,

unlike

We b - b a s e d

applications, XML Web services components have no UI and are


not

targeted

Netscape
reusable

for

browsers

N a v i g a t o r.
software

such

Instead,

XML

components

as

Internet

Web

designed

Explorer

services
to

be

and

consist

of

consumed

by

o t h e r a p p l i c a t i o n s , s u c h a s t r a d i t i o n a l c l i e n t a p p l i c a t i o n s , W eb based
result,

applications,
XML

application

W eb

or

even

services

development

and

other

XML

technology

Web
is

deployment

services.
rapidly

into

the

As

moving
highly

distributed environment of the Internet.


I f y o u h a v e u s e d e a r l i e r v e r s i o n s o f A S P t e c h n o l o g y, y o u w i l l
i m m e d i a t e l y n o t i c e t h e i m p r o v e m e n t s t h a t A S P.N E T a n d W eb
F o r m s o f f e r s . F o r e x a m p l e , y o u c a n d e v e l o p W eb F o r m s p a g e s

in

any

language

that

supports

the

.NET

Framework.

In

addition, your code no longer needs to share the same file with
your

HTTP

text

(although

it

can

continue

to

do

so

if

you

prefer). Web Forms pages execute in native machine language


because, like any other managed application, they take full
advantage of the runtime. In contrast, unmanaged ASP pages
a r e a l w a y s s c r i p t e d a n d i n t e r p r e t e d . A S P.N E T p a g e s a r e f a s t e r,
more functional, and easier to develop than unmanaged ASP
pages because they interact with the runtime like any managed
application.
The .NET Framework also provides a collection of classes and
tools

to

aid

in

development

and

consumption

of

XML

Web

s e r v i c e s a p p l i c a t i o n s . X M L We b s e r v i c e s a r e b u i l t o n s t a n d a r d s
such

as

SOAP

extensible

(a

data

remote

procedure-call

format),

and

WSDL

protocol),
(the

Web

XML

(an

Services

Description Language). The .NET Framework is built on these


standards

to

promote

interoperability

with

non-Microsoft

solutions.
For

example,

the

W eb

Services

Description

Language

tool

i n c l u d e d w i t h t h e . N E T F r a m e w o r k S D K c a n q u e r y a n X M L W eb
s e r v i c e p u b l i s h e d o n t h e W eb , p a r s e i t s W S D L d e s c r i p t i o n , a n d
produce C# or Visual Basic source code that your application
can use to become a client of the XML Web service. The source
code

can

library

create

that

classes

handle

all

derived

the

from

underlying

classes

in

the

class

communication

using

SOAP and XML parsing. Although you can use the class library
to

consume

XML

Web

services

d i r e c t l y,

the

W eb

Services

Description Language tool and the other tools contained in the


SDK

facilitate

Framework.

your

development

efforts

with

the

.NET

I f you develop and publish your own XML Web service, the .NET
Framework provides a set of classes that conform to all the
u n d e r l y i n g c o m m u n i c a t i o n s t a n d a r d s , s u c h a s S O A P, W S D L , a n d
XML. Using those classes enables you to focus on the logic of
your

service,

without

concerning

yourself

with

the

communications infrastructure required by distributed software


development.
F i n a l l y, l i k e W e b F o r m s p a g e s i n t h e m a n a g e d e n v i r o n m e n t ,
your

XML

Web

service

will

run

with

the

speed

of

native

machine language using the scalable communication of IIS.


Programming with the .NET Framework
This section describes the programming essentials you need to
build .NET applications, from creating assemblies from your
code to securing your application. Many of the fundamentals
covered in this section are used to create any application using
the

.NET

Framework.

This

section

provides

conceptual

information about key programming concepts, as well as code


samples and detailed explanations.
Accessing Data with ADO.NET
Describes

the

ADO.NET

architecture

and

how

to

use

the

ADO.NET classes to manage application data and interact with


data

sources

including

Microsoft

SQL

S e r v e r,

OLE

DB

data

using

.NET

sources, and XML.


Accessing

Objects

in

Other

Application

Domains

Remoting
Describes the various communications methods available in the
.NET Framework for remote communications.

Accessing the Internet


Shows how to use Internet access classes to implement both
Web- and I nternet-based applications.
Creating Active Directory Components
Discusses using the Active Directory Services Interfaces.
Creating Scheduled Server Tasks
Discusses

how

to

create

events

that

are

raised

on

reoccurring intervals.
Developing Components
Provides

an

overview

of

component

programming

and

explains how those concepts work with the .NET Framework.


Developing World-Ready Applications
Explains the extensive support the .NET Framework provides
for developing international applications.
Discovering Type Information at Runtime
Explains how to get access to type information at run time
by using reflection.
Drawing and Editing Images
Discusses using GDI+ with the .NET Framework.
Emitting Dynamic Assemblies
Describes

the

set

of

managed

System. Reflection.Emit namespace.

types

in

the

Employing XML in the .NET Framework


Provides an overview to a comprehensive and integrated set
of classes that work with XML documents and data in the
.NET Framework.
Extending Metadata Using Attributes
Describes

how

you

can

use

attributes

to

customize

metadata.
Generating

and

Compiling

Source

Code

Dynamically

in

Multiple Languages
Explains

the

.NET

Framework

SDK

mechanism

called

the

Code Document Object Model (CodeDOM) that enables the


output of source code in multiple programming languages.
Grouping Data in Collections
Discusses the various collection types available in the .NET
Framework,

including

stacks,

queues,

lists,

arrays,

and

structs.
Handling and Raising Events
Provides

an

overview

of

the

event

model

in

the

.NET

Framework.
Handling and Throwing Exceptions
Describes error handling provided by the .NET Framework
and the fundamentals of handling exceptions.

Hosting the Common Language Runtime


Explains the concept of a runtime host, which loads the
runtime

into

process,

creates

the

application

domain

within the process, and loads and executes user code.


Including Asynchronous Calls
Discusses asynchronous programming features in the .NET
Framework.
Interoperating with Unmanaged Code
Describes interoperability services provided by the common
language runtime.
Managing Applications Using WMI
Explains

how

to

create

applications

using

Windows

Management Instrumentation (WMI), which provides a rich


set

of

system

management

services

built

in

to

the

Microsoft Windows operating systems.


Creating Messaging Components
Discusses how
applications.

to

build

complex

messaging

into

your

Processing Transactions
Discusses the .NET Framework support for
transactions.
Programming Essentials for Garbage Collection
Discusses how the garbage collector manages memory and
h o w y o u c a n p r o g r a m t o u s e m e m o r y m o r e e f f i c i e n t l y.

Programming with Application Domains and Assemblies


Describes

how

to

create

and

work

with

assemblies

and

application domains.
Securing Applications
D e s c r i b e s . N E T F r a m e w o r k c o d e a c c e s s s e c u r i t y, r o l e - b a s e d
s e c u r i t y, s e c u r i t y p o l i c y, a n d s e c u r i t y t o o l s .
Serializing Objects
Discusses XML serialization.
Creating System Monitoring Components
Discusses how to use performance counters and event logs
with your application.
Threading
Explains the runtime support for threading and
program using various synchronization techniques.

how

to

Working With Base Types


Discusses formatting and parsing base data types and using
regular expressions to process text.
Working with I/O
Explains

how

you

can

perform

synchronous

and

asynchronous file and data stream access and how to use to


isolated storage.
Writing Serviced Components
Describes

how

to

configure

and

components to access COM+ services.


Creating ASP.NET Web Applications

register

serviced

Discusses

how

to

create

and

optimize

A S P.N E T

Web

applications.
Creating Windows Forms Applications
Describes

how

to

create

Windows

Forms

and

Windows

controls applications.
Building Console Applications
Discusses how to create console-based .NET applications.
Introduction to ASP.NET
A S P.N E T

is

more

than

the

next

version

of

Active

Server

P a g e s ( A S P ) ; i t i s a u n i f i e d W eb d e v e l o p m e n t p l a t f o r m t h a t
provides

the

services

necessary

for

developers

to

build

e n t e r p r i s e - c l a s s W eb a p p l i c a t i o n s . W h i l e A S P.N E T i s l a r g e l y
syntax

compatible

programming

with

model

and

scalable,

and

stable

augment

your

existing

A S P,

it

also

provides

infrastructure

applications.
ASP

for

You

more

can

applications

feel

by

new

secure,
free

to

incrementally

a d d i n g A S P.N E T f u n c t i o n a l i t y t o t h e m .
A S P.N E T i s a c o m p i l e d , . N E T-b a s e d e n v i r o n m e n t ; y o u c a n
author

applications

including

Visual

in

Basic

any

.NET

. N E T,

compatible

C#,

and

language,

JScript

. N E T.

A d d i t i o n a l l y, t h e e n t i r e . N E T F r a m e w o r k i s a v a i l a b l e t o a n y
A S P.N E T

application.

Developers

can

easily

access

the

benefits of these technologies, which include the managed


common

language

runtime

environment,

type

s a f e t y,

inheritance, and so on.


A S P.N E T
WYSIWYG

has

been

HTML

designed

editors

and

to

work

other

seamlessly

programming

with
tools,

i n c l u d i n g M i c r o s o f t V i s u a l S t u d i o . N E T. N o t o n l y d o e s t h i s

m a k e W eb d e v e l o p m e n t e a s i e r, b u t i t a l s o p r o v i d e s a l l t h e
b e n e f i t s t h a t t h e s e t o o l s h a v e t o o f f e r, i n c l u d i n g a G U I t h a t
developers can use to drop server controls onto a Web page
and fully integrated debugging support.
Developers can choose from the following two features when
creating

an

A S P.N E T

application,

W eb

Forms

and

Web

services, or combine these in any way they see fit. Each is


supported by the same infrastructure that allows you to use
authentication

schemes,

cache

frequently

used

data,

or

customize your application's configuration, to name only a


few possibilities.
W e b F o r m s a l l o w s y o u t o b u i l d p o w e r f u l f o r m s - b a s e d We b
pages. When

building

these

pages, you

can

use

A S P.N E T

server controls to create common UI elements, and program


them for common tasks. These controls allow you to rapidly
build

W eb

components,

Form

out

simplifying

of
the

reusable
code

of

built-in
a

page.

or

custom

For

more

information, see Web Forms Pages. For information on how


t o d e v e l o p A S P.N E T s e r v e r c o n t r o l s , s e e D e v e l o p i n g A S P.N E T
Server Controls
A n X M L W eb s e r v i c e p r o v i d e s t h e m e a n s t o a c c e s s s e r v e r
f u n c t i o n a l i t y r e m o t e l y. U s i n g W e b s e r v i c e s , b u s i n e s s e s c a n
expose programmatic interfaces to their data or business
logic, which in turn can be obtained and manipulated by
client and server applications. XML Web services enable the
exchange of data in client-server or server-server scenarios,
using standards like HTTP and XML messaging to move data
across

firewalls.

particular

XML

component

Web

services

are

technology

or

not

tied

to

object-calling

convention. As a result, programs written in any language,

using any component model, and running on any operating


s y s t e m c a n a c c e s s X M L W eb s e r v i c e s . F o r m o r e i n f o r m a t i o n ,
s e e X M L W e b S e r v i c e s a n d X M L W eb S e r v i c e C l i e n t s C r e a t e d
U s i n g A S P.N E T
E a c h o f t h e s e m o d e l s c a n t a k e f u l l a d v a n t a g e o f a l l A S P.N E T
features, as well as the power of the .NET Framework and
.NET Framework common language runtime. These features
and how you can use them are outlined as follows:
If

you

have

ASP

development

skills,

the

new

A S P.N E T

p r o g r a m m i n g m o d e l w i l l s e e m v e r y f a m i l i a r t o y o u . H o w e v e r,
t h e A S P.N E T
A S P,

object model has changed significantly from

making

it

more

structured

and

object-oriented.

U n f o r t u n a t e l y t h i s m e a n s t h a t A S P.N E T i s n o t f u l l y b a c k w a r d
compatible; almost all existing ASP pages will have to be
m o d i f i e d t o s o m e e x t e n t i n o r d e r t o r u n u n d e r A S P.N E T. I n
addition,
existing

major
ASP

changes

pages

to

Visual

Basic

with

Visual

written

.NET

mean

Basic

that

Scripting

E d i t i o n t y p i c a l l y w i l l n o t p o r t d i r e c t l y t o A S P.N E T. I n m o s t
cases, though, the necessary changes will involve only a few
lines of code. For more information, see Migrating from ASP
t o A S P.N E T
A c c e s s i n g d a t a b a s e s f r o m A S P.N E T a p p l i c a t i o n s i s a n o f t e n used

technique

for

displaying

data

to

Web

site

visitors.

A S P.N E T m a k e s i t e a s i e r t h a n e v e r t o a c c e s s d a t a b a s e s f o r
this purpose. It also allows you to manage the database
from your code. For more information, see Accessing Data
w i t h A S P.N E T
A S P.N E T

provides

simple

model

that

enables

W eb

developers to write logic that runs at the application level.

Developers can write this code in the global.asax text file or


i n a c o m p i l e d c l a s s d e p l o y e d a s a n a s s e m b l y. T h i s l o g i c c a n
include application-level events, but developers can easily
extend this model to suit the needs of their Web application.
F o r m o r e i n f o r m a t i o n , s e e A S P.N E T A p p l i c a t i o n s
A S P.N E T p r o v i d e s e a s y - t o - u s e a p p l i c a t i o n a n d s e s s i o n - s t a t e
facilities that are familiar to ASP developers and are readily
compatible with all other .NET Framework APIs. For more
i n f o r m a t i o n , s e e A S P.N E T S t a t e M a n a g e m e n t
For advanced developers who want to use APIs as powerful
as the ISAPI programming interfaces that were included with
p r e v i o u s v e r s i o n s o f A S P, A S P.N E T o f f e r s t h e I H t t p H a n d l e r
and IHttpModule interfaces. Implementing the IHttpHandler
interface gives you a means of interacting with the low-level
r e q u e s t a n d r e s p o n s e s e r v i c e s o f t h e I I S W eb s e r v e r a n d
provides functionality much like ISAPI extensions, but with a
simpler programming model. Implementing the IHttpModule
interface

allows

you

to

include

custom

events

that

participate in every request made to your application. For


more information, see HTTP Runtime Support
A S P.N E T

takes

advantage

of

performance

enhancements

found in the .NET Framework and common language runtime.


A d d i t i o n a l l y,

it

has

been

performance

improvements

designed
over

to

ASP

offer
and

significant
other

W eb

d e v e l o p m e n t p l a t f o r m s . A l l A S P.N E T c o d e i s c o m p i l e d , r a t h e r
than interpreted, which allows early binding, strong typing,
and just-in-time (JIT) compilation to native code, to name
o n l y a f e w o f i t s b e n e f i t s . A S P.N E T i s a l s o e a s i l y f a c t o r a b l e ,
meaning

that

developers

module,

for

instance)

can
that

remove
are

modules

not

(a

relevant

session
to

the

application
extensive

they

are

caching

developing.

services

A S P.N E T

(both

also

built-in

provides

services

and

c a c h i n g A P I s ) . A S P.N E T a l s o s h i p s w i t h p e r f o r m a n c e c o u n t e r s
that developers and system administrators can monitor to
test

new

applications

applications.

For

more

and

gather

metrics

information,

see

on

existing

A S P.N E T

Caching

F e a t u r e s a n d A S P.N E T O p t i m i z a t i o n
Writing custom debug statements to your Web page can help
immensely

in

troubleshooting

your

application's

code.

H o w e v e r, i t c a n c a u s e e m b a r r a s s m e n t i f i t i s n o t r e m o v e d .
The problem is that removing the debug statements from
your pages when your application is ready to be ported to a
production

server

can

require

significant

effort.

A S P.N E T

o f f e r s t h e Tra c e C o n t e x t c l a s s , w h i c h a l l o w s y o u t o w r i t e
custom

debug

statements

to

your

pages

as

you

develop

them. They appear only when you have enabled tracing for a
page or entire application. Enabling tracing also appends
d e t a i l s a b o u t a r e q u e s t t o t h e p a g e , o r, i f y o u s o s p e c i f y, t o
a custom trace viewer that is stored in the root directory of
y o u r a p p l i c a t i o n . F o r m o r e i n f o r m a t i o n , s e e A S P.N E T Tra c e
The

.NET

authorization

Framework
and

and

A S P.N E T

authentication

provide

schemes

default
for

W eb

a p p l i c a t i o n s . You c a n e a s i l y r e m o v e , a d d t o , o r r e p l a c e t h e s e
schemes, depending upon the needs of your application. For
m o r e i n f o r m a t i o n , s e e A S P.N E T W e b A p p l i c a t i o n S e c u r i t y
A S P.N E T

configuration

settings

are

stored

in

X M L- b a s e d

files, which are human readable and writable. Each of your


applications can have a distinct configuration file and you
can

extend

the

configuration

scheme

to

suit

your

requirements.

For

more

information,

see

A S P.N E T

Configuration
Building Applications
The

.NET

Framework

applications
Windows

and

Forms

enables

services,

powerful

including

applications,

and

new

A S P.N E T

Windows

Web-based
applications,

services.

This

section contains instructive overviews and detailed, step-bystep procedures for creating applications.
This section

also

includes information

on

using the

.NET

Framework design-time architecture to support visual design


environments

for

authoring

custom

components

and

controls.
Creating ASP.NET Web Applications
Provides the information you need to develop enterprisec l a s s W e b a p p l i c a t i o n s w i t h A S P.N E T.
Creating Windows Forms Applications
Introduces

Windows

Forms,

the

new

object-oriented

framework for developing Windows-based applications.


Windows Service Applications
Describes

creating,

installing,

starting,

and

stopping

Windows system services.

Building Console Applications


Describes writing applications that use the system console
for input and output.

Enhancing Design-Time Support


Describes

the

.NET

Framework's

rich

design-time

architecture and support for visual design environments.


Debugging and Profiling Applications
Explains

how

to

test

and

profile

.NET

Framework

applications.
Deploying Applications
Shows how to use the .NET Framework and the common
language

runtime

to

create

self-described,

self-contained

applications.
Configuring Applications
Explains

how

developers

and

administrators

can

apply

settings to various types of configuration files.


Debugging and Profiling Applications
To d e b u g a . N E T F r a m e w o r k a p p l i c a t i o n , t h e c o m p i l e r a n d
runtime

environment

must

be

configured

to

enable

debugger to attach to the application and to produce both


symbols and line maps, if possible, for the application and
its corresponding Microsoft Intermediate Language (MSIL).
Once a managed application is debugged, it can be profiled
to boost performance. Profiling evaluates and describes the
lines

of

source

code

that

generate

the

most

frequently

executed code, and how much time it takes to execute them.


The .NET Framework applications are easily debugged using
V i s u a l S t u d i o . N E T, w h i c h h a n d l e s m a n y o f t h e c o n f i g u r a t i o n
details.

If

Visual

Studio

.NET

is

not

installed,

you

can

examine and improve the performance of .NET Framework


applications in several alternative ways using the following:
Systems. Diagnostics classes.
Runtime Debugger (Cordbg.exe), which is a command-line
d e b u g g e r.
Microsoft

common

language

runtime

Debugger

( D b g C L R . e x e ) , w h i c h i s a W i n d o w s d e b u g g e r.
The

.NET

Framework

namespace

System.

Diagnostics

i n c l u d e s t h e Tra c e a n d D e b u g c l a s s e s f o r t r a c i n g e x e c u t i o n
flow, and the Process, Event Log, and Performance Counter
classes

for

debugger

profiling

can

be

code.

used

to

The

Cordbg.exe

debug

managed

command-line
code

from

the

c o m m a n d - l i n e i n t e r p r e t e r. D b g C L R . e x e i s a d e b u g g e r w i t h
the familiar Windows interface for debugging managed code.
It is located in the Microsoft.NET/FrameworkSDK/GuiDebug
f o l d e r.
Enabling JIT-attach Debugging
S h o w s h o w t o c o n f i g u r e t h e r e g i s t r y t o J I T-a t t a c h a d e b u g
engine to a .NET Framework application.

Making an Image Easier to Debug


Shows how to turn JIT tracking on and optimization off to
make an assembly easier to debug.
Enabling Profiling
Shows

how

to

set

environment

variables

to

tie

.NET

F r a m e w o r k a p p l i c a t i o n t o a p r o f i l e r.
Introduction to ASP.NET Server Controls
When you create Web Forms pages, you can use these types
of controls:
HTML server controls

HTML elements exposed to the server

so you can program them. HTML server controls expose an


object model that maps very closely to the HTML elements
t h a t t h e y r e n d e r.
Web server controls

Controls with more built-in features

than HTML server controls. Web server controls include not


only form-type controls such as buttons and text boxes, but
a l s o s p e c i a l - p u r p o s e c o n t r o l s s u c h a s a c a l e n d a r. W e b s e r v e r
controls are more abstract than HTML server controls in that
their object model does not necessarily reflect HTML syntax.
Val i d a t i o n c o n t r o l s

Controls that incorporate logic to allow

y o u t o t e s t a u s e r ' s i n p u t . You a t t a c h a v a l i d a t i o n c o n t r o l t o
an input control to test what the user enters for that input
control.

Val i d a t i o n

controls

are

provided

to

allow

you

to

check for a required field, to test against a specific value or

pattern of characters, to verify that a value lies within a


range, and so on.
User

controls

Controls

that

you

create

as

W eb

Forms

p a g e s . You c a n e m b e d W eb F o r m s u s e r c o n t r o l s i n o t h e r W e b
Forms

pages,

which

is

an

easy

way

to

create

menus,

toolbars, and other reusable elements.


You c a n u s e a l l t y p e s o f c o n t r o l s o n t h e s a m e p a g e . T h e
f o l l o w i n g s e c t i o n s p r o v i d e m o r e d e t a i l a b o u t A S P.N E T s e r v e r
controls. For more information about validation controls, see
W e b F o r m s Val i d a t i o n f o r i n f o r m a t i o n a b o u t u s e r c o n t r o l s ;
s e e I n t r o d u c t i o n t o W eb U s e r C o n t r o l s
HTML Server Controls
HTML

server

controls

are

HTML

elements

containing

attributes that make them visible to and programmable on


t h e s e r v e r. B y d e f a u l t , H T M L e l e m e n t s o n a W eb F o r m s
page are not available to the server; they are treated as
o p a q u e t e x t t h a t i s p a s s e d t h r o u g h t o t h e b r o w s e r. H o w e v e r,
by converting HTML elements to HTML server controls, you
e x p o s e t h e m a s e l e m e n t s y o u c a n p r o g r a m o n t h e s e r v e r.
The object model for HTML server controls maps closely to
that

of

the

attributes

corresponding
are

exposed

elements.
in

HTML

For

example,

server

HTML

controls

as

properties.
Any HTML element on a page can be converted to an HTML
server control. Conversion is a simple process involving just
a

few

attributes.

converted

to

As

control

minimum,
by

the

an

addition

HTML
of

element

the

is

attribute

R U N AT = " S E R V E R " . T h i s a l e r t s t h e A S P.N E T p a g e f r a m e w o r k

during

parsing

that

it

should

create

an

instance

of

the

control to use during server-side page processing. If you


want to reference the control as a member within your code,
you should also assign an ID attribute to the control.
The

page

controls

framework

for

the

provides

HTML

predefined

elements

most

HTML

server

commonly

used

dynamically on a page: forms, the HTML <INPUT> elements


(text box, check box, Submit button, and so on), list box
(<SELECT>),

table,

HTML

controls

server

generic

control,

image,

and

and

share
in

so

the

on.

basic

addition,

These

predefined

properties

each

control

of

the

typically

provides its own set of properties and its own event.


HTML server controls offer the following features
An object model that you can program against on the server
using the familiar object-oriented techniques. Each server
control exposes properties that allow you to manipulate the
control's HTML attributes programmatically in server code.
A set of events for which you can write event handlers in
much the same way you would in a client-based form, except
that the event is handled in server code.
The ability to handle events in client script.
Automatic maintenance of the control's state. If the form
m a k e s a r o u n d t r i p t o t h e s e r v e r, t h e v a l u e s t h a t t h e u s e r
entered

into

HTML

server

controls

are

automatically

m a i n t a i n e d w h e n t h e p a g e i s s e n t b a c k t o t h e b r o w s e r.
Interaction
that

control.

with

user

has

validation
entered

controls

you

appropriate

can

easily

information

verify
into

Data binding to one or more properties of the control.


Support

for

HTML

4.0

styles

if

the

Web

Forms

page

is

displayed in a browser that supports cascading style sheets.


Pass- through

of

custom

attributes.

You

can

add

any

attributes you need to an HTML server control and the page


framework

will

change

f u n c t i o n a l i t y. T h i s

in

read

them

and

render

allows

them

you

to

without
add

any

browser-

specific attributes to your controls. For details about how to


convert an HTML element to an HTML server control, see
Adding HTML Server Controls to a Web Forms Page
Web Server Controls
Web server controls are a second set of controls designed
with a different emphasis. They do not map one-to-one to
HTML server controls. Instead, they are defined as abstract
controls in which the actual HTML rendered by the control
can be quite different from the model that you program
a g a i n s t . F o r e x a m p l e , a R a d i o B u t t o n L i s t W eb s e r v e r c o n t r o l
might be rendered in a table or as inline text with other
HTML.
Web server controls include traditional form controls such as
buttons and text boxes as well as complex controls such as
tables. They also include controls that provide commonly
used form functionality such as displaying data in a grid,
choosing dates, and so on.
Web server controls offer all of the features described above
for

HTML

server

controls

(except

one-to-one

HTML elements) and these additional features:

mapping

to

A rich object model that provides type-safe programming


capabilities.
Automatic

browser

detection.

The

controls

can

detect

browser capabilities and create appropriate output for both


basic and rich (HTML 4.0) browsers.
For some controls, the ability to define your own look for
the control using templates
For some controls, the ability to specify whether a control's
event causes immediate posting to the server or is instead
cached and raised when the form is submitted.
Ability to

pass events from a nested

control (such

as a

button in a table) to the container control.


At design time in HTML view, the controls appear in your
page in a format such as:
<asp: button attributes run at="server"/>
The attributes in this case are not those of HTML elements.
I nstead, they are properties of the Web control.
W h e n t h e W e b F o r m s p a g e r u n s , t h e W eb s e r v e r c o n t r o l i s
rendered on the page using appropriate HTML, which often
depends not only on the browser type but also on settings
t h a t y o u h a v e m a d e f o r t h e c o n t r o l . F o r e x a m p l e , a Tex t b o x
c o n t r o l m i g h t r e n d e r a s a n < I N P U T > t a g o r a < T E X T AR E A >
tag, depending on its properties.

Chapt
er 5

Design
Docume
nt

Design Document

The entire system is projected with a physical diagram


which specifics the actual storage parameters that are
physically necessary for any database to be stored on to the
disk. The overall systems existential idea is derived from
this diagram.

The relation upon the system is structure through a


conceptual

ER-Diagram,

which

not

only

specifics

the

existential entities but also the standard relations through


which the system exists and the cardinalities that are
necessary for the system state to continue.

The content level DFD is provided to have an idea of the


functional inputs and outputs that are achieved through the
system. The system depicts the input and out put standards
at the high level of the systems existence.

Data Flow Diagrams

This Diagram server two purpose.


Provides an indication of how date is transformed
as it

moves through the system.


Disputes the functions and sub functions that

transforms the dataflow.

The Data flow diagram provides additional information


that is used during the analysis of the information domain,
and server as a basis for the modeling of functions.

The description of each function presented in the DFD is


contained is a process specifications called as PSPEC

ER-Diagrams

The

entity

Relationship

Diagram

(ERD)

depicts

the

relationship between the data objects. The ERD is the


notation that is used to conduct the date modeling activity
the attributes of each data object noted is the ERD can be
described resign a data object descriptions.

The set of primary components that are identified by the


ERD are

Data object

Relationships

Attributes

Various types of indicators.

The primary purpose of the ERD is to represent data


objects and their relationships.

Unified Modeling Language Diagrams

The

unified

modeling

language

allows

the

software

engineer to express an analysis model using the modeling


notation that is governed by a set of syntactic semantic
and pragmatic rules.

A UML system is represented using five different views


that

describe

the

system

from

distinctly

different

perspective. Each view is defined by a set of diagram,


which is as follows.

User Model View


i. This view represents the system from the users
perspective.
ii. The

analysis

representation

describes

scenario from the end-users perspective.

usage

Structural model view

In this model the data and functionality are arrived


from inside the system.

This model view models the static structures.

Behavioral Model View

It represents the dynamic of behavioral as parts of


the system, depicting the interactions of collection
between various structural elements described in the
user model and structural model view.

Implementation Model View


In this the structural and behavioral as parts of

the system are represented as they are to be built.


Environmental Model View
In this the structural and behavioral aspects of the environment in which the
system is to be implemented are represented.
UML is specifically constructed through two different domains they are

UML Analysis modeling, which focuses on the user


model and structural model views of the system.
UML design modeling, which focuses on the
behavioral modeling, implementation modeling and
environmental model views.

Use Case Diagrams


1. The actors identified upon the System are as follows.
2. General Employees.
3. Project Leaders.
4. Project Managers.
5. Programmers or Developers.

6. Internal Administration.

General Employee:

He is the actor within the system who accesses the

information which is very private to him and personal to him. He has only
privileges of accessing the existing data, but cannot alter the data.

Employee
Information

Employee

General
Employee

Performa
nce
Employee

Rating

Employee

Skill set

Project Leaders: These are the actors who are responsible for a particular
project at the Module level. They can access information related to the project
information, with specific to the Module requirements.

Role
Information

Module
Information

Project
Information

Project Leaders

Components
Information

Elements
Informatio
n

Project Managers: These are the actors who take the overall responsibility
upon the entire project. They have the accessibility to check the verification
standards upon the projects being developed.

Package
Information

Module
Information

Project Managers

Project
Informatio
n
Component
s
Informatio
n
Elements
Informatio
n

Employee
Performance

Programmers or Developers: They are the actors who actually put their
effort only upon the programming aspects of the components and elements.
They are also associated with the documentation preparation for any specific
project that is being scheduled.

Module
Information

Package
Information

Components
Information

Elements
Information

Programmers
Documenta
tion
informatio
n

Internal Administration: They are actions that actually master mind the
entire

application

and

its

transaction

process.

They

take

the

overall

responsibility of managing the master information, and the cross checks the
consistency and reliability of information.

Branch
Registration

Department
registration

Designation
Registration

Employee
Registration

Programmers

Project
Registration

Module
Registration

Components
Registration

Elements
Registration

Client
Registration

Client Projects
Registration

Elaborated Activity for Programmer or Developer

Request for
Existing Roles

Request for
Existing Modules

Request for Project


Information

Select The
Required
Module ID
Select
required
package ID

Select The
Required
Component ID

Query
Analyzer

Query
Analyzer

Query
Analyzer

Display

Display

Display

Programmer

Request for
Components
Information

Request for Elements


Information

Select The
Required
Element ID

Select The
Required
Document
ID

Query
Analyzer

Query
Analyzer

Display

Display

Elaborated Activity Of Internal Administrator

Raise request
for
new
Branch
Registration

Raise Request for


New Department

Generate
Branch ID

Generate
Department
ID

Internal
Administrator

Raise Request for


New Designation

Raise Request
for Employee
Registration

Raise Request for


Project Registration

Raise Request for


module Registration
Elements
Registration

Generate
Designation
ID

Generate
Employee ID

Generate
Project Id
Igenerate
the D

Generate
Generate
Module Id
Elements Id
Beanch ID

Collect
the
relevant
Data

Collect
the
required
Data

Collect
the
required
Data

Anociate to
proper
Department
And
Designation

Collect the
Required
Fields

Validate

Stno

Stno

Validate

Validate

Validate

Validate

CollectCollect
the
the
Required
Required
fields fields
validate
validate

stno

Stno

Stno

Stno

Department

Elaborated Activity Of Project Leader

Project Leader

Request for
Existing Roles

Select The Specific


Role ID

Request for
Existing Modules

Select The
Module ID

Request for Project


Information

Request for
Components
Information

Request for Elements


Information

Select The
Project ID

Select The
Component ID

Select The
Element ID

Query
Analyzer

Query
Analyzer

Query
Analyzer

Display

Display

Query
Analyzer

Query
Analyzer

Collect
the
required

stno

Display

stno

stno

stno
Display

Display

stno

Facts Collaboration

Fac t s ta ble

Pr o jec t m a st er

Pro jec t _I D: num ber

Pr o jec t _I D: num ber

Mo dule_I D: num ber

Pr o jec t _na m e: var c ha r 2

Co m po nent _o d: num ber

Pr o jec t _c o nt r a ct _da t e: da t e

Elem ent _I D: num ber

Pr o jec t _pr ic e: num ber

Va lida t e_pro jec t _id ()

Pr o jec t _c om plet io n_da t e: dat e

Va lida t e_m o dule_id ()


Va lida t e_c om po nent _id ()
Va lida t e_elem ent _id ()

Pr o j_m gr _id: num ber


So ft _a ssign_id: num ber
Po lo _I D: num ber
I nser t (), upda t e ()

Mo dule m a st er

Delet e (), sea r c h ()

Sub m o dule ID:num ber


Mo dule_na m e: var c ha r 2
Mo dule_desc : var c ha r 2
Mo dule_I D: num ber

Va lida t e_pr o jec t _id ()


Va lida t e_m o dule_id ()
Va lida t e_c o m po nent _id ()
Va lida t e_elem e nt _id ()

Ro le_id: num ber


Mo dule_desig n_t im e:
var c ha r 2
Mo dule_inc ha r ge_id: num ber

Co m po nent m a st er

I nser t ()

Subc o m po nent _id: num ber

Updat e ()

Co m po nent _na m e: va rc ha r 2

Delet e ()

Co m po nent _desc : va r c har 2

Sea r c h ()
Va lida t e_m o dule_id ()
Va lida t e_ro le_id ()
Va lida t e_m o d_inc hg_id ()

Co m po nent _I D: num ber


Co m p_Design_t im e: var c ha r 2
Ro le_I D: num ber
Va lida t e_pr o jec t _id ()
Va lida t e_m o dule_id ()
Va lida t e_c o m po nent _id ()
Va lida t e_elem e nt _id ()

Ro le M a st er
Ro le_I D: num ber

Ro le_na m e: va rc ha r 2
Ro le_desc : va r c har 2
I nser t (), updat e ()
Delet e (), sea r c h ()

Em plo yee Ma st er

Elem ent M a st er

Em plo yee_I D: num ber

Sub_elem e_ id:num ber

Em plo yee_na m e: va r c ha r 2

Elem e_na m e :va r c ha r 2

Em plo yee_DOB:da t e

Elem e_de sc :va r c ha r 2

Em plo yee_a ddr ess:va r c ha r 2

Elem e_id: num ber

Em plo yee_phno :num ber


Em plo yee_em a il:va r c ha r 2

Elem e_de sg_t im e_t o le_id:n


um ber

Em plo yee_dept no :num ber

Elem e_inc hg_id:num b er

Em plo yee_desg_id:n um ber

Ra t ing_id: num ber

Em plo yee_do j:da t e

I nser t (), upda t e ()

Em plo yee_br a nc h_id:num ber

Delet e (), sea r c h ()

I nser t (), updat e ()

Va lida t e_c m p_id()

Delet e (), sea r c h ()

Va lida t e_inc hg_id()


Va lida t e_r o le_I d()

Depa r t m ent M a st er
Depa r t m ent _I D: num ber
Depa r t m ent _na m e: var c ha r 2
Designa t io n_I D:num ber
I nser t (), upda t e ()
Delet e (), sea r c h ()

Designa t io n M a st er
Designa t io n_I D: num ber
Designa t io n na m e: var c ha r 2
I nser t (), upda t e ()
Delet e (), sea r c h ()

Pro jec t Do c um ent Ma st er

Do c um ent t ype M a st er

do c _I D: num ber

Do c _t yp_I D:num ber

pr o _id:num ber

Do c _t ype_na m e:va r c ha r 2

do c um e_t yp_id:num ber

Do c _t ype_desc :va r c ha r 2

do c um _pr ep_by_em pid:nu


m ber

I nser t (), upda t e ()


Delet e (), sea r c h ()

do c um _pr ep_da t e:da t e


do c um _r ec ent _elem _da t e:
dat e
do c um _desc :va r c ha r 2

Pr o jec t M a st er

do c um _st a t us:va r c ha r 2

Pr o jec t _I D: num ber

I nser t (), updat e ()

Pr o jec t _na m e: var c ha r 2

Delet e (), sea r c h ()

Pr o jec t _c o nt r a ct _da t e:
da t e

Va lida t e-Pr o jec t -ID()


Va lida t e-Pr ep-Em p-I D()
Va lida t e-Do c -Type-I D ()

Pr o jec t _pr ic e: num ber


Pr o jec t _c om plet io n_da t e:
da t e
Pr o j_m gr _id: num ber
So ft _a ssign_id: num ber
Po lo _I D: num ber

Em plo yee Ma st er

I nser t (), upda t e ()

Em plo yee_I D: num ber

Delet e (), sea r c h ()

Em plo yee_na m e: va r c ha r 2

Va lida t e_pr o jec t _id ()

Em plo yee_DOB:da t e

Va lida t e_m o dule_id ()

Em plo yee_a ddr ess:va r c ha r 2

Va lida t e_c o m po nent _id ()

Em plo yee_phno :num ber

Va lida t e_elem e nt _id ()

Em plo yee_em a il:va r c ha r 2


Em plo yee_dept no :num ber
Em plo yee_desg_id:n um ber
Em plo yee_do j:da t e
Em plo yee_br a nc h_id:num ber

I nser t (), updat e ()


Delet e (), sea r c h ()

Ro le M a st er
Ro le_I D: num ber

Ro le_na m e: va rc ha r 2
Ro le_desc : va r c har 2
I nser t (), updat e ()
Delet e (), sea r c h ()

2
2
So ft war e A ssignm ent Ma st er
So ft war e A ssign_I D: num ber
Designa t io n Ma st er

So ft war e A ssign desc : va r c ha r 2

Designa t io n _I D: num ber

So ft war e A ssign_c a t ego r y:


va r c har 2

Designa t io n _na m e: va r c har 2


I nser t (), updat e ()
Delet e (), sea r c h ()

I nser t (), upda t e ()


Delet e (), sea r c h ()

Depa r t m ent M a st er
Depa r t m ent _I D: num ber
Depa r t m ent _na m e: var c ha r 2
Designa t io n_I D: num ber
I nser t (), upda t e ()
Delet e (), sea r c h ()

Component Master
Sub_comp_id:number
Compo_name:varcahr2
Compo_desc:varchar2
Comp_id:number
Compo_des_time:varchar2
Compo_inchg_id:number
Role_id:number
-Insert(),-Delete()
-Update(),-Select()
-Validate-Component-ID ()
-Validate-Role-ID()
-Validate-In charge-ID()

Ro le M a st er
Ro le_I D: num ber
Ro le_na m e: va r c ha r 2
Ro le_desc : var c ha r 2
I nser t (), upda t e ()
Delet e (), sea r c h ()

Em plo yee M a st er

Depa r t m ent M a st er

Em plo yee_I D: num ber

Depa r t m ent _I D: num ber

Em plo yee_na m e: var c ha r 2

Depa r t m ent _na m e: var c ha r 2

Em plo yee_DOB:da t e

Designa t io n_I D: num ber

Em plo yee_a ddr ess:va r c ha r 2

I nser t (), upda t e ()

Em plo yee_phno :n um ber


Em plo yee_em a il:va r c ha r 2

Delet e (), sea r c h ()

Em plo yee_dept no :num ber


Em plo yee_desg_ id:num ber
Em plo yee_do j:da t e
Em plo yee_br a nc h_id:num b er
I nser t (), upda t e ()
Delet e (), sea r c h ()

Designa t io n M a st er
Designa t io n _I D: num ber
Designa t io n _na m e: var c ha r 2
I nser t (), upda t e ()
Delet e (), sea r c h ()

Sequence Diagram

Module
Register

Modules
Master

Module
Registration Role
Master
Screen

Module
Registration
Screen

Employee
Master

Module
Master

Screen
Request for
Registration
new Module

Generate
Module
Id

Select
Role ID ()
Validate
Drug id
()

Select
Module
Uncharge
d ID()

Validate
EmpID()

Validate
SubModu
le ID()

Connect ()

Module
Register

Project Project
Registr
ation Registratio
Screen n Screen

Empl
oyee
Maste
r

Project

S/w
Assignm
Registrati
ent
on Screen Master

Screen

Project
Role
Registrati Master
on
Master

Request for
Registration
new Module

Genera
te
Project
Id

Select
MGR
ID () Validat
e
Drug
id ()

Select
S/w
Assign
ID()

Validat
e
S/w
Assign
ID()

Select
Role
ID()
Validate

Role ID
()

Commit
()

Chapt
er 6

Coding

Program Design Language

The program design language is also called as structured


English or pseudopodia. PDL is a generic reference for a
design language PDL looks like a modern language. The
difference between PDL and real programming language
lies in the narrative text embedded directly within PDL
statements.

The characteristics required by a design language are:


A fixed system of keywords that provide for all

structured constructs date declaration and modularity


characteristics.
A free syntax of natural language that describes
processing features.
Date declaration facilities that should include both
simple and complex data structures.
Subprogram

definition

and

calling

techniques

that

support various nodes of interface description.

PDL

syntax

should

include

constructs

for

subprogram

definition, interface description date declaration techniques for


structuring,

conditions

constructs,

repetition

constructs

and

I/O constructs.
PDL

can

and/or

be

extended

concurrent

to

include

processing

keywords

interrupt

for

multitasking

handling,

interposes

synchronization the application design for which PDL is to be


used should dictate the final form for the design language.

Chapt
er 7

Te s t i n g
&
Debuggi
ng
Strategi
es

Testing
Testing is the process of detecting errors. Testing performs a very critical role
for quality assurance and for ensuring the reliability of software. The results of
testing are used later on during maintenance also.

Psychology of Testing
The aim of testing is often to demonstrate that a program works by showing
that it has no errors. The basic purpose of testing phase is to detect the errors
that may be present in the program. Hence one should not start testing with
the intent of showing that a program works, but the intent should be to show
that a program doesnt work. Testing is the process of executing a program
with the intent of finding errors.

Testing Objectives
The main objective of testing is to uncover a host of errors,
systematically and with minimum effort and time. Stating formally, we
can say,
Testing is a process of executing a program with the intent of
finding an error.
A successful test is one that uncovers an as yet undiscovered
error.
A good test case is one that has a high probability of finding
error, if it exists.
The tests are inadequate to detect possibly present errors.
The software more or less confirms to the quality and reliable
standards.

Levels of Testing
In order to uncover the errors present in different phases we have the
concept of levels of testing. The basic levels of testing are as shown
below
Acceptance
Testing

Client Needs
System Testing
Requirements

Design

Integration Testing

Unit Testing
Code

System Testing
The philosophy behind testing is to find errors. Test cases are devised with this
in mind. A strategy employed for system testing is code testing.

Code Testing:
This strategy examines the logic of the program. To follow this method we
developed some test data that resulted in executing every instruction in the
program and module i.e. every path is tested. Systems are not designed as
entire nor are they tested as single systems. To ensure that the coding is
perfect two types of testing is performed or for that matter is performed or
that matter is performed or for that matter is performed on all systems.

Types Of Testing
Unit Testing
Link Testing

Unit Testing
Unit testing focuses verification effort on the smallest unit of software i.e. the
module. Using the detailed design and the process specifications testing is
done to uncover errors within the boundary of the module. All modules must
be successful in the unit test before the start of the integration testing begins.
In this project each service can be thought of a module. There are so many
modules like Login, HWAdmin, MasterAdmin, Normal User, and PManager.
Giving different sets of inputs has tested each module. When developing the
module as well as finishing the development so that each module works
without any error. The inputs are validated when accepting from the user.
In this application developer tests the programs up as system. Software units
in a system are the modules and routines that are assembled and integrated
to form a specific function. Unit testing is first done on modules, independent
of one another to locate errors. This enables to detect errors. Through this
errors resulting from interaction between modules initially avoided.

Link Testing
Link testing does not test software but rather the integration of each module
in system. The primary concern is the compatibility of each module. The
Programmer tests where modules are designed with different parameters,
length, type etc.

Integration Testing
After the unit testing we have to perform integration testing. The goal here is
to see if modules can be integrated proprerly, the emphasis being on testing
interfaces between modules. This testing activity can be considered as testing
the design and hence the emphasis on testing module interactions.

In this project integrating all the modules forms the main system. When
integrating all the modules I have checked whether the integration effects
working of any of the services by giving different combinations of inputs with
which the two services run perfectly before Integration.

System Testing
Here the entire software system is tested. The reference document for this
process is the requirements document, and the goal os to see if software
meets its requirements.
Here entire ATM has been tested against requirements of project and it is
checked whether all requirements of project have been satisfied or not.

Acceptance Testing
Acceptance Test is performed with realistic data of the client to demonstrate
that

the software is working satisfactorily. Testing here is focused on external

behavior of the system; the internal logic of program is not emphasized.


In this project Network Management Of Database System I have collected
some data and tested whether project is working correctly or not.
Test cases should be selected so that the largest number of attributes of an
equivalence class is exercised at once. The testing phase is an important part
of software development. It is the process of finding errors and missing
operations and also a complete verification to determine whether the
objectives are met and the user requirements are satisfied.

White Box Testing


This is a unit testing method where a unit will be taken at a time and tested
thoroughly at a statement level to find the maximum possible errors. I tested
step wise every piece of code, taking care that every statement in the code is
executed at least once. The white box testing is also called Glass Box Testing.

I have generated a list of test cases, sample data. which is used to check all
possible combinations of execution paths through the code at every module
level.

Black Box Testing


This testing method considers a module as a single unit and checks the unit at
interface and communication with other modules rather getting into details at
statement level. Here the module will be treated as a block box that will take
some input and generate output. Output for a given set of input combinations
are forwarded to other modules.

Criteria Satisfied by Test Cases


1) Test cases that reduced by a count that is greater than
one, the number of additional test cases that much be
designed to achieve reasonable testing.
2) Test cases that tell us something about the presence or
absence of classes of errors, rather than an error
associated only with the specific test at hand.

Chapt
er 8

User
Manual

Installation

The database as it is developed by oracle 9i can be


installed only by using the export and import concepts.

Using core java and components like JSP and EJB needs
proper

deployment

as

per

developed the front end as it.

general

specifications

Admin Login:

Homepage:

View Clients and Delete

Update Client :

Project Creation:

View Project and Download project:

Department:

View Department and delete:

View Designation :

Employee Registration :

View Employee :

Project Manager:

PROFILE

Projects :

Project Status :

Assign Project :

Status:

Project lead Profile :

ChangePassword:

Module:

Project Status

Developer Home:

CangePassword:

ModuleStatus:

Chapte
r9

Conclusions
&
Recommenda
tions

Conclusions And Recommendations


The entire project has been developed and deployed as per the requirements
stated by the user, it is found to be bug free as per the testing standards that
are implemented. Any specification-untraced errors will be concentrated in the
coming versions, which are planned to be developed in near future. The
system at present does not take care off the money payment methods, as the
consolidated constructs need SSL standards and are critically to be initiated in
the first face, the application of the credit card transactions is applied as a
developmental phase in the coming days. The system needs more elaborative
technicality for its inception and evolution.

Bibliography:
References for the Project Development Were Taken From the
following Books and Web Sites .

SQL Server
Mastering SQL Server 2000 by Gunderloy,Jorden BPB Publications
Beginning SQL Server 2000 by Thearon Willis wrox publications

Visual Basic .NET


Programming Visual Basic .NET,Mircrosoft Press
VisulaBasic .NET by Mc Donald, Microsoft Press

S-ar putea să vă placă și