Sei sulla pagina 1di 121

E -

Banking
Chapt
er 1
Abstr
act
The E-Banking is an application that has been developed for a well-established
regional bank operating primarily in south India. The bank has several branches in
key cities and towns in the north. In the world of this competitive environment and
technological development, the bank has been totally computerized in the last 3
years, and to increase its customer base has started planning, for a concept called
as e-banking; with this concept the bank wants to move very nearer to the
customers and increase its basic operational strategies. Through E-Banking the
bank wants to introduce the core concept of IT based Enabled Services (ITES). The
E-Banking services are executed only upon the customer, and these e-banking
services would fully integrate with the core banking solution that is already in
usage. The major idea is to provide a series of services to the customer through the
internet, and make the customer feel flexible in calling out simple tasks faster
instead of making visit to the bank every time. The e-banking service is open only
to savings bank. Customers and not for current account holders. The customer is
privileged to use most of the system only as a viewing phase, the only online
transactions the customer can do are chequebook requisition and fund transfer
among his personal accounts.

The project ahs 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 table spaces, clusters and indexes have been exploited to provide
higher consistency and reliability for the data storage. The MS-SQL server 200 was
a choice as it provides the constructs of high-level reliability and security. The total
front end was dominated using the ASP.Net technologies. At all proper levels high
care was taken to check that the system manages the data consistency with proper
business rules or validations. The database connectivity was planned using the
latest ”SQL Connection” technology provided by Microsoft Corporation. The
authentication and authorization was crosschecked at all the relevant stages. The
user level accessibility has been restricted into two zones namely. The
administrative zone and the normal user zone.

About the Organization

The National Bank (TNB) is a well-established regional bank operating primarily in


south India, but with several branches in key cities and towns in the North.

Dfgegdfgdfgdfgdf

Manual Process
Customer
 physically visits
the bank
Inquires for an existing service
or some specific information

Leaves The incharge clerk checks the


Associated and integrates the
the specification and answers the
information as needed
bank query
 Customer
physically visits
Raises a request for new
checkbook by filling in the
prescribed form
the bank

Customer
makes a The cheque book is sent for The incharge clerk accepts the
counter sign manages initials request and prepares the
and receives cheque book with respect to
the checkbook given specification

Why the New System


The development of the new system contains the following activities which try to
automate the entire process keeping in view of the database integration approach.

1. The administrators have grates accessibility in collecting the consistent


information that is very much necessary for the system to exist and
coordinate.

2. The system at any point of time can give the customers information related
to their

 Accounts and accounts status

 The balance enquiry

 The fund transfer standards

 The cheque book request

3.The system can provide information related to the different types of accounts
that are existing within the bank.

4.The system can provide the bank administration with information on the
number of customers who are existing in the system.

5.The system at any point of time can provide the information related to the
executed transactions by the customer.

6.The system with respect to the necessities can identify all the history details of
the trial participants along with their outcome of the results.
7.The system with respect to the necessities can provide the status of research
and development process that is under schedule within the organization
currently.

8.With proper storage of the data in a relational environment the system can
Applegate itself to cater to the standards of providing a clear and easy path for
future research standards that may arise due to organizational policies.
Chapter
3
Feasibility
Report
Technical Descriptions:
The total number of databases that were identified to build system is 17. The
major parts of the databases are categorized as administration components and
customer of based components. The administration components are useful is
managing the actual master date that may be necessary the maintain the
consistency of the system. These databases purely used for the internal
organizational needs and necessities.

The uses of customer components are designed to handle to transactional states


that arise upon the system whereas customer makes a visit onto the portal for
the same of a product purchase. The customers components are scheduled
accept parametrical information from the uses as per the system necessity.

GUI’S
In the flexibility of the uses the interface has been developed a graphics concept
in mind, associated through a browses interface. The GUI’S at the top level have
been categorized

i. Administration users interface

ii. Account Holder interface

The Administration users interface concentrate on the consistent in that is


practically part of organizational actuaries and which needs proper
authentication for date collation. These interfaces to the visitors with all the
transactional states lute date in date deletion and date updation only with the
Date search capabilities.

The Account holder interface helps the ordinary website visitors is transacting
through the required services that provided upon the site. The customer
interfaces also help the ordinary users in managing their own information
Required Hardware
 Pentium IV Processor.

 128 MB RAM.

 20GB Hard Disk space.

 Ethernet card with an Internet and Internet zone.


Required Software

 Windows 2000 XP operating system.

 Internet explorer 5.0 and Netscape navigator.

 Oracle 9i.

 TCP/IP Protocol suite.

Number of Modules

The system after careful analysis has been identified to be presented with the
following modules.

1. Employee information module: The module manages the information


of all the employees who practically exist for this organization. Each
employee is exclusively associated through a specific department and
authorized designation. The module manages all the transactional
relations that generically arise as and when the system has been
executed, upon the requirements.

2. Banks Information module: This module specifies the integrated and


interrelation information alert the banks and their branches. The module
also specifically states the different services each bank can provide and
integrates itself with customer’s accounts information.

3. Customers accounts information module: The module maintains the


actual customers list that have availed bank accounts upon this system.
The module integrates itself with the banks and the types of services the
bank can provide.
4. Customer transaction module: This module maintains the information
related to all the transaction that are executed by the customer upon the
E-Banking application. The module integrates itself with entities like
transaction types to check the consistency of the transaction.

5. Fund Transfer master: This module maintains the information related


to the funds that have been transferred by the customer from one of his
account to another account of his own. This module helps the customer in
executing the fund transfer with out the physical visit to the banks
premises.

6. Chequebook request module: This module maintains the information


related and issues by the bank. This module facilitates the customer with
requesting the chequebook through online process eradicating the
physical visits.
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


Re l i a b i l i t y 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. Run-
time checks of critical data structures make the
database much more robust, minimizing the need for
consistency checks.
Scalability The new disk format and storage subsystem provide
storage that is scalable from very small to very large
databases. Specific changes include:
• Simplified mapping of database objects to files
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.

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

• Re d e s i g n e d u t i l i t i e s s u p p o r t t e r a b y t e - s i z e d
d a t a b a s e s e f f i c i e n t l y.

Ease of Use 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 Ty p e Maximum size of character and binary data types is
Sizes dramatically increased.

Databases Databases creation is simplified, now residing on


and Files operating system files instead of logical devices.

Dynamic Improves performance by optimizing memory


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

D y n a m i c Ro w - F u l l r o w - l e v e l l o c k i n g i s i m p l e m e n t e d f o r b o t h d a t a
Level Locking rows and index entries. Dynamic locking
a u t o m a t i c a l l y c h o o s e s t h e o p t i m a l l e v e l o f l o c k ( r o w,
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 A database can automatically grow and shrink within


Space configurable limits, minimizing the need for DBA
Management 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 page-
or record-level locking.

• I/O buffer management.

• Logging and recovery.

• Utilities for backup and restore, consistency checking,


and bulk data loading.

Databases, Files, and Filegroups

Overview

SQL Server 7.0 is much more integrated with Windows NT Server


than any of its predecessors. Databases are now stored directly in
Windows NT Server files .SQL Server is being stretched towards
both the high and low end.

Files
SQL Server 7.0 creates a database using a set of operating system
files, with a separate file used for each database. Multiple
databases can no longer share the same file. There are several
important benefits to this simplification. Files can now grow and
shrink, and space management is greatly simplified. All data and
objects in the database, such as tables, stored procedures,
triggers, and views, are stored only within these operating system
files:

F i l e Ty p e Description

Primary This file is the starting point of the database. Every


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

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

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

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


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

Filegroups

A database now consists of one or more data files and one or more
log files. The data files can be grouped together into user-defined
f i l e g r o u p s . Ta b 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 filegroup. Log space is managed


separately from data space.

Using Files and Filegroups

Using files and filegroups improves database performance by


allowing a database to be created across multiple disks, multiple
disk controllers, or redundant array of inexpensive disks (RAID)
s y s t e m s . Fo r e x a m p l e , i f y o u r c o m p u t e r h a s f o u r d i s k s , y o u c a n
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
filegroup. This improves performance because all I/O for a specific
t a b l e c a n b e d i r e c t e d a t a s p e c i f i c d i s k . Fo r e x a m p l e , a h e a v i l y
used table can be placed on one file in one filegroup and located
on one disk. The other less heavily accessed tables in the database
can be placed on other files in another filegroup, located on a
second disk.

Space Management

There are many improvements in the allocations of space and the


management of space within files. The data structures that keep
track of page-to-object relationships were redesigned. Instead of
linked lists of pages, bitmaps are used because they are cleaner
and simpler and facilitate parallel scans. Now each 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


• Ro w s p a c e m a n a g e m e n t w i t h i n a t a b l e
• 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 . Yo u 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 ATA B 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 s i z e . T h i s
prevents disk drives from running out of space.

Allowing files to grow automatically can cause fragmentation of


those files if a large number of files share the same disk.
Therefore, it is recommended that files or filegroups be created on
as many different local physical disks as available. Place objects
that compete heavily for space in different filegroups.

Physical Database Architecture

Microsoft SQL Server version 7.0 introduces significant


i m p r o v e m e n t s i n t h e w a y d a t a i s s t o r e d p h y s i c a l l y. T h e s e 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

Te x t / I m a g e Te x 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

Pa g e F r e e S p a c e Information about free space available on


pages

Index Allocation Map Information about extents used by a table or


index.

Torn Page Detection

To r 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 for a
particular database by turning on a database option.
Locking Enhancements

Row-Level Locking

SQL Server 6.5 introduced a limited version of row locking on


inserts. SQL Server 7.0 now supports full row-level locking for both
d a t a r o w s a n d i n d e x e n t r i e s . Tr a 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 LT P 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 is unique in


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 dynamically
cooperates with the query processor to choose the lowest-cost
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 schema and
q u e r y.

Dynamic locking has the following advantages:

• Simplified database administration, because database


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

• Increased performance, because SQL Server minimizes system


overhead by using locks appropriate to the task.

• Application developers can concentrate on development,


b e c a u s e S Q L S e r v e r a d j u s t s l o c k i n g a u t o m a t i c a l l y.

Multigranular locking allows different types of resources to be


l o c k e d b y a t r a n s a c t i o n . To m i n i m i z e t h e c o s t o f l o c k i n g , S Q L
Server automatically locks resources at a level appropriate to 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 potentially
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 AT E , I N S E RT, 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,
S Q L S e r v e r 7 . 0 i s l e s s s e n s i t i v e t o i n d e x- s e l e c t i o n i s s u e s , r e s u l t i n g
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.
T h e l o w e s t l e v e l , o r l e a f n o d e , o f a n o n c l u s t e r e d i n d e x i s t h e Ro w
I d e n t i f i e r o f t h e i n d e x e n t r y, w h i c h g i v e s S Q L S e r v e r t h e l o c a t i o n
o f t h e a c t u a l d a t a r o w. T h e Ro w I d e n t i f i e r c a n h a v e o n e o f t w o
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 Ro w I d e n t i f i e r
i s t h e a c t u a l l o c a t i o n o f t h e d a t a r o w, i n d i c a t e d w i t h a p a g e
number and offset on the page. Therefore, a nonclustered index, in
comparison with a clustered index, has an extra level between the
i n d e x s t r u c t u r e a n d t h e d a t a i t s e l f.

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 Tr a 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 doesn’t depend Solely on the primary k e y. Thus, 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.
O r a c l e ’s i m p l e m e n t a t i o n o f S Q L t h r o u g h S Q L * p l u s i s c o m p l i a n t
with ANSI (American national standard institute) and the ISO
(international standards organization) standards. Almost all oracle
tools support identical SQL syntax

Data can be manipulated upon by using the Data Manipulation


Language (DML). The DML statements provided by SQL are select,
update, and delete. SQL *plus 3.3 can be accessed only by giving
the valid username and password. This is one of the security
features imposed by oracle to restrict unauthorized data accessed.
SQL allows provides commands for creating new users, granting
privileges etc.

All such features of SQL*plus make it a power data access tool


especially for oracle products.
Client Server Technologies
MS.NET

Overview of the .NET Framework

The .NET Framework is 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 a 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 a code-execution environment that


guarantees safe execution of code, including code
c r e a t e d b y a n u n k n o w n o r s e m i - t r u s t e d t h i r d p a r t y.

• To 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 Windows-
b a s e d a p p l i c a t i o n s a n d We b - b a s e d a p p l i c a t i o n s .

• To build all communication on industry standards to


ensure that code based on the .NET Framework can
integrate with any other code.

The .NET Framework has two main components: the common


language runtime and the .NET Framework class l i b r a r y. The
common language runtime is the foundation of the .NET
F r a m e w o r k . Yo u 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 applications ranging from traditional
command-line or graphical user interface (GUI) 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 We b Fo r m s a n d X M L We b 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 the execution of managed code, thereby creating a
software environment that can exploit both managed and
unmanaged features. The .NET Framework not only provides
several runtime hosts, but also supports the development of third-
party runtime hosts.

Fo r e x a m p l e , A S P. N E T h o s t s t h e r u n t i m e t o p r o v i d e a s c a l a b l e ,
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 We b Fo r m s a p p l i c a t i o n s a n d X M L We b
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 Explorer to host the runtime enables you to embed
managed components or Windows Fo r m s controls 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, registry-
access operations, or other sensitive functions, even if it is
being used in the same active application.

T h e r u n t i m e e n f o r c e s c o d e a c c e s s s e c u r i t y. Fo 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 We b 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, the managed environment of the runtime
eliminates many common software issues. Fo r example, the
runtime automatically handles object layout and 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 also accelerates developer p r o d u c t i v i t y. Fo r


example, programmers can write applications in their
development language of choice, yet take full advantage of the
runtime, the class l i b r a r y, and components written in other
languages by other developers. Any compiler vendor who
chooses to target the runtime can do so. Language compilers
that target the .NET Framework make the features of the .NET
Framework available to existing code written in that language,
greatly 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, the memory manager removes the
possibilities of fragmented memory and increases memory
local ity- 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 a 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.

D e f i n e s r u l e s t h a t l a n g u a g e s m u s t f o l l o w, w h i c h h e l p s e n s u r e
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 Ty p 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 provides built-in support for


language i n t e r o p e r a b i l i t y. H o w e v e r, this support does not
guarantee that developers using another programming 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 t y p e a n d s t o r i n g t h a t i n f o r m a t i o n w i t h t h e t y p e i t s e l f.

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

Fo r e x a m p l e , t h e . N E T F r a m e w o r k c o l l e c t i o n c l a s s e s i m p l e m e n t a
set of interfaces that you can use to develop your own collection
classes. Yo u 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 common tasks, the class library includes types that
support a variety of specialized development scenarios. Fo r
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.

Fo r e x a m p l e , t h e W i n d o w s Fo r m s c l a s s e s a r e a c o m p r e h e n s i v e s e t
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 We b Fo 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 We b
Fo r m s c l a s s e s .
Client Application Development

Client applications are the closest to a traditional style of


application in Windows-based programming. These are the types of
applications that display windows or forms on the desktop,
enabling a user to perform a task. Client applications include
applications such as word processors and spreadsheets, as well as
custom business applications such as data-entry tools, reporting
tools, and so on. Client applications usually employ windows,
menus, buttons, and other GUI elements, and they likely access
local resources such as the file system and peripherals such as
printers.

Another kind of client application is the traditional ActiveX control


( n o w r e p l a c e d b y t h e m a n a g e d W i n d o w s Fo r m s c o n t r o l ) d e p l o y e d
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


c o n j u n c t i o n w i t h t h e M i c r o s o f t Fo u n d a t i o n C l a s s e s ( M F C ) o r w i t h a
rapid application development (RAD) environment such as
Microsoft® Visual Basic®. The .NET Framework incorporates
aspects of these existing products into a single, consistent
development environment that drastically simplifies the
development of client applications.

T h e W i n d o w s Fo r m s c l a s s e s c o n t a i n e d i n t h e . N E T F r a m e w o r k a r e
d e s i g n e d t o b e u s e d f o r G U I d e v e l o p m e n t . Yo u 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.
Fo r e x a m p l e , t h e . N E T F r a m e w o r k p r o v i d e s s i m p l e p r o p e r t i e s t o
adjust visual attributes associated with forms. In some cases the
underlying operating system does not support changing these
attributes d i r e c t l y, and in these cases the .NET Framework
automatically recreates the forms. This is one of many ways in
which the .NET Framework integrates the developer interface,
making coding simpler and more consistent.

U n l i k e A c t i v e X c o n t r o l s , W i n d o w s Fo r m s c o n t r o l s h a v e s e m i - t r u s t e d
a c c e s s t o a u s e r ' s c o m p u t e r. T h i s m e a n s t h a t b i n a r y o r 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 We b . Yo u 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 We b 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 a
verification process that examines the MSIL and metadata to find
out whether the code can be determined to be type safe.

Executing your code

The common language runtime provides the infrastructure that


enables execution to take place as well as a variety of services
that can be used during execution.

Assemblies Overview

Assemblies are a fundamental part of programming with the .NET


Framework. An assembly performs the following functions:

It contains code that the common language runtime executes.


Microsoft intermediate language (MSIL) code in a 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
p e r m i s s i o n s a r e r e q u e s t e d a n d g r a n t e d . Fo r m o r e i n f o r m a t i o n a b o u t
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 Ty p 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 Ty p 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 a 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 a 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 the same assembly are versioned as a unit. The
assembly's manifest describes the version dependencies you
s p e c i f y f o r a n y d e p e n d e n t a s s e m b l i e s . Fo r m o r e i n f o r m a t i o n a b o u t
v e r s i o n i n g , s e e A s s e m b l y Ve r s i o n i n g

It forms a deployment unit. When an application starts, only the


assemblies that the application initially calls must be present.
Other assemblies, such as localization resources or assemblies
containing utility classes, can be retrieved on demand. This allows
a p p l i c a t i o n s t o b e k e p t s i m p l e a n d t h i n w h e n f i r s t d o w n l o a d e d . Fo r
more information about deploying assemblies, see Deploying
Applications

I t i s t h e u n i t a t w h i c h s i d e - b y- s i d e e x e c u t i o n i s s u p p o r t e d . Fo r
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 . Yo u 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 . Yo u 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. Yo u 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 . Yo u 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. Yo u can also use
c o m m o n l a n g u a g e r u n t i m e A P I s , s u c h a s Re f l e c t i o n . E m i t , t o c r e a t e
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 a 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 We b - 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 more than just a runtime host; it is a complete
architecture for developing We b sites and Internet-distributed
objects using managed code. Both We b Fo r m s and XML We b
services use IIS and A S P. N E T as the publishing mechanism for
applications, and both have a collection of supporting classes in
the .NET Framework.
XML We b services, an important evolution in We b - b a s e d
t e c h n o l o g y, are distributed, server-side application components
similar to common We b sites. H o w e v e r, unlike We b - b a s e d
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 c o m p o n e n t s h a v e n o U I a n d a r e n o t
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 We 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
a s t r a d i t i o n a l c l i e n t a p p l i c a t i o n s , We b - b a s e d a p p l i c a t i o n s , o r e v e n
o t h e r X M L We b s e r v i c e s . A s a r e s u l t , X M L We 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 We b Fo r m s
o f f e r s . Fo r e x a m p l e , y o u c a n d e v e l o p We b Fo 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 H TT P 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 ) . We b Fo 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 and consumption of XML We b services
applications. XML We b services are built on standards such as
SOAP (a remote procedure-call protocol), XML (an extensible data
f o r m a t ) , a n d W S D L ( t h e We b 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 h e
.NET Framework is built on these standards to promote
interoperability with non-Microsoft solutions.
Fo r e x a m p l e , t h e We b 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 We b service
p u b l i s h e d o n t h e We b , p a r s e i t s W S D L d e s c r i p t i o n , a n d p r o d u c e C #
or Visual Basic source code that your application can use to
b e c o m e a c l i e n t o f t h e X M L We b s e r v i c e . T h e s o u r c e c o d e c a n
create classes derived from classes in the class library that handle
all the underlying communication using SOAP and XML parsing.
Although you can use the class library to consume XML We b
s e r v i c e s d i r e c t l y, t h e We b 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 y o u d e v e l o p a n d p u b l i s h y o u r o w n X M L We b s e r v i c e , t h e . N E T
Framework provides a set of classes that conform to all the
underlying communication standards, such as S O A P, WSDL, and
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 We b Fo 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 We b service will run with the speed of native machine
language using the scalable communication of IIS.

Programming with the .NET Framework

This section describes the programming essentials you need to


build .NET applications, from creating assemblies from your code to
securing your application. Many of the fundamentals covered in
this section are used to create any application using the .NET
Framework. This section provides conceptual information about key
programming concepts, as well as code samples and detailed
explanations.

Accessing Data with ADO.NET


Describes the ADO.NET architecture and how to use the ADO.NET
classes to manage application data and interact with data sources
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


Re m o t i n g

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


We b - a n d I n t e r n e t - b a s e d a p p l i c a t i o n s .

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


S y s t e m . Re f l e c t i o n . E m i t n a m e s p a c e .

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 a process, creates the application domain within the
process, and loads and executes user code.

Including Asynchronous Calls

Discusses asynchronous programming features in the .NET


Framework.

Interoperating with Unmanaged Code

Describes interoperability services provided by the common


language runtime.

Managing Applications Using WMI

Explains how to create applications using Windows Management


Instrumentation (WMI), which provides a rich set of system
management services built in to the Microsoft® Windows®
operating systems.

Creating Messaging Components

Discusses how to build complex messaging into your


applications.

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 We b a p p l i c a t i o n s .
Creating Windows Forms Applications

D e s c r i b e s h o w t o c r e a t e W i n d o w s Fo r m s a n d W i n d o w s c o n t r o l s
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
( A S P ) ; i t i s a u n i f i e d We b d e v e l o p m e n t p l a t f o r m t h a t p r o v i d e s
the services necessary for developers to build enterprise-class
We 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 a new programming model and
infrastructure for more secure, scalable, and stable applications.
Yo u 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 access the benefits of these technologies, which
include the managed common language runtime 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 We b 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 onto a We b page and fully integrated debugging
support.
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 , We b Fo r m s a n d We 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.

We b Fo 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 We b Fo r m o u t
of reusable built-in or custom components, simplifying the code
o f a p a g e . Fo r m o r e i n f o r m a t i o n , s e e We b Fo r m s P a g e s . Fo 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 We b service provides the means to access server


functionality r e m o t e l y. Using We b services, 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
l i k e H TT P a n d X M L m e s s a g i n g t o m o v e d a t a a c r o s s f i r e w a l l s . X M L
We b s e r v i c e s a r e n o t t i e d t o a p a r t i c u l a r c o m p o n e n t t e c h n o l o g y
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 We b services. Fo r 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 We 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 object model has changed significantly from A S P,
making it more structured and object-oriented. Unfortunately
this means that A S P. N E T is 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. In most cases, though, the necessary changes will
involve only a few lines of code. Fo r more 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 We b site visitors. A S P. N E T
makes it easier than ever to access databases for this purpose.
I t a l s o a l l o w s y o u t o m a n a g e t h e d a t a b a s e f r o m y o u r c o d e . Fo r
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 We b 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 We b application. Fo r 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. Fo r 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

Fo r a d v a n c e d d e v e l o p e r s w h o w a n t t o u s e A P I s a s p o w e r f u l a s
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 of the IIS We b server and provides
functionality much like ISAPI extensions, but with a simpler
programming model. Implementing the IHttpModule interface
allows you to include custom events that participate in every
r e q u e s t m a d e t o y o u r a p p l i c a t i o n . Fo r m o r e i n f o r m a t i o n , s e e
H TT P R u n t i m e S u p p o r t

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
i m p r o v e m e n t s o v e r A S P a n d o t h e r We b d e v e l o p m e n t p l a t f o r m s .
A l l A S P. N E T c o d e i s c o m p i l e d , r a t h e r 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
n e w a p p l i c a t i o n s a n d g a t h e r m e t r i c s o n e x i s t i n g a p p l i c a t i o n s . Fo 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 C a c h i n g Fe a t u r e s a n d A S P. N E T
Optimization
W r i t i n g c u s t o m d e b u g s t a t e m e n t s t o y o u r We b p a g e c a n h e l p
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 Tr a 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
r o o t d i r e c t o r y o f y o u r a p p l i c a t i o n . Fo 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 Tr a 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 We b a p p l i c a t i o n s . Yo u 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 . Fo 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
We b A p p l i c a t i o n S e c u r i t y

A S P. N E T 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
e x t e n d t h e c o n f i g u r a t i o n s c h e m e t o s u i t y o u r r e q u i r e m e n t s . Fo 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 C o n f i g u r a t i o n

Building Applications

The .NET Framework enables powerful new We b - b a s e d


applications and services, including A S P. N E T applications,
W i n d o w s Fo r m s a p p l i c a t i o n s , a n d W i n d o w s s e r v i c e s . T h i s s e c t i o n
contains instructive overviews and detailed, s t e p - b y- s t e p
procedures for creating applications.
This section also includes information on using the .NET
Framework design-time architecture to support visual design
environments for authoring custom components and controls.

Creating ASP.NET Web Applications

Provides the information you need to develop enterprise-class


We 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

I n t r o d u c e s W i n d o w s Fo r m s , t h e n e w o b j e c t - o r i e n t e d f r a m e w o r k
for developing Windows-based applications.

Windows Service Applications

Describes creating, installing, starting, and stopping Windows


system services.

Building Console Applications

Describes writing applications that use the system console for


input and output.

Enhancing Design-Time Support

Describes the .NET Framework's rich design-time architecture


and support for visual design environments.

Debugging and Profiling Applications

Explains how to test and profile .NET Framework applications.

Deploying Applications
Shows how to use the .NET Framework and the common
language runtime to create self-described, self-contained
applications.

Configuring Applications

Explains how developers and administrators can apply settings


to various types of configuration files.

Debugging and Profiling Applications

To debug a .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 possible, for the application and its corresponding
Microsoft Intermediate Language (MSIL). Once a managed
application is debugged, it can be profiled to boost performance.
Profiling evaluates and describes the lines of source code that
generate the most frequently executed code, and how much time
it takes to execute them.

The .NET Framework applications are easily debugged using


Visual Studio . N E T, which handles many of the 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 a command-line


d e b u g g e r.

Microsoft common language runtime Debugger (DbgCLR.exe),


w h i c h i s a W i n d o w s d e b u g g e r.
The .NET Framework namespace System. Diagnostics includes
t h e Tr a 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 Pe r f o r m a n c e 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 to J I T- a t t a c h a debug


engine to a .NET Framework application.
Making an Image Easier to Debug

Shows how to turn JIT tracking on and optimization off to make


an assembly easier to debug.

Enabling Profiling

Shows how to set environment variables to tie 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

W h e n y o u c r e a t e We b Fo r m s p a g e s , y o u c a n u s e t h e s e t y p e s o f
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.

We b s e r v e r c o n t r o l s 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 . We b 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 special-
p u r p o s e c o n t r o l s s u c h a s a c a l e n d a r. 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.

Va l 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 . Yo u 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.
Va l 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 We b Fo r m s p a g e s .
Yo u c a n e m b e d We b Fo r m s u s e r c o n t r o l s i n o t h e r We b Fo r m s
pages, which is an easy way to create menus, toolbars, and
other reusable elements.

Yo u can use all types of controls on the same page. The


following sections provide more detail about A S P. N E T server
controls. Fo r more information about validation controls, see
We b Fo r m s Va l 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 We b 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 a We b Fo r m s 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
o f t h e c o r r e s p o n d i n g e l e m e n t s . Fo r e x a m p l e , H T M L a t t r i b u t e s a r e
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 familiar object-oriented techniques. Each server
control exposes properties that allow you to manipulate the
control's HTML attributes programmatically in server code.

A set of events for which you can write event handlers in much
the same way you would in a client-based form, except that the
event is handled in server code.

The ability to handle events in client script.

Automatic maintenance of the control's state. If the form 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.

S u p p o r t f o r H T M L 4 . 0 s t y l e s i f t h e We b Fo r m s p a g e i s d i s p l a y e d
i n a b r o w s e r t h a t s u p p o r t s c a s c a d i n g s t y l e s h e e t s . Pa s s - t h r o u g h
o f c u s t o m a t t r i b u t e s . Yo u 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
t o a d d b r o w s e r - s p e c i f i c a t t r i b u t e s t o y o u r c o n t r o l s . Fo r d e t a i l s
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 We b Fo r m s Pa g e

Web Server Controls

We b s e r v e r c o n t r o l s a r e a s e c o n d s e t o f c o n t r o l s d e s i g n e d w i t h 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. Fo r example, a
R a d i o B u t t o n L i s t We b 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.

We b s e r v e r c o n t r o l s i n c l u d e t r a d i t i o n a l f o r m c o n t r o l s s u c h a s
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.

We b s e r v e r c o n t r o l s o f f e r a l l o f t h e f e a t u r e s d e s c r i b e d a b o v e f o r
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.
Fo r s o m e c o n t r o l s , t h e a b i l i t y t o d e f i n e y o u r o w n l o o k f o r t h e
control using templates

Fo r s o m e c o n t r o l s , t h e a b i l i t y t o s p e c i f y w h e t h e r a c o n t r o l ' 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.

A t d e s i g n t i m e i n H T M L v i e w, t h e c o n t r o l s a p p e a r i n y o u r p a g e i n
a format such as:

<asp: button attributes run at="server"/>

The attributes in this case are not those of HTML elements.


I n s t e a d , t h e y a r e p r o p e r t i e s o f t h e We b c o n t r o l .

When the We b Fo r m s page runs, the We b server control is


rendered on the page using appropriate HTML, which 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 . Fo r e x a m p l e , a Te x t b o x c o n t r o l
might render as an <INPUT> tag or a < T E X TA R E A > tag,
depending on its properties.
Chapt
er 5
Design
Docume
nt
Design Document

• The entire system is projected with a physical diagram which


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

• The relation upon the system is structure through a conceptual


ER-Diagram, which not only specifics the existential entities but
also the standard relations through which the system exists and
the cardinalities that are necessary for the system state to
continue.

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


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

Data Flow Diagrams

• This Diagram server two purpose.

 Provides an indication of how date is transformed as it


moves through the system.

 Disputes the functions and sub functions that


transforms the dataflow.

• The Data flow diagram provides additional information that is


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

• The description of each function presented in the DFD is


contained is a process specifications called as PSPEC
ER-Diagrams

• The entity Relationship Diagram (ERD) depicts the


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

• The set of primary components that are identified by the


ERD are

 Data object  Relationships

 Attributes  Various types of indicators.

• The primary purpose of the ERD is to represent data


objects and their relationships.

Unified Modeling Language Diagrams

• The unified modeling language allows the software


engineer to express an analysis model using the modeling
notation that is governed by a set of syntactic semantic
and pragmatic rules.

• A UML system is represented using five different views


that describe the system from distinctly different
perspective. Each view is defined by a set of diagram,
which is as follows.

• User Model View

i. This view represents the system from the users


perspective.

ii. The analysis representation describes 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


1. Bank administrators
2. Account Holders or Customers
Bank Administrators: These are the actors that authorize and authenticate the
systems existence. They take care of the entire system internal activities.
They are highly authorized to standardize the transactional states of the
master data.

Login
information

Bank
&branches
registration

Customers
registration


Bank Accounts &
Administrators types
registration

Service type
registration

Transaction
type
registration

Employees
registration
Account holders or customers: There are the actors who statistically work
upon the system with respect to the expected services what they need to
avail. They are mostly restricted on to such areas where query
standardization has the highest priority.

Login
information

View
customer
information

View account
types


Account
Holder Register for
new password

View service
types

Execute fund
transfer

Request
cheque book
Elaborated Diagrams: Bank Administrators

Enter login Authenticate Enter Authenticate


Login screen name login name password password

New banks Collect the Authenticate Register its


registration banks data uniqueness branches Enable
respective
privileges
New customer Collect the Authenticate Authorize &
registration customer data uniqueness authenticate
 New accounts &
relational fields
Store

Collect the Authenticate


type registration accounts data Store
uniqueness

Collect the Authenticate


New service type required data uniqueness Store
registration for services

New transaction Collect the Authenticate


Store
type registration required data uniqueness

New employee Collect the required Authenticate


registration information Store
uniqueness
Account Holder

Enter login Authenticate Enter Authenticate


Login name login name password password
screen

Request for customer Enter the Validate ID Display


information customerID Enable
respective
privileges
Validate Display
Request for Enter the
account type specific type

 Request for new


Enter the old
password
Validate Enter new
password
Confirm

password

Store
Enter the Validate Display
Request for specific type
service types

Enter source Enter destination


account number Account to transfer
Request for find account number
transfer

Validate balance
Request for Raise check book Store
cheque book request-ID
Execut
e
Class Collaboration
Bank branches and service collaboration

Bank Master Bank Branch Master


Bank-ID: number Branch-ID: number
Bank-name: varchar2 Branch-name: varchar2
Address-HQ: varchar2 Branch-Address: varchar2
Operational-desg-ID: varchar2 Operational-desg-ID: varchar2
Any-other-details: varchar2 Any-other-details: varchar2
Insert () Insert ()
Delete () Delete ()
Update () Update ()
Search () Search ()
Validate-desg-ID () Validate-desg-ID ()
Validate-bank-ID ()

Branch Wise Service availability


Service-type-ID: number
Branch-ID: number
Validate-service-type-ID()
Validate-branch-ID ()

Service type Master


Service-typ-ID: number
Service-typ-desc: varchar2
Service-type-abbr: varchar2
Other-service-details: varchar2
Service-start-date: date
Service-int-rate: number
Insert ()
Delete ()
Update ()
Search ()
Customer Account, Account types & accounts status Master

Customer master
Customer account master
Cust-acc-no:number Customer-ID:Number
Cust-ID:number Customer-name:varchar2
Account-branch-ID:Number Customer-address:varchar2
Cust-acc-typ-ID:number Customer-phone:number
Acc-approved-emp-id:number Customer-email:varchar2
Acc-opening-date:date Other-details:varchar2
Opening-balance:number Insert ()
Current-balance:number Delete ()
Acc-status-id:number Update ()
Acc-nominee-name:varchar2 Search ()
Nominee-rel-with-acc-
holder:varchar2
Nominee-address:varchar2 Account type master
Any-other-details:varchar2 Acc-typ-ID:Number
Insert () Account -name:varchar2
Delete () Account-abbr: varchar2
Update () Account-min-bal: number
Search () Account-max-bal: number
Validate-branch-ID () Other-details:varchar2
Validate-acc-typ-id() Insert ()
Validate-app-emp-id() Delete ()
Validate-acc-status-id() Update ()
Validate-cust-ID() Search ()

Bank branches master


Employee master
Branch-Id:number
Employee-number:number Bank-id:Number
Employee-Name:varchar2 Branch-name:varchar2
Employee-address:varchar2 Branch-address:varchar2
Employee-DOB:Date Any-other-details:varchar2
Employee-DOJ:Date Insert ()
Employee-branch-Id:number Delete ()
Insert () Update ()
Delete () Search ()
Update ()
Search ()
Customer transaction, transaction type collaboration

Customer transaction master


Customer account master
Trans-ID:number
Cust-acc-no:number
Cust-acc-no:number
Cust-ID:number
Trans-typ-ID:number
Account-branch-ID:Number
Trans-dat-time:varchar2
Cust-acc-typ-ID:number
Insert ()
Acc-approved-emp-id:number
Delete ()
Acc-opening-date:date
Update ()
Opening-balance:number
Search ()
Current-balance:number
Validate-cust-acc-no ()
Acc-status-id:number
Validate-trans-type-ID ()
Acc-nominee-name:varchar2
Nominee-rel-with-acc-
holder:varchar2
Nominee-address:varchar2
Any-other-details:varchar2
Insert ()
Delete ()
Update ()
Transaction type master Search ()
Transaction-type-ID:number Validate-branch-ID ()
Transaction-typ-Name:varchar2 Validate-acc-typ-id()
Transaction-typ-Abbr:varchar2 Validate-app-emp-id()
Insert () Validate-acc-status-id()
Delete () Validate-cust-ID()
Update ()
Search ()
Sequence Diagrams: customer login sequence

Login
Login Login master
screen master

Login
Accept
log name
Enable the
Validate system
Accept with
password () Validate privileged
access

Fund Transfer Sequence

Fund Customer
transfer account
screen master

Request
for fund
transfer Accept
data ()

Validate acc
number () Store the
information
Cheque book request sequence

Customer
Chequebook account Cheque book
request screen master request master

Request
for
Chequeb
ook Validate
acc-no ()
Generate
Cheque
book-req-ID Store the
() information
Database Tables

1. Banks Master: This table maintains the records of all the banks that
have been integrated onto this system. Each bank is uniquely
identified, with the operational incharge designation.

2. Bank Branches Master: This table specifies the total number of


branches that are managed by the bank. Each brand is associated
with the bank to which it belongs and the operational incharge
designation.

3. Customer Master: This table specifies the records of the customers


who have registered themselves for the account maintenance with
the bank, this entity is used as central consistency for the overall
system, whenever a transaction executes.

4. Account type master: This database contains the records of all the
different types of accounts that are managed by the bank. It
specifies the general rules with which the account balances should
be maintained for each specific account type.

5. Customer accounts master: This database contains the records of


all the customers who have availed and have been granted the
savings bank on the requested accounts facility. The database also
specifies, the employee who has approved the account and also the
account status at any point of time.

6. Account status master: This database contains the records of all


the different statuses an account can have, with respect to the
operational standards upon the accounts of the customer.

7. Customer security master: This database maintains the username


passwords for the customers data, such that he can be
authenticated in a very proper manner, when operating himself
upon the systems.

8. Forgot password question master: This database maintains the


unique questions what the customer can choose for such
circumstances, where he may forget his password.
9. Customer logon history master: This database maintains the
specification of the login standards of the customer as and when he
visits the application site.

10.Service type master: This database provides the information


related to the different kinds of services that are uniquely, identified
by declaring the service type Id as primary key.

11.Customer transaction master: This database provides the


information related to the services that are available with specific to
each bank.

12.Bank wise service availability: This database specifies the actual


related to the services that are available with specific to each bank.

13.Transaction type master: This database specifies the actual


transaction types that exist in the banking sector and provides the
abbreviation for such transaction types.

14.Funds Transfer master: This database helps the user to execute his
fund transfer transaction. The database stores the information of
the source account and the jar set account upon which the transfer
has been executed.

15.Chequebook transaction master: This database maintains the


regular information related to the chequebooks that have been
issued after the customer has requested for them.

16.Chequebook request master: This database maintains the register


information of the chequebooks that have been requested by the
use. Each chequebook request is recorded as cheque-Book-reg-ID,
declared as primary key.

17.Employees master: This database registers the records related to


the different employees who are authorized under the
organization.Each employee is uniquely identified by declaring
employee number as primary key.
Chapter
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.
Chapter
7
Testing &
Debugging
Strategies
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 doesn’t work. Testing is the process of
executing a program with the intent of finding errors.

Testing Objectives
The main objective of testing is to uncover a host of errors, systematically

and with minimum effort and time. Stating formally, we can say,

 Testing is a process of executing a program with the intent of

finding an error.

 A successful test is one that uncovers an as yet undiscovered

error.

 A good test case is one that has a high probability of finding

error, if it exists.

 The tests are inadequate to detect possibly present errors.

 The software more or less confirms to the quality and reliable

standards.
Levels of Testing
In order to uncover the errors present in different phases we have the

concept of levels of testing. The basic levels of testing are as shown

below…

Acceptance
Testing
Client Needs

System Testing
Requirements

Design Integration Testing

Unit Testing
Code

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

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

 Unit Testing
 Link Testing

Unit Testing
Unit testing focuses verification effort on the smallest unit of software i.e. the
module. Using the detailed design and the process specifications testing is
done to uncover errors within the boundary of the module. All modules must
be successful in the unit test before the start of the integration testing
begins.

In this project each service can be thought of a module. There are so many
modules like Login, HWAdmin, MasterAdmin, Normal User, and PManager.
Giving different sets of inputs has tested each module. When developing the
module as well as finishing the development so that each module works
without any error. The inputs are validated when accepting from the user.

In this application developer tests the programs up as system. Software units


in a system are the modules and routines that are assembled and integrated
to form a specific function. Unit testing is first done on modules, independent
of one another to locate errors. This enables to detect errors. Through this
errors resulting from interaction between modules initially avoided.

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

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

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

System Testing
Here the entire software system is tested. The reference document for this
process is the requirements document, and the goal os to see if software
meets its requirements.

Here entire ‘ATM’ has been tested against requirements of project and it is
checked whether all requirements of project have been satisfied or not.

Acceptance Testing
Acceptance Test is performed with realistic data of the client to demonstrate
that the software is working satisfactorily. Testing here is focused on
external behavior of the system; the internal logic of program is not
emphasized.

In this project ‘Network Management Of Database System’ I have collected


some data and tested whether project is working correctly or not.

Test cases should be selected so that the largest number of attributes of an


equivalence class is exercised at once. The testing phase is an important part
of software development. It is the process of finding errors and missing
operations and also a complete verification to determine whether the
objectives are met and the user requirements are satisfied.

White Box Testing


This is a unit testing method where a unit will be taken at a time and tested

thoroughly at a statement level to find the maximum possible errors. I tested


step wise every piece of code, taking care that every statement in the code is

executed at least once. The white box testing is also called Glass Box Testing.

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

Black Box Testing


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

Criteria Satisfied by Test Cases


1) Test cases that reduced by a count that is greater than
one, the number of additional test cases that much be
designed to achieve reasonable testing.

2) Test cases that tell us something about the presence or


absence of classes of errors, rather than an error
associated only with the specific test at hand.
Chapter
8
User
Manual
Installation
• The database as it is developed by oracle 9i can be
installed only by using the export and import concepts.

• Using core java and components like JSP and EJB needs
proper deployment as per general specifications
developed the front end as it.
Chapter
9
Conclusions &
Recommendations
Conclusions And Recommendations

The entire project has been developed and deployed as per the requirements

stated by the user, it is found to be bug free as per the testing standards that

are implemented. Any specification untraced errors will be concentrated in

the coming versions, which are planned to be developed in near future. The

system at present does not take care off the money payment methods, as

the consolidated constructs need SSL standards and are critically to be

initiated in the first face, the application of the credit card transactions is

applied as a developmental phase in the coming days. The system needs

more elaborative technicality for its inception and evolution.


Bibliography:

References for the Project Development Were Taken From the

following Books and Web Sites.

SQL Server

Mastering SQL Server 2000 by Gunderloy, Jorden BPB Publications

Beginning SQL Server 2000 by Thearon Willis wrox publications

Visual Basic .NET

Programming Visual Basic .NET, Mircrosoft Press

VisulaBasic .NET by Mc Donald, Microsoft Press

Potrebbero piacerti anche