You are on page 1of 97

Your College Name

Project Synopsis
On
SUBMITTED FOR THE PARTIAL FULFILMENT OF THE
REQUIREMENT FOR THE DEGREE OF

Type Course Name Here


SUPERVISED B
Y

Faculty Name Here


(Faculty)

Submitted by:

Your Name Here

Online Shoppe

Chapt
er 1

Abstr
act

R-World is a Supermarket chain having retail outlets in important residential


colonies in Metro Locations.R-World stocks items from provisions, toiletries,
cosmetics, beverages, wines & spirits, Frozen Foods and Vegetables. Other
categories of items will be added on in future. The chain is relatively new compared
to other more established companies. R-World hopes to make a significant
difference by providing value-added services like Door Delivery. Volume discounting
and monthly credit schemes. Its business philosophy is to treat each individual
customer as an account and providing all facilities by which the account would
repeat-purchase in R-World locations. Regular customers would be provided with
the R-World card, which designates the customer as an account and thereby make
available all value-added services to such customers.
Operational Structure

R-World will start its operations in Mangalore city. It will commission 8 retail
outlets in the important residential localities of the city.

2 stock depots-East and West, will service r-World stock distribution. Each
stock depot will service 4 locations each. Inter depot stock transfers will also
happen to facilitate a balanced stock position.

Within each outlet, there are two kinds of stores that are maintained. Main
stores and Shelf inventory. Main stores reflect the outlets stores from where
items are moved to the shelf. Shelf inventory reflects items in stock on
various shelves in the outlet. Therefore, total stock of item is the main stores
stock added with the shelf inventory stock.

Minimum total stock(MTS) positions are defined for each item. Re-order
levels (ROL) are also defined for each item. Whenever stock falls to the Reorder level, stock indents are placed to the nearest stock depot. Stock depots
reach items twice everyday morning and afternoon.

Minimum Shelf quantities (MSQ) are maintained for each item within the
outlet. Whenever stock level in the shelf of a specific item falls to MSQ, the
outlet manager instructs replenishment of stock to the shelf.

The Dispatch Manager compiles door delivery orders three times during the
day. The cut-off time for packing for the 1.00 pm delivery is 10.30 am. At

10.30.a Customer-wise packing list is generated. Together with that, a Itemwise total quantity list is also generated. Packers assemble items in bags and
make a ticked off and the packer presents the list and the consignment to
the Dispatch clerk for billing. Two copies of the bill and consignment list are
stapled along with each consignment box. Boxes are loaded into the delivery
trucks

after

the

driver

verifies

the

Consignment

List

with

delivery

instructions. Credit feasibility of each customer is indicated in the bill.


Customers may pay by cash, Cheque, by card or opt for credit.

Delivery trucks are loaded with standard sized consignment boxes, which
come in three sizes-small, medium and Big. The total space of a Delivery
truck is fixed and therefore, it should be possible to calculate space
availability in a truck based on pending Door Delivery order volumes. Unless
specified, customer orders are loaded on first-come-first-served basis on the
delivery truck. Currently, there is only one truck. This will be increased as
order volumes increase.

After completion of deliveries, deliveryman will settle collections with the


dispatch manager.

Customers

Customers are divided into two categories. Walk-in customers and Account
Customers. Account customers are provided with the R-World card and they
may use that card while billing at the counter or alternatively, quote the Card
Number while ordering stocks over the Net.

Account customers can order for stocks over the Web. The minimum value
for door delivery orders is Rs.250.This amount may be revised later.
Customers need to be given a choice of item categories to choose from, item
lists with prices and status of item availability in stock.

Based on the delivery schedule and the status of space availability with in
each delivery, earliest delivery date/time will be intimated to the customer.
Account customers may also walk-in to the store, buy items and ask for door
delivery.

Customers may return items to the store and based on the situation, the
store may accept items back. Either money will be returned or customers
may buy another item and settle the difference (either way).

Volume discounts are defined for each item. Discount rates are defined for
quantity slabs. There may be any number of quantity slabs for individual
item. Some may have two and others may have up to 5 quantity slabs. This
can change in the future.

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 MS-SQLServer2000 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


R-World is a Supermarket chain having retail outlets in important residential
colonies in Metro Locations. R-World stocks items from provisions, toiletries,
cosmetics, beverages, wines & spirits, Frozen Foods and Vegetables. Other
categories of items will be added on in future. The chain is relatively new compared
to other more established companies. R-World hopes to make a significant
difference by providing value-added services like Door Delivery. Volume discounting
and monthly credit schemes. Its business philosophy is to treat each individual
customer as an account and providing all facilities by which the account would
repeat-purchase in R-World locations. Regular customers would be provided with
the R-World card, which designates the customer as an account and thereby make
available all value-added services to such customers.

Manual Process

States a glance
of the products
and selects the
required
products

Customer
physically visits
the Retail outlet
of his choice

Customers
leaves without
reference

Cross-verifies
the items from
bill

Bill clerk
raises the
Bill

The sales
person
precedes the
products as
per demand

Why the New system

The system at any point of time can provide the information related
to all the existing retail outlets and their operations.

The system at any point of time can provide the list of items and
their availability stock.

The system at any point of time can help the customers in raising
their orders.

The system a specifically can instruct related to the status of the


delivery process of the products.

Chapt
er 3

Fe a s i b i l
ity
Report

Technical Descriptions
Databases: The total number of databases has been identified as 21
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. Retail outlet operations Module: This module maintains the
information

to

the

existing

retail

outlets,

and

their

subjective

standards of operation. The module not only maintains the outlet


information, but also associated with the products availability at these
outlets and the specification in charger who are designated upon these
outlets.
2. Outlets inventory module: The Outlets inventory module manages
the entire information related to the stock of items that are maintained
at the outlets, and the warehouses. The module is dynamic in nature
integrating itself with the sales and purchases that take place upon the
system.
3. Orders and Delivery information module: This module takes care
of the information related to orders that are raised by the customers
and the Door delivery of products that have been demanded by the
customers as per their standard of requirement.

Chapt
er 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 a 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 a 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 yet
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 i m p r o v e d
with simplified data structures and algorithms. Runtime 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
e a s e s m a n a g e m e n t a n d e n a b l e s t u n i n g f l e x i b i l i t y.
DB objects can be mapped to 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 operations


enabling 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- Full row-level locking is implemented for both data


Level Locking 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

T h e n e w a r c h i t e c t u r e i s d e s i g n e d f o r e x t e n s i b i l i t y,
with a foundation for object-relational features.

Large Memory SQL Server 7.0 Enterprise Edition will support


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

performance

and

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 pageor record-level locking.
I/O buffer management.
Logging and recovery.

Utilities for backup and restore, consistency checking,


and bulk data loading.

Databases, Files, and File groups


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.

File groups
A database now consists of one or more data files and one or more
log files. The data files can be grouped together into user-defined
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 m a p p e d t o d i f f e r e n t
filegroups to control data placement on physical disks. Filegroups
are a convenient unit of administration, greatly improving
f l e x i b i l i t y. S Q L S e r v e r 7 . 0 w i l l a l l o w y o u t o b a c k u p a d i f f e r e n t
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 file group. Log space is managed
separately from data space.
Using Files and File groups
Using files and file groups 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
u p d a t a b a s e 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
better data placement because a table can be created in a specific
file group. 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 file group and located
on one disk. The other less heavily accessed tables in the database
can be placed on other files in another file group, 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 file is more
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 i t s e l f. T h i s w o r k s
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
T h e s e r v e r c h e c k s t h e s p a c e u s a g e i n e a c h d a t a b a s e p e r i o d i c a l l y. I f
a database is found to have a lot of empty 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
a n y u s e r a c t i v i t y w i t h i n t h e 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
Server Enterprise Manager or DBCC to shrink files as individually
o r a s a g r o u p , o r u s e t h e 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
SHRINKFILE.
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 until disk space is
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 m a x i m u m
prevents disk drives from running out of space.
Allowing files to grow automatically can
those files if a large number of files
Therefore, it is recommended that files or
as many different local physical disks as
that compete heavily for space in different

size.

This

cause fragmentation of
share the same disk.
filegroups be created on
available. Place objects
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 c h a n g e s
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 Allocation Map Information about allocated extents


Page Free Space

Information
pages

about

free

space

available

on

Index Allocation Map

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 c o n s i s t e n c y. I n S Q L
Server 7.0, pages are 8 KB, while Windows NT does I/O in 512-byte
segments. This discrepancy makes it possible for a page to be
partially written. This could happen if there is a power failure or
other problem between the time when the first 512-byte segment is
written and the completion of 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-or-nothing
I/O. If you have one of these systems, torn page detection is
u n n e c e s s a r y.
In SQL Server 7.0, you can enable torn page detection
particular database by turning on a database option.

for

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 both
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 w h e n a p p l i c a t i o n s
append rows to tables and indexes.
Dynamic Locking
SQL Server 7.0 has a superior locking mechanism that
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 e n g i n e
cooperates with the query processor to choose the
l o c k i n g s t r a t e g y, b a s e d o n t h e c h a r a c t e r i s t i c s o f t h e
q u e r y.

is unique in
dynamically
lowest-cost
schema and

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 the
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 , i n c r e a s e s
concurrency but has a higher overhead because more locks must be
h e l d i f m a n y r o w s a r e l o c k e d . L o c k i n g a t a l a r g e r g r a n u l a r i t y, s u c h
a s t a b l e s , i s e x p e n s i v e i n t e r m s o f 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
larger unit of data has a lower 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
p o t e n t i a l l y u p d a t i n g r e s o u r c e s 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 m u l t i p l e
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
e a r l i e r v e r s i o n s o f S Q L S e r v e r h a v e b e e n r e m o v e d . I n p a r t i c u l a r,
SQL Server 7.0 is less sensitive to 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 index
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 l i s t . T h e
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. The
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, w i t h
pointers to the storage location of the indexed items in the data.
The lowest level, or leaf node, of a nonclustered index is the Row
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 S e r v e r t h e l o c a t i o n
of the actual data row. The Row Identifier can have one of two
forms. If the table has a clustered index, the identifier of the row
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 i s a h e a p , t h e R o w I d e n t i f i e r
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 f o r
the wider range of characters supported and the increased storage
space used.
Improved Data Storage
Data storage flexibility is greatly improved with the expansion of
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 d a t a
types to 8,000 bytes, increased from 255 bytes. It is no longer
necessary to use text and image data types for data storage for
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 - S Q L s t r i n g
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 a 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 label or
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


that

doesnt

depend

Solely

on

the

primary

k e y. T h u s ,

through

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

Language

be

manipulated

upon

by

using

the

Data

Manipulation

(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 a 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

provide

consistent

object-oriented

programming

environment whether object code is stored and executed


l o c a l l y,

executed

locally

but

Internet-distributed,

or

e x e c u t e d r e m o t e l y.

To p r o v i d e a c o d e - e x e c u t i o n e n v i r o n m e n t t h a t m i n i m i z e s
software deployment and versioning conflicts.

To

provide

guarantees

a
safe

code-execution
execution

of

environment

code,

that

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 p r o v i d e a c o d e - e x e c u t i o n e n v i r o n m e n t t h a t e l i m i n a t e s
the

performance

problems

of

scripted

or

interpreted

environments.

To

make

the

developer

experience

consistent

across

widely varying types of applications, such as Windowsb a s e d a p p l i c a t i o n s a n d W eb - b a s e d a p p l i c a t i o n s .

To

build

ensure

all

that

communication
code

based

on

integrate with any other code.

on
the

industry
.NET

standards

Framework

to
can

The

.NET

Framework

language

runtime

common

language

has

and

two

the

main

.NET

runtime

is

components:

Framework
the

the

class

foundation

common

l i b r a r y.
of

the

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 m a n a g e s
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 unmanaged code. The
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 o f t h e . N E T F r a m e w o r k , i s
a comprehensive, object-oriented collection of reusable types that
you

can

use

to

develop

command-line

or

graphical

applications
user

ranging

interface

from

(GUI)

traditional

applications

to

a p p l i c a t i o n s 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 W eb F o r m s a n d X M L W eb s e r v i c e s .
The .NET Framework can be hosted by unmanaged components
that load the common language runtime into their processes and
initiate
software

the

execution

environment

unmanaged

features.

of
that
The

managed
can
.NET

code,

exploit
Framework

thereby
both
not

creating

managed
only

and

provides

several runtime hosts, but also supports the development of thirdparty runtime hosts.
For

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 ,

s e r v e r - s i d e e n v i r o n m e n t f o r m a n a g e d c o d e . A S P.N E T w o r k s 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
services, both of which are discussed later in this topic.
Internet Explorer is an example of an unmanaged application that
hosts the runtime (in the form of a MIME type extension). Using

Internet
managed

Explorer

to

host

components

or

the

runtime

Windows

enables

Forms

you

controls

to

embed

in

HTML

documents. Hosting the runtime in this way makes managed mobile


code (similar to Microsoft ActiveX controls) possible, but with
s i g n i f i c a n t i m p r o v e m e n t s t h a t o n l y m a n a g e d c o d e c a n o f f e r, s u c h
as semi-trusted execution and secure isolated file storage.
Features of the Common Language Runtime
The

common

language

runtime

manages

m e m o r y,

thread

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.
W i t h r e g a r d s t o s e c u r i t y, m a n a g e d c o m p o n e n t s a r e a w a r d e d
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, registryaccess

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 c a n p l a y
an animation on screen or sing a song, but cannot access their
personal data, file system, or network. The security features of
the runtime thus enable legitimate Internet-deployed software to
be exceptionally feature rich.
The runtime also enforces code robustness by implementing a
strict

type-

and

code-verification

infrastructure

called

the

common type system (CTS). The CTS ensures that all managed
code is self-describing. The various Microsoft and third-party
language compilers generate managed code that conforms to the

CTS. This means that managed code can consume other managed
types and instances, while strictly enforcing type fidelity and
t y p e s a f e t y.
In

addition,

eliminates
runtime

the

many

managed

common

automatically

environment

software

handles

issues.

object

of
For

layout

the

runtime

example,
and

the

manages

references to objects, releasing them when they are no longer


being used. This automatic memory management resolves the
two most common application errors, memory leaks and invalid
memory references.
The

runtime

example,

also

accelerates

programmers

can

developer

write

p r o d u c t i v i t y.

applications

in

For
their

development language of choice, yet take full advantage of the


runtime,

the

languages

by

class

l i b r a r y,

other

and

components

developers.

Any

written

compiler

in

vendor

other
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 easing the migration process for existing applications.
While the runtime is designed for the software of the future,
it

also

supports

software

of

today

and

y e s t e r d a y.

Interoperability between managed and unmanaged code enables


developers to continue to use necessary COM components and
DLLs.
The runtime is designed to enhance performance. Although
the common language runtime provides many standard runtime
services, managed code is never interpreted. A feature called
just-in-time (JIT) compiling enables all managed code to run in
the

native

machine

language

of

the

system

on

which

it

is

executing.

Meanwhile,

possibilities

of

the

memory

manager

fragmented

memory

and

removes

increases

the

memory

locality-of-reference to further increase performance.


F i n a l l y,

the

runtime

can

be

hosted

by

high-performance,

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

framework

that

enables

cross-language

i n t e g r a t i o n , t y p e s a f e t y, a n d h i g h p e r f o r m a n c e c o d e e x e c u t i o n .
Provides an object-oriented model that supports the complete
implementation of many programming languages.
Defines rules that languages must follow, which helps ensure
that objects written in different languages can interact with each
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, fields, nested types, methods, and properties,
and

concepts

such

as

member

overloading,

overriding,

and

inheritance.
Value Types
Describes built-in and user-defined value types.
Classes
Describes the characteristics of common language runtime classes.
Delegates
Describes the delegate object, which is the managed alternative to
unmanaged function pointers.
Arrays
Describes common language runtime array types.

Interfaces
Describes

characteristics

of

interfaces

and

the

restrictions

on

interfaces imposed by the common language runtime.


Pointers
Describes managed pointers, unmanaged pointers, and unmanaged
function pointers.

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 run-time environment that manages the execution of
code and provides application development services.
Cross-Language Interoperability
The

common

language

runtime

language

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

guarantee

that

developers

provides

H o w e v e r,
using

built-in

this

another

support

support

does

programming

for
not

language

c a n u s e c o d e y o u w r i t e . To e n s u r e t h a t y o u c a n d e v e l o p m a n a g e d
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 CLS-compliant.
This

section

describes

the

common

language

runtime's

built-in

support for language interoperability and explains the role that the
C L S p l a y s i n e n a b l i n g g u a r a n t e e d c r o s s - l a n g u a g e i n t e r o p e r a b i l i t y.
CLS

features

and

rules

are

identified

and

CLS

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 a 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 from which your own
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. T h i s n o t o n l y m a k e s t h e
.NET

Framework

types

easy

to

use,

but

also

reduces

the

time

associated with learning new features of the .NET Framework. In

addition,

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 collection
classes.

You r

collection

classes

will

blend

seamlessly

with

the

classes in the .NET Framework.


A s y o u w o u l d e x p e c t f r o m a n o b j e c t - o r i e n t e d c l a s s l i b r a r y, t h e . N E T
Framework types enable you to accomplish a range of common
programming tasks, including tasks such as string management,
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 a c c e s s . I n a d d i t i o n
to

these

support

common
a

variety

tasks,
of

the

class

specialized

library

includes

development

types

scenarios.

that
For

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 development. If
y o u w r i t e a n A S P.N E T W eb F o r m a p p l i c a t i o n , y o u c a n u s e t h e W eb
Forms classes.

Client Application Development


Client

applications

are

the

closest

to

traditional

style

of

application in Windows-based programming. These are the types of


applications
enabling

that

user

display
to

windows

perform

or

task.

forms

Client

on

the

desktop,

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
o v e r t h e I n t e r n e t a s a We b p a g e . T h i s a p p l i c a t i o n i s 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 a c c e s s t o
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

Microsoft

Visual

Basic.

aspects

these

existing

of

development

environment

The

(RAD)
.NET

products
that

environment
Framework

into

drastically

such

as

incorporates

single,

consistent

simplifies

the

development of client applications.


The Windows Forms classes contained in the .NET Framework are
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 c r e a t e
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

attributes

d i r e c t l y,

system
and

in

does
these

not

support

cases

the

changing
.NET

these

Framework

automatically recreates the forms. This is one of many ways in


which

the

.NET

Framework

integrates

the

developer

interface,

making coding simpler and more consistent.


Unlike ActiveX controls, Windows Forms controls have semi-trusted
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 n a t i v e l y
executing code can access some of the resources on the user's
system (such as GUI elements and limited

file access) without

being able to access or compromise other resources. Because of


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 t h a t o n c e n e e d e d t o b e
installed on a user's system can now be safely deployed through
t h e W e b . You r a p p l i c a t i o n s c a n i m p l e m e n t t h e f e a t u r e s o f a l o c a l
a p p l i c a t i o n w h i l e b e i n g d e p l o y e d l i k e a W eb p a g e .
Managed Execution Process
The managed execution process includes the following steps:
Choosing a Complier
To o b t a i n t h e b e n e f i t s p r o v i d e d b y t h e c o m m o n l a n g u a g e r u n t i m e ,
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

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. An assembly performs the following functions:
It

contains

Microsoft

code

that

intermediate

the

common

language

language

(MSIL)

runtime

code

in

executes.
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 l o a d e d i n
t h e s c o p e o f o n e a s s e m b l y i s n o t t h e s a m e a s a t y p e 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.

It

forms

reference

scope

b o u n d a r y.

The

assembly's

manifest

contains assembly metadata that is used for resolving types and


satisfying resource requests. It specifies the types and resources
that

are

exposed

outside

the

a s s e m b l y.

The

manifest

also

enumerates other assemblies on which it depends.


It

forms

version

b o u n d a r y.

The

assembly

is

the

smallest

versionable unit in the common language runtime; all types and


resources

in

assembly's

the

same

manifest

assembly

describes

are
the

versioned
version

as

unit.

The

dependencies

you

specify for any dependent assemblies. For more information about


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
Other

that

the

assemblies,

application

such

as

initially

localization

calls

must

resources

be

or

present.

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
s o o n ) . S t a t i c a s s e m b l i e s a r e s t o r e d o n d i s k i n P E f i l e s . You c a n
also use the .NET Framework to create dynamic assemblies, which
are run directly from memory and are not saved to disk before
e x e c u t i o n . You c a n s a v e d y n a m i c a s s e m b l i e s t o d i s k a f t e r t h e y h a v e
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 p r o v i d e d
in the .NET Framework SDK to create assemblies with modules
created

in

other

development

environments.

You

can

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

code

to

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 y o u w i t h a l l
the features of the common language runtime and class library
w h i l e g a i n i n g t h e p e r f o r m a n c e a n d s c a l a b i l i t y o f t h e h o s t s e r v e r.
The

following

illustration

shows

basic

network

schema

with

managed code running in different server environments. Servers


such as IIS and SQL Server can 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 u s e
t h e . N E T F r a m e w o r k t o t a r g e t W eb - b a s e d a p p l i c a t i o n s . H o w e v e r,
A S P.N E T

is

architecture
objects

more
for

using

than

just

developing

managed

services use IIS and

runtime

W eb

code.

A S P.N E T

sites

Both
as the

host;
and

W eb

it

is

complete

Internet-distributed

Forms

publishing

and

XML

W eb

mechanism for

applications, and both have a collection of supporting classes in


the .NET Framework.

XML

Web

services,

t e c h n o l o g y,

are

similar

common

to

an

important

distributed,
W eb

evolution

server-side
sites.

in

Web-based

application

components

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

for

browsers

such

as

Internet

Explorer

and

Netscape

N a v i g a t o r. I n s t e a d , X M L W e b s e r v i c e s c o n s i s t o f r e u s a b l e s o f t w a r e
components designed to be consumed by other applications, such
as traditional client applications, Web-based applications, or even
o t h e r X M L W eb s e r v i c e s . A s a r e s u l t , X M L W e b s e r v i c e s t e c h n o l o g y
is rapidly moving application development and deployment into the
highly distributed environment of the Internet.
If

you

have

used

earlier

versions

of

ASP

t e c h n o l o g y,

you

will

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
offers. For

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 i n a n y

language that supports the .NET Framework. In addition, your code


no

longer

needs

to

share

the

same

file

with

your

HTTP

text

( a l t h o u g h i t c a n c o n t i n u e t o d o s o i f y o u p r e f e r ) . W eb F o r m s p a g e s
execute

in

native

machine

language

because,

like

any

other

managed application, they take full advantage of the runtime. In


contrast,

unmanaged

ASP

pages

are

always

scripted

and

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, m o r e f u n c t i o n a l , a n d e a s i e r
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

applications.

XML

Web

and

consumption

services

are

built

of

XML

W eb

on

standards

services
such

as

SOAP (a remote procedure-call protocol), XML (an extensible data


format),
The

.NET

and

WSDL

Framework

(the
is

W eb
built

Services
on

these

Description
standards

interoperability with non-Microsoft solutions.

Language).
to

promote

F o r e x a m p l e , t h e W eb S e r v i c e s D e s c r i p t i o n L a n g u a g e t o o l i n c l u d e d
with

the

.NET

Framework

SDK

can

query

an

XML

W eb

service

published on the Web, parse its WSDL description, and 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
create classes derived from classes in the class library that handle
all the underlying communication

using SOAP and XML parsing.

Although

library

you

can

use

the

class

to

consume

XML

W eb

s e r v i c e s d i r e c t l y, t h e W eb S e r v i c e s D e s c r i p t i o n L a n g u a g e t o o l a n d
the other tools contained in the SDK facilitate your development
efforts with the .NET Framework.
I f you develop and publish your own XML Web service, the .NET
Framework

provides

set

underlying

communication

of

classes

standards,

that

such

conform
as

to

all

the

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 , y o u r
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

explanations.
Accessing Data with ADO.NET

as

code

samples

and

detailed

Describes the ADO.NET architecture and how to use the ADO.NET


classes to manage application data and interact with data sources
i n c l u d i n g M i c r o s o f t S Q L S e r v e r, O L E D B d a t a s o u r c e s , a n d X M L .
Accessing

Objects

in

Other

Application

Domains

using

.NET

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

types

in

the

System. Reflection.Emit namespace.

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
management

(WMI),

services

which

built

in

provides
to

the

rich

set

Microsoft

of

system

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 how
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
Describes

.NET

Framework

code

access

s e c u r i t y,

role-based

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 how to program
using various synchronization techniques.
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 register serviced components to
access COM+ services.
Creating ASP.NET Web Applications
D i s c u s s e s h o w t o c r e a t e a n d o p t i m i z e A S P.N E T W e b a p p l i c a t i o n s .

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 i s m o r e t h a n t h e n e x t v e r s i o n o f A c t i v e S e r v e r P a g e s
(ASP); it is a unified Web development platform that provides
the services necessary for developers to build enterprise-class
W e b 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 s y n t a x c o m p a t i b l e
with

A S P,

it

also

provides

new

programming

model

and

infrastructure for more secure, scalable, and stable applications.


You c a n f e e l f r e e t o a u g m e n t y o u r e x i s t i n g A S P a p p l i c a t i o n s b y
i n c r e m e n t a l l y 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 a u t h o r
applications in any .NET compatible language, including Visual
B a s i c . N E T, C # , a n d J S c r i p t . 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 a p p l i c a t i o n . D e v e l o p e r s
can

easily

include

the

access

the

managed

benefits
common

of

these

language

technologies,

runtime

which

environment,

t y p e s a f e t y, i n h e r i t a n c e , a n d s o o n .
A S P.N E T h a s b e e n d e s i g n e d t o w o r k s e a m l e s s l y w i t h W Y S I W Y G
HTML editors and other programming tools, including Microsoft
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 d e v e l o p e r s c a n u s e t o d r o p s e r v e r
controls
support.

onto

We b

page

and

fully

integrated

debugging

Developers can choose from the following two features when


c r e a t i n g a n A S P.N E T a p p l i c a t i o n , W eb F o r m s a n d W e b s e r v i c e s ,
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 p a g e s .
W h e n b u i l d i n g t h e s e p a g e s , y o u c a n u s e A S P.N E T s e r v e r c o n t r o l s
to create common UI elements, and program them for common
t a s k s . T h e s e c o n t r o l s a l l o w y o u t o r a p i d l y b u i l d a W eb F o r m o u t
of reusable built-in or custom components, simplifying the code
o f a p a g e . F o r m o r e i n f o r m a t i o n , s e e W eb F o r m s P a g e s . F o r
information

on

how

to

develop

A S P.N E T

server

controls,

see

D e v e l o p i n g A S P.N E T S e r v e r C o n t r o l s
An

XML

W eb

functionality

service

provides

r e m o t e l y.

Using

the
Web

means

to

services,

access

server

businesses

can

expose programmatic interfaces to their data or business logic,


which in turn can be obtained and manipulated by client and
s e r v e r 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 e n a b l e t h e e x c h a n g e o f
data in client-server or server-server scenarios, using standards
like HTTP and XML messaging to move data across firewalls. XML
Web services are not tied to a particular component technology
or object-calling convention. As a result, programs written in
any language, using any component model, and running on any
operating

system

can

access

XML

Web

services.

For

more

i n f o r m a t i o n , s e e X M L We b S e r v i c e s a n d X M L W e b 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
making
this

object
it

more

means

model

has

structured

that

A S P.N E T

changed
and

is

significantly

from

A S P,

object-oriented. Unfortunately

not

fully

backward

compatible;

almost all existing ASP pages will have to be modified to some


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 a d d i t i o n , m a j o r c h a n g e s
to Visual Basic .NET mean that existing ASP pages written with
Visual Basic Scripting Edition typically will not port directly to
A S P.N E T. I n

most

involve

a few lines

only

cases,

though,
of

code.

the
For

necessary
more

changes

will

information, see

M i g r a t i n g f r o m A S P 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 - u s e d
technique

for

displaying

data

to

W eb

site

visitors.

A S P.N E T

makes it easier than ever to access databases for this purpose.


It also allows you to manage the database from your code. For
m o r e i n f o r m a t i o n , s e e A c c e s s i n g D a t a w i t h A S P.N E T
A S P.N E T p r o v i d e s a s i m p l e m o d e l t h a t e n a b l e s W eb d e v e l o p e r s t o
write logic that runs at the application level. Developers can
write this code in the global.asax text file or in a compiled class
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 i n c l u d e a p p l i c a t i o n - l e v e l
events, but developers can easily extend this model to suit the
needs

of

their

W eb

application.

For

more

information,

see

A S P.N E T A p p l i c a t i o n s
A S P.N E T

provides

easy-to-use

application

and

session-state

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 a n d
IHttpModule interfaces. Implementing the IHttpHandler interface
gives you a means of interacting with the low-level request and
response

services

functionality

much

programming

of
like

model.

the
ISAPI

IIS

W eb

server

extensions,

Implementing

the

but

and
with

IHttpModule

provides
a

simpler
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 t a k e s a d v a n t a g e o f p e r f o r m a n c e e n h a n c e m e n t s f o u n d i n
t h e . N E T F r a m e w o r k a n d c o m m o n l a n g u a g e r u n t i m e . A d d i t i o n a l l y,
it

has

been

designed

to

offer

significant

performance

improvements over ASP and other Web development platforms.


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 t h a n i n t e r p r e t e d , w h i c h
allows

early

binding,

strong

typing,

and

just-in-time

(JIT)

compilation to native code, to name only a few of its benefits.


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 , m e a n i n g t h a t d e v e l o p e r s c a n
remove modules (a session module, for instance) that are not
r e l e v a n t t o t h e a p p l i c a t i o n t h e y a r e d e v e l o p i n g . A S P.N E T a l s o
provides extensive caching services (both built-in 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 and gather metrics on existing applications. 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 C a c h i n g F e a t u r e s a n d A S P.N E T
Optimization

Writing custom debug statements to your Web page can help


i m m e n s e l y i n t r o u b l e s h o o t i n g y o u r a p p l i c a t i o n ' s c o d e . H o w e v e r,
it can cause embarrassment if it is not removed. 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

offers

the

Tra c e

Context

class, which allows you to write 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
t r a c i n g a l s o a p p e n d s 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 c u s t o m t r a c e v i e w e r t h a t i s s t o r e d i n t h e
root directory of your application. For more information, see
A S P.N E T Tra c e
T h e . N E T F r a m e w o r k a n d A S P.N E T p r o v i d e d e f a u l t a u t h o r i z a t i o n
a n d a u t h e n t i c a t i o n s c h e m e s f o r W eb a p p l i c a t i o n s . You c a n e a s i l y
remove, add to, or replace these schemes, depending upon the
n e e d s o f 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
Web Application Security
A S P.N E T c o n f i g u r a t i o n s e t t i n g s a r e s t o r e d i n X M L- b a s e d f i l e s ,
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
m o r e i n f o r m a t i o n , s e e A S P.N E T C o n f i g u r a t i o n
Building Applications
The

.NET

Framework

applications

and

enables

services,

powerful

including

new

A S P.N E T

Web-based
applications,

Windows Forms applications, and Windows services. This section


contains

instructive

overviews

and

procedures for creating applications.

detailed,

step-by-step

This

section

Framework

also

includes

design-time

information

architecture

to

on

using

support

the

visual

.NET
design

environments for authoring custom components and controls.


Creating ASP.NET Web Applications
Provides the information you need to develop enterprise-class
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

language

to

use

runtime

the
to

.NET

create

Framework

and

the

self-described,

common

self-contained

applications.
Configuring Applications
Explains how developers and administrators can apply settings
to various types of configuration files.
Debugging and Profiling Applications
To

debug

.NET

Framework

application,

the

compiler

and

runtime environment must be configured to enable a debugger to


attach to the application and to produce both symbols and line
maps,

if

Microsoft

possible,

for

the

Intermediate

application

Language

and

(MSIL).

its

corresponding

Once

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

Visual

Framework

Studio

applications

. N E T, w h i c h

handles

are

easily

many

of

debugged
the

using

configuration

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

command-line

Debugger

(DbgCLR.exe),

d e b u g g e r.
Microsoft

common

language

w h i c h i s a W i n d o w s d e b u g g e r.

runtime

The .NET Framework namespace System. Diagnostics includes


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 f l o w , a n d t h e
Process,

Event

Log,

and

Performance

Counter

classes

for

profiling code. The Cordbg.exe command-line debugger can be


u s e d t o d e b u g m a n a g e d c o d e f r o m t h e c o m m a n d - l i n e i n t e r p r e t e r.
DbgCLR.exe is a debugger with the familiar Windows interface
for

debugging

managed

code.

It

is

located

in

the

M i c r o s o f t . N E T / F r a m e w o r k S D K / G u i D e b u g f o l d e r.
Enabling JIT-attach Debugging
Shows

how

to

configure

the

registry

engine to a .NET Framework application.

to

J I T-a t t a c h

debug

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 a .NET Framework
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 that they
r e n d e r.
Web server controls

Controls with more built-in features than

H T M L s e r v e r c o n t r o l s . W eb s e r v e r c o n t r o l s i n c l u d e n o t o n l y f o r m type controls such as buttons and text boxes, but also specialp 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. We b s e r v e r c o n t r o l s a r e
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 you

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 a n i n p u t
control

to

test

what

the

user

enters

for

that

input

control.

Val i d a t i o n c o n t r o l s a r e p r o v i d e d t o a l l o w y o u t o c h e c k f o r 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

C o n t r o l s t h a t y o u c r e a t e a s W eb F o r m s 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 F o r m s
pages, which is an easy way to create menus, toolbars, and
other reusable elements.
You

can

following

use

all

types

sections

controls. For

more

of

provide

controls
more

information

on

detail

the

same

about

page.

A S P.N E T

The

server

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
t h a t m a k e t h e m v i s i b l e t o a n d p r o g r a m m a b l e o n t h e s e r v e r.
By

default,

HTML

elements

on

Web

Forms

page

are

not

available to the server; they are treated as opaque text that is


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, b y c o n v e r t i n g H T M L
elements to HTML server controls, you expose them as elements
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 corresponding elements. For example, HTML attributes are
exposed in HTML server 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. As a minimum, an HTML element is converted to
a c o n t r o l b y t h e a d d i t i o n o f t h e a t t r i b u t e 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 d u r i n g p a r s i n g t h a t i t s h o u l d
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 framework provides predefined HTML server controls


for the HTML elements most commonly used dynamically on a
page: forms, the HTML <INPUT> elements (text box, check box,
Submit button, and so on), list box (<SELECT>), table, image,
and so on. These predefined HTML server controls share the
basic properties of the generic control, and in addition, each
control 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

control

familiar

exposes

object-oriented

properties

that

techniques.

allow

you

to

Each

server

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 makes
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 e n t e r e d i n t o
HTML

server

controls

are

automatically

maintained

when

the

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 with validation controls you can easily verify that a
user has entered appropriate information into a control.
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
o f c u s t o m a t t r i b u t e s . You c a n a d d a n y a t t r i b u t e s y o u n e e d t o a n

HTML server control and the page framework will read them and
r e n d e r t h e m w i t h o u t a n y c h a n g e i n f u n c t i o n a l i t y. T h i s a l l o w s y o u
to add browser-specific attributes to your controls. For details
about

how

to

convert

an

HTML

element

to

an

HTML

server

c o n t r o l , s e e A d d i n g H T M L S e r v e r C o n t r o l s t o a W eb F o r m s P a g e
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

against.

For

example,

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 m i g h t b e r e n d e r e d i n a t a b l e
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

mapping

to

HTML

elements) and these additional features:


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.
When

the

rendered

Web
on

Forms

the

page

page
using

runs,

the

W eb

appropriate

server

HTML,

control

which

is

often

depends not only on the browser type but also on settings that
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
might

render

as

an

<INPUT>

depending on its properties.

tag

or

< T E X T AR E A >

tag,

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 a usage scenario
from the end-users perspective.

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


Databases used
The actors who have been identified in this system are

Customers
Sales staff
Internal Administrator

Customers: They are the actors who manage themselves onto the system
to execute the standard of material purchase,they prescriptionally log onto
the system and they have the privilege of placing the orders and checking
the status of inventory.

Login
Information

Customer
Registration

Query for
existing
items

Administrator

Raising
order

High-level Diagram

Sales staff
These are the internal actor within the systems; they execute the sales
process, with specific to the orders that are raised by the customers.

Login
Information

Sales Staff

Query for
customers
orders

Query for
items
inventory
Generate
Bill

Internal Administrators: These are the actors who have the overall
control and construct upon the data maintenance of the system. He is in
charge of any consistent data transactions that may execute upon the
system.

Login
Information

Register
outlets

Register stock
depots

Internal
Administrator
Register
Items

Maintain
stores
inventory

High Level Diagram

Elaborated diagram for customer


Login

<<Uses>>

Raise request for


customer registration

Customer

Raise query for item


details

Request for
raising order

<<Uses>>

<<Uses>>
Authenticate login
name

<<Uses>>

<<Uses>>

<<Uses>>

Authenticate
password

Generate
customer account
number

<<Uses>>

<<Uses>>

Validate data
fields

Store

<<Uses>>

<<Uses>>
Enter the
item
information
screen

Select the Item


ID

<<Uses>>
Generate Order
No

Accessibility
associated through
privilege

Display

<<Uses>>

Order the
Retail outlet Id

Validate data
fields

<<Uses>>
Display

<<Uses>>
Store

Elaborated diagram for Sales Staff

Login

<<Uses>>

Authenticate login
name

<<Uses>>
Query for customer
orders

Sales Staff

<<Uses>>

Privileged
activities

Authenticate
password
<<Uses>>

<<Uses>>
Enter the order
No

Validate the
fields

<<Uses>>

Display
Display

<<Uses>>

<<Uses>>
Query for
Inventory Items

Bill Generation

<<Uses>>

<<Uses>>

Enter the Item


number

Select the
Customer order
Number

Validate the
fields

Display

<<Uses>>

<<Uses>>
Generate Bill No

Check all the


ordered items

Generate the
bill

Elaborated diagram for Internal Administrator

Login

<<Uses>>

Request for outlet


registration

<<Uses>>

Authenticate
password

Generate outlet
ID

Request for stock


depots registration

Accessibility
associated through
privilege

<<Uses>>
Validate
fields

Enter required
data

<<Uses>>

<<Uses>>

Internal
Administrator

<<Uses>>

<<Uses>>
Authenticate login
name

<<Uses>>
Enter required
Data

Generate stock
depot Id

Validate
fields

<<Uses>>
<<Uses>>
Request for item
registration

<<Uses>>
Generate
Item ID

Enter the required


data

Validate
fields

Store
<<Uses>>
Store

<<Uses>>
Stores
inventory

<<Uses>>

<<Uses>>
Enter the
Inventory ID

<<Uses>>
Validate the
field

Display

Class Collaboration For:


Retail outlet, Major stores inventory, shelf Inventory and customer
orders collaboration
Retail outlet master
Retail-outlet-ID: number
Retail-outlet-name: Varchar2
Outlet-address: Varchar2
Outlet-phoneno: number
Outlet-fax-no: varchar2
Outlet-in charge-ID: number
Insert ()
Delete ()
Update ()
Search ()

Item wise main stores


inventory
Inventory-id: number
Item-id: number
Retail-outlet-id: number
Item-stock: varchar2
Min-stock-qty: varchar2
Insert (), Delete ()
Update (), Search ()
Validate-item-id ()
Validate-retail-outlet-id ()

Item wise shelf inventory


master
Shelf-inventory-id: number
Item-id: number
Retail-outlet-id: number
Shelf-item-stock: varchar2
Min-stock-quantity: varchar2
Insert (), Delete ()
Update (), Search ()
Validate-item-id ()
Validate-retail-outlet-id ()

Item master
Item -ID: number
Item -name: Varchar2
Item-desc: varchar2
Item-stock-on-hand:
varchar2
Item-reorder-level: varchar2
Item-unit-price: varchar2
Item-category-ID: number
Item-packing-typ-id: number
Item-min-stock: varchar2
Insert ()
Delete ()
Update ()
Search ()
Validate-category-id ()
Validate-packing-typeid ()

Customer Item order number


Customer-order-no: number
Customer-order-date: date
Customer-delivery-date: date
Customer-delivery-time: varchar2
Customer-retail-outlet-ID: number
Insert (), Delete ()
Update (), Search ()
Validate-retail-outlet-id ()

Packing type master


Item-packing-type-id: number
Item-packing-type-desc: varchar2
Any-other-details: varchar2
Insert (), Delete ()
Update (), Search ()

Customer Bill Generation collaboration

Customer Bill master


Bill_No: number
Bill-date: date
Customer-order-no: number
Sales-person-id: number
Insert (), Delete ()
Update (), Search ()
Validate-cust-order no ()
Validate-sales-person-id ()
Validate-discount-id ()

Customer item order master


Customer-order-no: number
Customer-item-no: number
Customer-item-qty: varchar2
Insert (), Delete ()
Update (), Search ()
Validate-Retail-Outlet-Id ()

Category master
Item-category-id: number
Item-category-name:
varchar2
Employee
master
Item-category-description: varchar2
Employee-number:number
Insert (), Delete ()
Employee-Name:varchar2
Update (), Search ()
Employee-address:varchar2
Employee-DOB:Date
Employee-DOJ:Date
Insert ()
Delete ()
Update ()
Search ()

Retail outlet master


Retail-outlet-ID: number
Retail-outlet-name: Varchar2
Outlet-address: Varchar2
Outlet-phone no: number
Outlet-fax-no: varchar2
Outlet-in charge-ID: number
Insert ()
Delete ()
Update ()
Search ()

Sequence Diagram for Login

Login
screen

Enter

Enter
Login
name ()

Login
master

Login
screen

Login
screen

Login
master

Validate
Log name ()

Enter
Password () Validate
Password () Display

Customer Account registration


Customer
account
master

Customer
account
registration form

Request for
customer
account
registration

Insert ()

Generate
Cust-AccNO ()

Account
registration
form

Accept
Fields ()

Validate
Data fields
()

Commit

Customer Item order sequence

Customer
account
registration form

Customer
account
Master

Request for
customer
account
registration Insert ()

Generate
item order
NO ()

Retail outlet
Master

Item order
screen

Validate
retail outlet Accept
ID ()

Validate

Fields ()

Data fields
Commit
()

Customer Bill Generation sequence

Bill master
Screen

Request for
customer
account
registration Insert ()

Customer Bill
master

Generate
Bill No ()

Customer
Item order
master

Employee
master

Discount
master

Validate
custord No() Validate
sales person
Validate
id()

Accept
data
Discount
fields ()
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 be extended to include keywords for multitasking and/or
concurrent

processing

interrupt

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

Client Needs

Requirements

Acceptance
Testing

System Testing

Design
Integration Testing
Code
Unit Testing

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

possible combinations of execution paths through the code at every module level.

all

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.

You might also like