Вы находитесь на странице: 1из 68

2 INTRODUCTION TO PROJECT

The Objective of this system is to illustrate the use of Online Weather Forecast. Wind
Rose is used to provide the Weather Reports.
The intent of WIND ROSE is to provide a complete source of graphical weather
information. This is intended to satisfy the needs of common people and it can be a tool
for the casual user as well. The graphics and data are displayed as a meteorologist would
expect to see.
In this WIND ROSE application we can have the detailed explanation pages to
guide them through the various plots, charts and images for the novice user.

KEY GOALS OF THIS PROJECT:

• Fully compatible with Internet standards.


• Allow message Visitors to view the daily Weather Forecast.
• Visitors can give their suggestions about the weather conditions.
• It offers real-time weather data.

Introduction to Modules
• Admin
• User
• Visitors
• Forums

Admin
Admin is the one who is going to maintain all the information related to Weather.
Admin can have the information related to the user like what all the entire transactions
user is doing. This application provides such option to the admin to keep track of entire
information related to the Temperature as well as the information about the users.
User
He can get into system with the authentication and can access all the information
about climatic conditions and weather reports for time-to-time, intimations and
information regarding environmental disorders is provided.

Visitors
Visitors can enter into the module and view the information about the weather
condition time to time anywhere in India in detail.

Forums
The purpose of having the forums in this system is anyone can express their
views for having the better environment. They can discuss or present their views on their
government policies regarding the environment and suggestions are accepted.

3 SYSTEM ANALYSIS

3.1 Definition and reason for Condition Analysis

System analysis will be performed to determine if it is feasible to design an information


based on policies and plans of the organization and on user requirements and to eliminate
the weaknesses of the present system.

3.2 General requirements

1. The new system should be cost effective.


2. To augment management, improve productivity and services.
3. To enhance User/System interface.
4. To improve information qualify and usability.
5. To upgrade system’s reliability, availability, flexibility and growth potential.
Identification of Need

3.3 Existing System

Common people to have the information related to weather and climatic


conditions they are completely dependent on daily magazines or news channels. If they
want to have the information of other places or any disaster this is the only source from
where they can have the information. Obviously this becomes an headache to the people
who wants to have the complete information related to weather or climatic conditions.

3.4 Proposed System

As the Wind Rose project is developed using Asp.Net, HTML and C# it provides a
user friendly graphical user interface which navigates user through out the program by
providing various task related to the Weather forecast.
WIND ROSE can give you the information basing on which you can plan, reduce
costs and risk, and beat the competition. It offers real-time weather data.
The Project ‘WIND ROSE’ gives us the information about climatic conditions
and weather reports for time-to-time, intimations and information regarding
environmental disorders is provided.

This application provides us the complete information basing on the area


selected. If anyone wants to know about the current temperature of any area they can
have the information by visiting this proposed system.
Pollution levels of any area can be known from this application. The
information is to be gathered from satellite and collected data is going to be displayed
accordingly.
This proposed system is going to provide the feature called FORUMS, the
purpose of having the forums in this system is anyone can express their views for having
the better environment. They can discuss or present their views on their government
policies regarding the environment and suggestions are accepted.
Key Goals of This Project

• Fully compatible with Internet standards.


• Allow message Visitors to view the daily Weather Forecast.
• Visitors can give their suggestions about the weather conditions.

3.5 Feasibility Study

Technical Feasibility

Evaluating the technical feasibility is the trickiest part of a feasibility study. This
is because, at this point in time, not too many detailed design of the system, making it
difficult to access issues like performance, costs on (on account of the kind of technology
to be deployed) etc. A number of issues have to be considered while doing a technical
analysis.

1. Understand the different technologies involved in the proposed system

Before commencing the project, we have to be very clear about what are the
technologies those are required for the development of new system.

2. Find out whether the organization currently possesses the required technologies

Is the required technology available with the organization?


If so is the capacity sufficient?
For instance – “Will the current printer be able to handle the new reports and
forms required for the new system?”

OPERATIONAL FEASIBILITY

Proposed projects are beneficial only if they can be turned into information
systems that will meet the organizations operating requirements. Simply stated, this test
of feasibility asks if the system will work when it is developed and installed. Are there
major barriers to Implementation? Here are questions that will help test the operational
feasibility of a project:
• Is there sufficient support for the project from management from users? If
the current system is well liked and used to the extent that persons will not be
able to see reasons for change, there may be resistance.
• Are the current business methods acceptable to the user? If they are not,
Users may welcome a change that will bring about a more operational and useful
systems.
• Have the user been involved in the planning and development of the project?
Early involvement reduces the chances of resistance to the system and in
General and increases the likelihood of successful project.

Since the proposed system was to help reduce the hardships encountered
In the existing manual system, the new system was considered to be operational feasible.
ECONOMIC FEASIBILITY

Economic feasibility attempts 2 weigh the costs of developing and implementing


a new system, against the benefits that would accrue from having the new system in
place. This feasibility study gives the top management the economic justification for the
new system.
A simple economic analysis which gives the actual comparison of costs and
benefits are much more meaningful in this case. In addition, this proves to be a useful
point of reference to compare actual costs as the project progresses. There could be
various types of intangible benefits on account of automation. These could include
increased customer satisfaction, improvement in product quality better decision making
timeliness of information, expediting activities, improved accuracy of operations, better
documentation and record keeping, faster retrieval of information, better employee
morale.

Problem Specifications
Further Drawbacks of the Existing System

The following are the drawbacks of the existing manual System.

Time Delay
To know the information about the climatic conditions up to date or time to time people
has to wait for news magazines or channels. It’s a time taking process to have the
information.

Redundancy
As the information provided by them is restricted to some extent and later information is
not available for any one.

Accuracy
Since the information available is taken by the people who doesn’t have the knowledge
related to environment.

3.6 Requirement Specifications

The software, Wind Rose, is designed to give us the information about climatic
conditions and weather reports for time-to-time, intimations and information regarding
environmental disorders is provided

INTRODUCTION

Purpose

The main purpose for preparing this document is to give a general insight into the
analysis and requirements of the existing system or situation and for determining the
operating characteristics of the system.

Scope
This Document plays a vital role in the development life cycle (SDLC) and also it
describes the complete requirements of the system. It is meant for use by the developers
and will be the basic during testing phase. Any changes made to the requirements in the
future will have to go through formal change approval process.

Developers Responsibilities Overview

1) Developing the system, which meets the SRS and solving all the requirements of
the system?

2) Demonstrating the system and installing the system at client's location after the
acceptance testing is successful.

3) Submitting the required user manual describing the system interfaces to work on
it and also the documents of the system.

4) Conducting any user training that might be needed for using the system.

5) Maintaining the system for a period of one year after installation.

Functional Requirements

Inputs

The major inputs for this application can be categorized module -wise. Basically all the
information is managed by the software and in order to access the information one has to
produce their identity by entering the user-id and password. Every user has their own
domain of access beyond which the access is dynamically refrained rather denied.

Output

The major outputs of this system are user details and services of different departments.
Links are created dynamically to meet the requirements on demand. Reports, as it is
obvious, carry the gist of the whole information that flows across all the services.

This application must be able to produce output at different modules for different
inputs.

Performance Requirements
Performance is measured in terms of reports generated according to the requirements.

3.7 Introduction to Modules


• Admin
• User
• Visitors
• Forums

Admin
Admin is the one who is going to maintain all the information related to Weather.
Admin can have the information related to the user like what all the entire transactions
user is doing. This application provides such option to the admin to keep track of entire
information related to the Temperature as well as the information about the users.

User
He can get into system with the authentication and can access all the information
about climatic conditions and weather reports for time-to-time, intimations and
information regarding environmental disorders is provided.

Visitors
Visitors can enter into the module and view the information about the weather
condition time to time anywhere in India in detail.

Forums
The purpose of having the forums in this system is anyone can express their
views for having the better environment. They can discuss or present their views on their
government policies regarding the environment and suggestions are accepted
3.8 Hardware Requirements

Processor : Intel Pentium III or more

Ram : 256 MB or more

Cache : 512 KB

Hard disk : 16 GB hard disk recommended for primary partition

Software Requirements

Opera ting system : Windows XP

Front End Software : ASP.NET & C#

Back End Software : SQL - SERVER

Servers : IIS Server

4. System Design

SOFTWARE ENGINEERING PARADIGM APPLIED- (RAD-MODEL)

The two design objectives continuously sought by developers are reliability and
maintenance.
Reliable System
There are two levels of reliability. The first is meeting the right requirements. A
careful and through systems study is needed to satisfy this aspect of reliability. The
second level of systems reliability involves the actual working delivered to the user. At
this level, the systems reliability is interwoven with software engineering and
development. There are three approaches to reliability.

1. Error avoidance: Prevents errors from occurring in software.


2. Error detection and correction: In this approach errors are recognized whenever
they are encountered and correcting the error by effect of error, of the system does not
fail.
3. Error tolerance: In this approach errors are recognized whenever they occur, but
enable the system to keep running through degraded perform or by applying values
that instruct the system to continue process.

Maintenance:
While working it is the Key to reduce the need for maintenance, if possible to do
essential tasks.
1. More accurately defining user requirement during system development.
2. Assembling better systems documentation.
3. Using more effective methods for designing, processing, login and communicating
information with project team members.
4. Making better use of existing tools and techniques.
5. Managing system engineering process effectively.

Output Design
One of the most important factors of an information system for the user is the
output the system produces. Without the quality of the output, the entire system may
appear unnecessary that will make us avoid using it possibly causing it to fail. Designing
the output should process the in an organized well throughout the manner. The right
output must be developed while ensuring that each output element is designed so that
people will find the system easy to use effectively.
The term output applying to information produced by an information system
whether printed or displayed while designing the output we should identify the specific
output that is needed to information requirements select a method to present the
formation and create a document report or other formats that contains produced by the
system.

Types of output
Whether the output is formatted report or a simple listing of the contents of a file, a
computer process will produce the output.

• A Report
• A Document
• A Message
• Retrieval from a data store
• Transmission from a process or system activity
• Directly from an output sources

Layout Design
It is an arrangement of items on the output medium. The layouts are building a
mock up of the actual reports or document, as it will appear after the system is in
operation. The output layout has been designated to cover information. The outputs are
presented in the appendix.

Input design and control


Input specifications describe the manner in which data enter the system for
processing. Input design features will ensure the reliability of the systems and produce
results from accurate data, or thus can be
result in the production of erroneous information. The input design also determines
whenever the user can interact efficiently with this system.

Objectives of input design


Input design consists of developing specifications and procedures for data
preparation, the steps necessary to put transaction data into a usable from for
processing and data entry, the activity of data into the computer processing. The five
objectives of input design are:

• Controlling the amount of input


• Avoiding delay
• Avoiding error in data
• Avoiding extra steps
• Keeping the process simple

Controlling the amount of input


Data preparation and data entry operation depend on people, because labour costs are
high, the cost of preparing and entering data is also high. Reducing data requirement,
input requirement the speed of entire process from data capturing to processing will
increase to provide results for users.

Avoiding delay
The processing delay resulting from data preparation or data entry operations is called
bottlenecks. Avoiding bottlenecks should be one objective of input.

Avoiding errors
Through input validation we control the errors in the input data.

Avoiding extra steps


The designer should avoid the input design that cause extra steps in processing saving
or adding a single step in large number of transactions saves a lot of processing time
or takes more time to process.

Keeping process simple:


If controls are more people may feel difficult in using the systems. The best-designed
system fits the people who use it in a way that is comfortable for them.

4. 2 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.
UNIFIED MODELLING LANGUAGE
Use Case:

Use case is a description of a set of sequence of actions that a system performs


that yields an observable result of value to particular things in a model.
Graphically, Use Case is rendered as an ellipse with dashed lines, usually
including only its name as shown below.

RELATIONSHIPS IN THE UML:

There are four kinds of relationships in the UML:


1. Dependency
2. Association
3. Generalization
4. Realization

USE CASES
Use Case diagrams are one of the five diagrams in the UML for modeling the
dynamic aspects of systems(activity diagrams, sequence diagrams, state chart
diagrams and collaboration diagrams are the four other kinds of diagrams in the
UML for modeling the dynamic aspects of systems). Use Case diagrams are
central to modeling the behavior of the system, a sub-system, or a class. Each one
shows a set of use cases and actors and relationships.

INTERACTION DIAGRAMS

An Interaction diagram shows an interaction, consisting of a set of objects and


their relationships, including the messages that may be dispatched among them.
Interaction diagrams are used for modeling the dynamic aspects of the system.

SEQUENCE DIAGRAMS:

A sequence diagram is an interaction diagram that emphasizes the time ordering


of the messages. Graphically, a sequence diagram is a table that shows objects
arranged along the X-axis and messages, ordered in increasing time, along the Y-
axis.

ACTIVITY DIAGRAM
An Activity Diagram is essentially a flow chart showing flow of control from
activity to activity. They are used to model the dynamic aspects of as system.

STATE CHART DIAGRAMS


A state chart diagram shows a state machine. State chart diagrams are used to
model the dynamic aspects of the system. For the most part this involves
modeling the behavior of the reactive objects. A reactive object is one whose
behavior is best characterized by its response to events dispatched from outside
its context. A reactive object has a clear lifeline whose current behavior is affected
by its past.

USE CASE DIAGRAM


End User

Admin
EndUser

WindRoseUser

Visitors

Forums

Services CitizenInformation
ADMIN

DataBase
Admin
Login

CheckWithTheDatabase

CreateWindroseUserLogins,Visitor
Logins

Logout

WIND ROSE USER

WindroseUser DataBase
Login

CheckwithTheDataBase

UploadTheImages,Tempareture

Logout
VISITORS

Visitor Login DataBase

CheckWithTheDataBase

ViewTheUserDetails

ViewTheTemperatureDetails

Logout

FORUMS

Forums DataBase
Login

CheckWithTheDataBase

GiveHisViewForBetterInvironment

NewUseCase4
CLASS DIAGRAMS

UserLogin
Uname : Varchar
password : Varchar

Login()

WindRoseUser Visitor
Admin Uname : Varchar Uname : Varchar
Password : Varchar Password : Varchar
Uname : Varchar
Password : Varchar ViewWeatherInformation() GiveFeedback()
UploadImages() Viewtemperature()
CreateUserID() UploadTemperature()
CreateUserPassword()
ViewWeatherInformation()

Feedback
Weather name1 : Varchar
Images Subject : Varchar
Id : Varchar
Id : Varchar Feedback;Varchar
City : Varchar
Min : decimal Path : Varchar
Date : Integer GetFeedback()
Max : Decimal
Description : Varchar Type : Varchar
Images : Integer
Date : Integer GetImages()

GetWeatherInformation()

ACTIVITY DIAGRAMS
SYSTEM LEVEL

Login

Check with database for user validation

Connected to WindRose System


ADMIN

Login

Create User Logins

View Temperature details

VISITOR

Login

Check with database for user validation

View Weather Information

Give Feedback
SEQUENCE DIAGRAM

Enduser Administrator User Visitors Forums

ConnectedToSite

UploadTheImages,Tempareture

ProccessTheRequest

ViewTheWeatherInformation
ProccessTherequest

FeedBack

ProccessTheRequest

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

ER DIAGRAM

Password
Useri Visitor Id creation
d
Admin Form

Visitor
Id

Personal
Information

View Weather
Information

Weather
Information

4.4 DATA DICTIONARY

NORMALIZATION

It is a process of converting a relation to a standard form. The process is used to


handle the problems that can arise due to data redundancy i.e. repetition of data in the
database, maintain data integrity as well as handling problems that can arise due to
insertion, updation, deletion anomalies.

Decomposing is the process of splitting relations into multiple relations to


eliminate anomalies and maintain anomalies and maintain data integrity. To do this we
use normal forms or rules for structuring relation.

Insertion anomaly
Unable to add data to database because of absence of other data.

Deletion anomaly

Unintended loss of data due to deletion of other data.

Update anomaly

Data inconsistency resulting from data redundancy and partial update

Normal Forms

These are the rules for structuring relations that eliminate anomalies.

First Normal Form

A relation is said to be in first normal form if the values in the relation are atomic
for every attribute in the relation. By this we mean simply that no attribute value can be a
set of values or, as it is sometimes expressed, a repeating group.

Second Normal Form


A relation is said to be in second Normal form is it is in first normal form and it
should satisfy any one of the following rules.

1) Primary key is a not a composite primary key


2) No non key attributes are present
3) Every non key attribute is fully functionally dependent on full set of primary key.

Third Normal Form


A relation is said to be in third normal form if their exits no transitive
dependencies.
Transitive Dependency

If two non key attributes depend on each other as well as on the primary key then
they are said to be transitively dependent.

The above normalization principles were applied to decompose the data in


multiple tables thereby making the data to be maintained in a consistent state.

DATABASE TABLES

TABLE NAME: -Image Path


TABLE DESCRIPTION: This Table holds information about Image Details

SNO COLUMN NAME DATATYPE SIZE CONSRTAINT


1. Id INT - ALLOW NULL

2. ImageDescription VARCHAR 50 ALLOW NULL

3. ImageURL VARCHAR 50 ALLOW NULL

TABLE NAME: -video path


TABLE DESCRIPTION: This Table holds information about Videos

SNO COLUMN NAME DATATYPE SIZE CONSRTAINT


1. Id INT - ALLOW NULL

2. VideoUrl VARCHAR MAX ALLOW NULL


TABLE NAME: -windrose_adminlogin
TABLE DESCRIPTION: This Table holds information about Videos

SNO COLUMN NAME DATATYPE SIZE CONSRTAINT


1. Username VARCHAR 50 ALLOW NULL

2. Password VARCHAR 50 ALLOW NULL

4.5 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
Administrator
Creates user,
visitors login

View weather,
Users information View information about
weather condition
Wind Rose

Generate weather
reports for time-to
time Can give their views
View weather reports for better environment

End User Visitors

4.6 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.
5 SOFTWARE DEVELOPMENT ENVIRONMENT

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 locally, executed locally but Internet-
distributed, or executed remotely.
• To provide a code-execution environment that minimizes software deployment
and versioning conflicts.
• To provide a code-execution environment that guarantees safe execution of
code, including code created by an unknown or semi-trusted third party.
• To provide a code-execution environment that eliminates the performance
problems of scripted or interpreted environments.
• To make the developer experience consistent across widely varying types of
applications, such as Windows-based applications and Web-based
applications.
• 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 library. The common language runtime is the
foundation of the .NET Framework. You can think of the runtime as an agent that
manages code at execution time, providing core services such as memory
management, thread management, and remoting, while also enforcing strict type
safety and other forms of code accuracy that ensure security and robustness. In fact,
the concept of code management is a fundamental principle of the runtime. Code
that targets the runtime is known as managed code, while code that does not target
the runtime is known as unmanaged code. The class library, the other main
component of the .NET Framework, is 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 applications based on
the latest innovations provided by ASP.NET, such as Web Forms and XML Web
services.
The .NET Framework can be hosted by unmanaged components that load the
common language runtime into their processes and initiate the execution of managed
code, thereby creating a software environment that can exploit both managed and
unmanaged features. The .NET Framework not only provides several runtime hosts,
but also supports the development of third-party runtime hosts.
For example, ASP.NET hosts the runtime to provide a scalable, server-side
environment for managed code. ASP.NET works directly with the runtime to enable
Web Forms applications and XML Web 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 Forms controls in
HTML documents. Hosting the runtime in this way makes managed mobile code
(similar to Microsoft® ActiveX® controls) possible, but with significant improvements
that only managed code can offer, such as semi-trusted execution and secure
isolated file storage.

Features of the Common Language Runtime

The common language runtime manages memory, 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.
With regards to security, managed components are awarded varying degrees
of trust, depending on a number of factors that include their origin (such as the
Internet, enterprise network, or local computer). This means that a managed
component might or might not be able to perform file-access operations, registry-
access operations, or other sensitive functions, even if it is being used in the same
active application.
The runtime enforces code access security. For example, users can trust that
an executable embedded in a Web page can play 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 featuring 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 type safety.
In addition, the managed environment of the runtime eliminates many
common software issues. For 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 productivity. For example,
programmers can write applications in their development language of choice, yet
take full advantage of the runtime, the class library, 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 yesterday. 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 locality-of-reference to further increase performance.
Finally, 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 integration, type safety,
and high performance code execution.
• Provides an object-oriented model that supports the complete implementation
of many programming languages.
• Defines rules that languages must follow, which helps ensure that objects
written in different languages can interact with each other.

Common Type System Overview

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


interoperability. However, this support does not guarantee that developers using
another programming language can use code you write. To ensure that you can
develop managed code that can be fully used by developers using any programming
language, a set of language features and rules for using them called the Common
Language Specification (CLS) has been defined. Components that follow these rules
and expose only CLS features are considered CLS-compliant.
This section describes the common language runtime's built-in support for
language interoperability and explains the role that the CLS plays in enabling
guaranteed cross-language interoperability. CLS features and rules are identified and
CLS compliance is discussed.

Language Interoperability

Describes built-in support for cross-language interoperability and introduces


the Common Language Specification.
What is the Common Language Specification?

Explains the need for a set of features common to all languages and identifies CLS
rules and features.

Writing CLS-Compliant Code

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

Common Type System

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

Metadata and Self-Describing Components

Explains the common language runtime's mechanism for describing a type and
storing that information with the type itself.

. NET Framework Class Library

The .NET Framework class library is a collection of reusable types that tightly
integrate with the common language runtime. The class library is object oriented,
providing types from which your own managed code can derive functionality. This not
only makes the .NET Framework types easy to use, but also reduces the time
associated with learning new features of the .NET Framework. In addition, third-
party components can integrate seamlessly with classes in the .NET Framework.
For example, the .NET Framework collection classes implement a set of
interfaces that you can use to develop your own collection classes. Your collection
classes will blend seamlessly with the classes in the .NET Framework.
As you would expect from an object-oriented class library, the .NET
Framework types enable you to accomplish a range of common programming tasks,
including tasks such as string management, data collection, database connectivity,
and file access. In addition to these common tasks, the class library includes types
that support a variety of specialized development scenarios. For example, you can
use the .NET Framework to develop the following types of applications and services:
Console applications
• Scripted or hosted applications.
• Windows GUI applications (Windows Forms).
• ASP.NET applications.
• XML Web services.
• Windows services.
For example, the Windows Forms classes are a comprehensive set of reusable
types that vastly simplify Windows GUI development. If you write an ASP.NET Web
Form application, you can use the Web Forms classes.

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 (now
replaced by the managed Windows Forms control) deployed over the Internet as a
Web page. This application is much like other client applications: it is executed
natively, has access to local resources, and includes graphical elements.
In the past, developers created such applications using C/C++ in conjunction
with the Microsoft Foundation Classes (MFC) or with a rapid application development
(RAD) environment such as Microsoft® Visual Basic®. The .NET Framework
incorporates aspects of these existing products into a single, consistent development
environment that drastically simplifies the development of client applications.
The Windows Forms classes contained in the .NET Framework are designed to
be used for GUI development. You can easily create command windows, buttons,
menus, toolbars, and other screen elements with the flexibility necessary to
accommodate shifting business needs.
For example, the .NET Framework provides simple properties to adjust visual
attributes associated with forms. In some cases the underlying operating system
does not support changing these attributes directly, 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.
Unlike ActiveX controls, Windows Forms controls have semi-trusted access to
a user's computer. This means that binary or natively 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
code access security, many applications that once needed to be installed on a user's
system can now be safely deployed through the Web. Your applications can
implement the features of a local application while being deployed like a Web page.

Managed Execution Process

The managed execution process includes the following steps:

Choosing a Complier

To obtain the benefits provided by the common language runtime, you must use one
or more language compilers that target the runtime.

Compiling your code to Microsoft Intermediate Language (MSIL)

Compiling translates your source code into MSIL and generates the required
metadata.

Compiling MSIL to native code

At execution time, a just-in-time (JIT) compiler translates the MSIL into native code.
During this compilation, code must pass a verification process that examines the
MSIL and metadata to find out whether the code can be determined to be type safe.

Executing your code

The common language runtime provides the infrastructure that enables execution to
take place as well as a variety of services that can be used during execution.

Assemblies Overview

Assemblies are a fundamental part of programming with the .NET Framework. 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).
It forms a security boundary. An assembly is the unit at which permissions
are requested and granted. For more information about security boundaries as they
apply to assemblies, see Assembly Security Considerations
It forms a type boundary. Every type's identity includes the name of the
assembly in which it resides. A type called MyType loaded in the scope of one
assembly is not the same as a type called MyType loaded in the scope of another
assembly.
It forms a reference scope boundary. 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 assembly. The
manifest also enumerates other assemblies on which it depends.
It forms a version boundary. The assembly is the smallest version able unit in
the common language runtime; all types and resources in the same assembly are
versioned as a unit. The assembly's manifest describes the version dependencies you
specify for any dependent assemblies. For more information about versioning, see
Assembly Versioning
It forms a deployment unit. When an application starts, only the assemblies
that the application initially calls must be present. Other assemblies, such as
localization resources or assemblies containing utility classes, can be retrieved on
demand. This allows applications to be kept simple and thin when first downloaded.
For more information about deploying assemblies, see Deploying Applications
It is the unit at which side-by-side execution is supported. For more
information about running multiple versions of the same assembly, see Side-by-Side
Execution
Assemblies can be static or dynamic. Static assemblies can include .NET
Framework types (interfaces and classes), as well as resources for the assembly
(bitmaps, JPEG files, resource files, and so on). Static assemblies are stored on disk
in PE files. You can also use the .NET Framework to create dynamic assemblies,
which are run directly from memory and are not saved to disk before execution. You
can save dynamic assemblies to disk after they have executed.
There are several ways to create assemblies. You can use development tools, such as
Visual Studio .NET, that you have used in the past to create .dll or .exe files. You can
use tools provided in the .NET Framework SDK to create assemblies with modules
created in other development environments. You can also use common language
runtime APIs, such as Reflection. Emit, to create dynamic assemblies.
Server Application Development

Server-side applications in the managed world are implemented through


runtime hosts. Unmanaged applications host the common language runtime, which
allows your custom managed code to control the behavior of the server. This model
provides you with all the features of the common language runtime and class library
while gaining the performance and scalability of the host server.
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

ASP.NET is the hosting environment that enables developers to use the .NET
Framework to target Web-based applications. However, ASP.NET is more than just a
runtime host; it is a complete architecture for developing Web sites and Internet-
distributed objects using managed code. Both Web Forms and XML Web services use
IIS and ASP.NET as the publishing mechanism for applications, and both have a
collection of supporting classes in the .NET Framework.
XML Web services, an important evolution in Web-based technology, are
distributed, server-side application components similar to common Web sites.
However, unlike Web-based applications, XML Web services components have no UI
and are not targeted for browsers such as Internet Explorer and Netscape Navigator.
Instead, XML Web services consist of reusable software components designed to be
consumed by other applications, such as traditional client applications, Web-based
applications, or even other XML Web services. As a result, XML Web services
technology is rapidly moving application development and deployment into the highly
distributed environment of the Internet.
If you have used earlier versions of ASP technology, you will immediately
notice the improvements that ASP.NET and Web Forms offers. For example, you can
develop Web Forms pages in any language that supports the .NET Framework. In
addition, your code no longer needs to share the same file with your HTTP text
(although it can continue to do so if you prefer). Web Forms pages execute in native
machine language because, like any other managed application, they take full
advantage of the runtime. In contrast, unmanaged ASP pages are always scripted
and interpreted. ASP.NET pages are faster, more functional, and easier to develop
than unmanaged ASP pages because they interact with the runtime like any
managed application.
The .NET Framework also provides a collection of classes and tools to aid in
development and consumption of XML Web services applications. XML Web services
are built on standards such as SOAP (a remote procedure-call protocol), XML (an
extensible data format), and WSDL (the Web Services Description Language). The
.NET Framework is built on these standards to promote interoperability with non-
Microsoft solutions.
For example, the Web Services Description Language tool included with the
.NET Framework SDK can query an XML Web service published on the Web, parse its
WSDL description, and produce C# or Visual Basic source code that your application
can use to become a client of the XML Web service. The source code can create
classes derived from classes in the class library that handle all the underlying
communication using SOAP and XML parsing. Although you can use the class library
to consume XML Web services directly, the Web Services Description Language tool
and the other tools contained in the SDK facilitate your development efforts with the
.NET Framework.
If you develop and publish your own XML Web service, the .NET Framework
provides a set of classes that conform to all the underlying communication
standards, such as SOAP, 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.
Finally, like Web Forms pages in the managed environment, your XML Web
service will run with the speed of native machine language using the scalable
communication of IIS.

Programming with the .NET Framework

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

Accessing Data with ADO.NET


Describes the ADO.NET architecture and how to use the ADO.NET classes to
manage application data and interact with data sources including Microsoft SQL
Server, OLE DB data sources, and XML.
Accessing Objects in Other Application Domains using .NET Remoting
Describes the various communications methods available in the .NET Framework for
remote communications.

Accessing the Internet

Shows how to use Internet access classes to implement both Web- and Internet-
based applications.

Creating Active Directory Components

Discusses using the Active Directory Services Interfaces.

Creating Scheduled Server Tasks

Discusses how to create events that are raised on reoccurring intervals.

Developing Components

Provides an overview of component programming and explains how those concepts


work with the .NET Framework.

Developing World-Ready Applications

Explains the extensive support the .NET Framework provides for developing
international applications.

Discovering Type Information at Runtime

Explains how to get access to type information at run time by using reflection.

Drawing and Editing Images


Discusses using GDI+ with the .NET Framework.
Emitting Dynamic Assemblies
Describes the set of managed types in the System.Reflection.Emit namespace.

Employing XML in the .NET Framework

Provides an overview to a comprehensive and integrated set of classes that work


with XML documents and data in the .NET Framework.
Extending Metadata Using Attributes

Describes how you can use attributes to customize metadata.

Generating and Compiling Source Code Dynamically in Multiple Languages

Explains the .NET Framework SDK mechanism called the Code Document Object
Model (CodeDOM) that enables the output of source code in multiple programming
languages.

Grouping Data in Collections

Discusses the various collection types available in the .NET Framework, including
stacks, queues, lists, arrays, and structs.
Handling and Raising Events

Provides an overview of the event model in the .NET Framework.

Handling and Throwing Exceptions

Describes error handling provided by the .NET Framework and the fundamentals of
handling exceptions.
Hosting the Common Language Runtime

Explains the concept of a runtime host, which loads the runtime into 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 you can program to
use memory more efficiently.
Programming with Application Domains and Assemblies

Describes how to create and work with assemblies and application domains.

Securing Applications
Describes .NET Framework code access security, role-based security, security policy,
and security tools.
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

Discusses how to create and optimize ASP.NET Web applications.

Creating Windows Forms Applications

Describes how to create Windows Forms and Windows controls applications.


Building Console Applications

Discusses how to create console-based .NET applications.

Introduction to ASP.NET

ASP.NET is more than the next version of Active Server Pages (ASP); it is a
unified Web development platform that provides the services necessary for
developers to build enterprise-class Web applications. While ASP.NET is largely
syntax compatible with ASP, it also provides a new programming model and
infrastructure for more secure, scalable, and stable applications. You can feel free to
augment your existing ASP applications by incrementally adding ASP.NET
functionality to them.
ASP.NET is a compiled,. NET-based environment; you can author applications
in any .NET compatible language, including Visual Basic .NET, C#, and JScript .NET.
Additionally, the entire .NET Framework is available to any ASP.NET application.
Developers can easily access the benefits of these technologies, which include the
managed common language runtime environment, type safety, inheritance, and so
on.
ASP.NET has been designed to work seamlessly with WYSIWYG HTML editors
and other programming tools, including Microsoft Visual Studio .NET. Not only does
this make Web development easier, but it also provides all the benefits that these
tools have to offer, including a GUI that developers can use to drop server controls
onto a Web page and fully integrated debugging support.
Developers can choose from the following two features when creating an
ASP.NET application, Web Forms and Web services, or combine these in any way they
see fit. Each is supported by the same infrastructure that allows you to use
authentication schemes, cache frequently used data, or customize your application's
configuration, to name only a few possibilities.
Web Forms allows you to build powerful forms-based Web pages. When
building these pages, you can use ASP.NET server controls to create common UI
elements, and program them for common tasks. These controls allow you to rapidly
build a Web Form out of reusable built-in or custom components, simplifying the
code of a page. For more information, see Web Forms Pages. For information on how
to develop ASP.NET server controls, see Developing ASP.NET Server Controls
An XML Web service provides the means to access server functionality
remotely. Using Web services, businesses can expose programmatic interfaces to
their data or business logic, which in turn can be obtained and manipulated by client
and server applications. XML Web services enable the exchange of data in client-
server or server-server scenarios, using standards like HTTP and XML messaging to
move data across firewalls. XML Web services are not tied to a particular component
technology or object-calling convention. As a result, programs written in any
language, using any component model, and running on any operating system can
access XML Web services. For more information, see XML Web Services and XML Web
Service Clients Created Using ASP.NET
Each of these models can take full advantage of all ASP.NET 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 ASP.NET programming model will
seem very familiar to you. However, the ASP.NET object model has changed
significantly from ASP, making it more structured and object-oriented. Unfortunately
this means that ASP.NET is not fully backward compatible; almost all existing ASP
pages will have to be modified to some extent in order to run under ASP.NET. In
addition, major changes to Visual Basic .NET mean that existing ASP pages written
with Visual Basic Scripting Edition typically will not port directly to ASP.NET. In most
cases, though, the necessary changes will involve only a few lines of code. For more
information, see Migrating from ASP to ASP.NET
Accessing databases from ASP.NET applications is an often-used technique for
displaying data to Web site visitors. ASP.NET makes it easier than ever to access
databases for this purpose. It also allows you to manage the database from your
code. For more information, see Accessing Data with ASP.NET
ASP.NET provides a simple model that enables Web developers to write logic
that runs at the application level. Developers can write this code in the global.asax
text file or in a compiled class deployed as an assembly. This logic can include
application-level events, but developers can easily extend this model to suit the
needs of their Web application. For more information, see ASP.NET Applications
ASP.NET provides easy-to-use application and session-state facilities that are
familiar to ASP developers and are readily compatible with all other .NET Framework
APIs. For more information, see ASP.NET State Management
For advanced developers who want to use APIs as powerful as the ISAPI
programming interfaces that were included with previous versions of ASP, ASP.NET
offers the IHttpHandler and IHttpModule interfaces. Implementing the IHttpHandler
interface gives you a means of interacting with the low-level request and response
services of the IIS Web 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 request made to your
application. For more information, see HTTP Runtime Support
ASP.NET takes advantage of performance enhancements found in the .NET
Framework and common language runtime. Additionally, it has been designed to
offer significant performance improvements over ASP and other Web development
platforms. All ASP.NET code is compiled, rather than interpreted, which allows early
binding, strong typing, and just-in-time (JIT) compilation to native code, to name
only a few of its benefits. ASP.NET is also easily factorable, meaning that developers
can remove modules (a session module, for instance) that are not relevant to the
application they are developing. ASP.NET also provides extensive caching services
(both built-in services and caching APIs). ASP.NET also ships with performance
counters that developers and system administrators can monitor to test new
applications and gather metrics on existing applications. For more information, see
ASP.NET Caching Features and ASP.NET Optimization
Writing custom debug statements to your Web page can help immensely in
troubleshooting your application's code. However, 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. ASP.NET offers the Trace 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 tracing also
appends details about a request to the page, or, if you so specify, to a custom trace
viewer that is stored in the root directory of your application. For more information,
see ASP.NET Trace
The .NET Framework and ASP.NET provide default authorization and
authentication schemes for Web applications. You can easily remove, add to, or
replace these schemes, depending upon the needs of your application. For more
information, see ASP.NET Web Application Security
ASP.NET configuration settings are stored in XML-based files, which are
human readable and writable. Each of your applications can have a distinct
configuration file and you can extend the configuration scheme to suit your
requirements. For more information, see ASP.NET Configuration
Building Applications

The .NET Framework enables powerful new Web-based applications and


services, including ASP.NET applications, Windows Forms applications, and Windows
services. This section contains instructive overviews and detailed, step-by-step
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 Web applications with
ASP.NET.

Creating Windows Forms Applications

Introduces Windows Forms, the new object-oriented framework for developing


Windows-based applications.

Windows Service Applications

Describes creating, installing, starting, and stopping Windows system services.

Building Console Applications

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

Enhancing Design-Time Support

Describes the .NET Framework's rich design-time architecture and support for visual
design environments.

Debugging and Profiling Applications

Explains how to test and profile .NET Framework applications.

Deploying Applications

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

Explains how developers and administrators can apply settings to various types of
configuration files.

Debugging and Profiling Applications

To 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
.NET, 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 debugger.


Microsoft common language runtime Debugger (DbgCLR.exe), which is a Windows
debugger.
The .NET Framework namespace System. Diagnostics includes the Trace and
Debug classes for tracing execution flow, and the Process, Event Log, and
Performance Counter classes for profiling code. The Cordbg.exe command-line
debugger can be used to debug managed code from the command-line interpreter.
DbgCLR.exe is a debugger with the familiar Windows interface for debugging
managed code. It is located in the Microsoft.NET/FrameworkSDK/GuiDebug folder.

Enabling JIT-attach Debugging

Shows how to configure the registry to JIT-attach 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 application to a


profiler.

Introduction to ASP.NET Server Controls

When you create Web Forms pages, you can use these types of controls:

HTML server controls HTML elements exposed to the server so you can
program them. HTML server controls expose an object model that maps very closely
to the HTML elements that they render.
Web server controls Controls with more built-in features than HTML server
controls. Web server controls include not only form-type controls such as buttons
and text boxes, but also special-purpose controls such as a calendar. Web server
controls are more abstract than HTML server controls in that their object model does
not necessarily reflect HTML syntax.
Validation controls Controls that incorporate logic to allow you to test a
user's input. You attach a validation control to an input control to test what the user
enters for that input control. Validation controls are provided to allow you to check
for a required field, to test against a specific value or pattern of characters, to verify
that a value lies within a range, and so on.
User controls Controls that you create as Web Forms pages. You can embed
Web Forms user controls in other Web Forms pages, which is an easy way to create
menus, toolbars, and other reusable elements.
You can use all types of controls on the same page. The following sections
provide more detail about ASP.NET server controls. For more information about
validation controls, see Web Forms Validation for information about user controls;
see Introduction to Web User Controls

HTML Server Controls

HTML server controls are HTML elements containing attributes that make
them visible to — and programmable on — the server. By default, HTML elements on
a Web Forms page are not available to the server; they are treated as opaque text
that is passed through to the browser. However, by converting HTML elements to
HTML server controls, you expose them as elements you can program on the server.
The object model for HTML server controls maps closely to that of the corresponding
elements. For example, HTML attributes are exposed in HTML server controls as
properties.
Any HTML element on a page can be converted to an HTML server control.
Conversion is a simple process involving just a few attributes. As a minimum, an
HTML element is converted to a control by the addition of the attribute
RUNAT="SERVER". This alerts the ASP.NET page framework during parsing that it
should create an instance of the control to use during server-side page processing. If
you want to reference the control as a member within your code, you should also
assign an ID attribute to the control.
The page 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 round trip
to the server, the values that the user entered into HTML server controls are
automatically maintained when the page is sent back to the browser.
Interaction with validation controls you can easily verify that a user has entered
appropriate information into a control.

Data binding to one or more properties of the control.

Support for HTML 4.0 styles if the Web Forms page is displayed in a browser
that supports cascading style sheets. Pass-through of custom attributes. You can add
any attributes you need to an HTML server control and the page framework will read
them and render them without any change in functionality. This allows you to add
browser-specific attributes to your controls. For details about how to convert an
HTML element to an HTML server control, see Adding HTML Server Controls to a Web
Forms Page

Web Server Controls

Web server controls are a second set of controls designed with a different
emphasis. They do not map one-to-one to HTML server controls. Instead, they are
defined as abstract controls in which the actual HTML rendered by the control can be
quite different from the model that you program against. For example, a
RadioButtonList Web server control might be rendered in a table or as inline text with
other HTML.
Web server controls include traditional form controls such as buttons and text
boxes as well as complex controls such as tables. They also include controls that
provide commonly used form functionality such as displaying data in a grid, choosing
dates, and so on.
Web server controls offer all of the features described above for HTML server
controls (except one-to-one mapping to HTML elements) and these additional
features:
A rich object model that provides type-safe programming capabilities.

Automatic browser detection. The controls can detect browser capabilities and create
appropriate output for both basic and rich (HTML 4.0) browsers.
For some controls, the ability to define your own look for the control using templates
For some controls, the ability to specify whether a control's event causes immediate
posting to the server or is instead cached and raised when the form is submitted.
Ability to pass events from a nested control (such as a button in a table) to the
container control.
At design time in HTML view, the controls appear in your page in a format such as:
<asp: button attributes run at="server"/>
The attributes in this case are not those of HTML elements. Instead, they are
properties of the Web control.
When the Web Forms page runs, the Web server control is rendered on the
page using appropriate HTML, which often depends not only on the browser type but
also on settings that you have made for the control. For example, a Textbox control
might render as an <INPUT> tag or a <TEXTAREA> tag, depending on its properties.
SQL

DATABASE

A database management, or DBMS, gives the user access to their data and
helps them transform the data into information. Such database management
systems include dBase, paradox, IMS, and Sql. These systems allow users to create,
update and extract information from their database.
A database is a structured collection of data. Data refers to the
characteristics of people, things and events. Sql stores each data item in its own
fields. In Sql, the fields relating to a particular person, thing or event are bundled
together to form a single complete unit of data, called a record (it can also be
referred to as raw or an occurrence). Each record is made up of a number of fields.
No two fields in a record can have the same field name.
During an Sql Database design project, the analysis of your business needs
identifies all the fields or attributes of interest. If your business needs change over
time, you define any additional fields or change the definition of existing fields.

Sql Tables

Sql stores records relating to each other in a table. Different tables are
created for the various groups of information. Related tables are grouped together to
form a database.

Primary Key

Every table in Sql has a field or a combination of fields that uniquely identifies
each record in the table. The Unique identifier is called the Primary Key, or simply
the Key. The primary key provides the means to distinguish one record from all
other in a table. It allows the user and the database system to identify, locate and
refer to one particular record in the database.

Relational Database

Sometimes all the information of interest to a business operation can be


stored in one table. Sql makes it very easy to link the data in multiple tables.
Matching an employee to the department in which they work is one example. This is
what makes Sql a relational database management system, or RDBMS. It stores
data in two or more tables and enables you to define relationships between the table
and enables you to define relationships between the tables.
Foreign Key

When a field is one table matches the primary key of another field is referred
to as a foreign key. A foreign key is a field or a group of fields in one table whose
values match those of the primary key of another table.

Referential Integrity

Not only does Sql allow you to link multiple tables, it also maintains
consistency between them. Ensuring that the data among related tables is correctly
matched is referred to as maintaining referential integrity.

Data Abstraction

A major purpose of a database system is to provide users with an abstract


view of the data. This system hides certain details of how the data is stored and
maintained. Data abstraction is divided into three levels.

Physical Level

This is the lowest level of abstraction at which one describes how the data are
actually stored.

Conceptual Level

At this level of database abstraction all the attributed and what data are
actually stored is described and entries and relationship among them.

View level

This is the highest level of abstraction at which one describes only part of the
database.

Advantages of RDBMS

• Redundancy can be avoided


• Inconsistency can be eliminated
• Data can be Shared
• Standards can be enforced
• Security restrictions ca be applied
• Integrity can be maintained
• Conflicting requirements can be balanced
• Data independence can be achieved.
Disadvantages of DBMS

A significant disadvantage of the DBMS system is cost. In addition to the cost


of purchasing of developing the software, the hardware has to be upgraded to allow
for the extensive programs and the workspace required for their execution and
storage. While centralization reduces duplication, the lack of duplication requires
that the database be adequately backed up so that in case of failure the data can be
recovered.

FEATURES OF SQL (RDBMS)

SQL is the leading database management system (DBMS) because it is the


only Database that meets the uncompromising requirements of today’s most
demanding information systems. From complex decision support systems (DSS) to
the most rigorous online transaction processing (OLTP) application, even application
that require simultaneous DSS and OLTP access to the same critical data, Sql leads
the industry in both performance and capability

SQL is a truly portable, distributed, and open DBMS that delivers unmatched
performance, continuous operation and support for every database.

SQL RDBMS is high performance fault tolerant DBMS which is specially


designed for online transactions processing and for handling large database
application.

SQL with transactions processing option offers two features which contribute
to very high level of transaction processing throughput, which are

• The row level lock manager


• PL/SQL a procedural language extension to SQL

Enterprise wide Data Sharing

The unrivaled portability and connectivity of the SQL DBMS enables all the
systems in the organization to be linked into a singular, integrated computing
resource.
Portability

SQL is fully portable to more than 80 distinct hardware and operating systems
platforms, including UNIX, MSDOS, OS/2, Macintosh and dozens of proprietary
platforms. This portability gives complete freedom to choose the database sever
platform that meets the system requirements.

Open Systems

SQL offers a leading implementation of industry –standard SQL. Sql’s open


architecture integrates SQL and non –SQL DBMS with industries most comprehensive
collection of tools, application, and third party software products Sql’s Open
architecture provides transparent access to data from other relational database and
even non-relational database.

Distributed Data Sharing

Sql’s networking and distributed database capabilities to access data stored


on remote server with the same ease as if the information was stored on a single
local computer. A single SQL statement can access data at multiple sites. You can
store data where system requirements such as performance, security or availability
dictate.

Unmatched Performance

The most advanced architecture in the industry allows the SQL DBMS to
deliver unmatched performance.

Sophisticated Concurrency Control

Real World applications demand access to critical data. With most database
Systems application becomes “contention bound” – which performance is limited not
by the CPU power or by disk I/O, but user waiting on one another for data access .
Sql employs full, unrestricted row-level locking and contention free queries to
minimize and in many cases entirely eliminates contention wait times.

No I/O Bottlenecks

Sql’s fast commit groups commit and deferred write technologies dramatically
reduce disk I/O bottlenecks. While some database write whole data block to disk at
commit time, Sql commits transactions with at most sequential log file on disk at
commit time, On high throughput systems, one sequential writes typically group
commit multiple transactions. Data read by the transaction remains as shared
memory so that other transactions may access that data without reading it again
from disk. Since fast commits write all data necessary to the recovery to the log file,
modified blocks are written back to the database independently of the transaction
commit, when written from memory to disk.

SQL * NET

This is Sql’s networking software, which interfaces between SQL and the OS
networking protocol. SQL * NET enables the integration of diverse, OS, database,
communication protocols and application to create a unified computing information
resource.

Application Development Tools

SQL * Plus

This is the primary interface to the SQL RDBMS. It provides a powerful


environment for querying, defining and controlling data. Based on a full
implementation of ANSI standard SQL, it also provides a rich set of extensions in
PL/SQL, another data manipulation language

SQL * MENU

It is a development tool for creating menu-based applications. It can also tie


together Sql and non- – Sql applications into a fully integrated environment.

SQL * REPORTWRITER

It is an advanced report generation tool, which is a non-procedural application


development tool. It’s powerful formatting capabilities and fill-in-the form interface
allows the user to develop complex reports without resource to extensive
programming
5.4 Psedo Code

admin_login.aspx page
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class admin_login : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

protected void Button1_Click1(object sender, EventArgs e)


{

SqlConnection con = new SqlConnection(@"Data


Source=.\SQLEXPRESS;AttachDbFilename=""C:\windrose1\App_Data\windrose.m
df"";Integrated Security=True;User Instance=True");
con.Open();
SqlCommand cmd = new SqlCommand("select * from
windrose_adminlogin where Username='"+TextBox2.Text+"' and
password='"+TextBox1.Text+"'", con);

SqlDataReader dr;
dr = cmd.ExecuteReader();
if (dr.Read())
{

Server.Transfer("admin_menu.aspx");
}
else
{
Page.RegisterClientScriptBlock("aa", "<script>alert('Please
Check Username and Password')</script>");
}
con.Close();

}
protected void Button2_Click(object sender, EventArgs e)
{

TextBox2.Text = "";
TextBox1.Text = " ";
}
}

Admin_login.aspx.cs page
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master"
AutoEventWireup="true" CodeFile="admin_login.aspx.cs"
Inherits="admin_login" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
<br />
<br />
<br />
<asp:Panel ID="Panel1" runat="server" Height="252px" Style="z-
index: 100; left: 427px;
position: absolute; top: 293px; background-color: #ffffcc"
Width="342px" BorderStyle="Ridge">
&nbsp;
<asp:Label ID="Label1" runat="server" Font-Bold="False"
Height="9px" Style="z-index: 100;
left: 48px; position: absolute; top: 112px"
Text="Password"></asp:Label>
<asp:Label ID="Label2" runat="server" Font-Bold="False"
Style="z-index: 101; left: 52px;
position: absolute; top: 66px" Text="UserId"></asp:Label>
&nbsp; &nbsp;
<asp:TextBox ID="TextBox2" runat="server" Style="left: 114px;
position: relative;
top: 61px; z-index: 102;"></asp:TextBox>
<asp:Label ID="Label3" runat="server" Style="z-index: 107;
left: 114px; position: absolute;
top: 7px" Text="Admin Login Form"></asp:Label>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click1"
Style="left: -74px;
position: relative; top: 173px; z-index: 104;" Text="Login"
/>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click"
Style="left: -46px;
position: relative; top: 169px; z-index: 105;" Text="Reset"
/>
<asp:TextBox ID="TextBox1" runat="server" Style="left: 148px;
position: relative;
top: 80px; z-index: 106;" TextMode="Password"
Width="148px"></asp:TextBox>
</asp:Panel>
&nbsp;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</asp:Content>

6 SCREENS AND REPORTS

7 SYSTEM TESTING

System Testing and Implementation

Testing is the major quality control measure employed for software


development.

Its basic function is to detect errors in the software. During


requirement analysis and design, the output is document that is
usually textual and non-textual. After the coding phase, computer
programs are available that can be executed for testing purpose. This
implies that testing has to uncover errors introduced during coding
phases. Thus, the goal of testing is to cover requirement, design, or
coding errors in the program. The starting point of testing is unit
testing. In this a module is tested separately and often performed by
the programmer himself simultaneously while coding the module.
The purpose is to exercise the different parts of the module code
to detect coding errors. After this the modules are gradually integrated
into subsystems, which are then integrated themselves too eventually
forming the entire system. During integration of module integration
testing is performed. The goal of this is to detect designing errors,
while focusing the interconnection between modules. After the system
was put together, system testing is performed. Here the system is
tested against the system requirements to see if all requirements were
met and the system performs as specified by the requirements. Finally
accepting testing is performed to
demonstrate to the client for the operation of the system.
For the testing to be successful, proper selection of the test case
is essential. There are two different approaches for selecting test case.
The software or the module to be tested is treated as a black box, and
the test cases are decided based on the specifications of the system or
module. For this reason, this form of testing is also called “black box
testing”.
The focus here is on testing the external behavior of the system.
In structural testing the test cases are decided based on the logic of
the module to be tested. A common approach here is to achieve some
type of coverage of the statements in the code. The two forms of
testing are complementary: one tests the external behavior, the other
tests the internal structure. Often structural testing is used for lower
levels of testing, while functional testing is used for higher levels.
Testing is an extremely critical and time-consuming activity. It
requires proper planning of the overall testing process. Frequently the
testing process starts with the test plan. This plan identifies all testing
related activities that must be performed and specifies the schedule,
allocates the resources, and specifies guidelines for testing. The test
plan specifies conditions that should be tested; different units to be
tested, and the manner in which the module will be integrated
together. Then for different test unit, a test case specification
document is produced, which lists all the different test cases, together
with the expected outputs, that will be used for testing. During the
testing of the unit the specified test cases are executed and the actual
results are compared with the expected outputs. The final output of
the testing phase is the testing report and the error report, or a set of
such reports. Each test report contains a set of test cases and the
result of executing the code with the test cases. The error report
describes the errors encountered and the action taken to remove the
error.

Error Messages

The term error is used in two different ways. Errors refer to the
discrepancy between computed and observed values. That is error
refers to the difference between the actual output of the software and
the correct output. In this interpretation, error essentially is a measure
of the difference between the actual and the ideal. Error is also used to
refer to human action that results in the software containing a defect
or a fault. This detection is quite general and encompasses all phases.
The consequence of thinking is the belief that the errors largely occur
during
programming, as it is the can see, the errors occur through the
development. As we can see, the errors occur throughout the
development process. However, the cost of
connecting the errors of different phases is not the same and depends
upon when the error was detected and corrected. The cost of
correcting errors in the function of where they are detected.
As one would expect the greater the delay in detecting an error
after it occurs, the more expensive it is to correct it. Suppose an error
occurs during the requirement phase and it was corrected after the
coding then the cost is higher than correcting it in the requirements
phase itself. The reason for this is fairly obvious. If there was error in
the requirements phase that error will affect the design and coding
also. To correct the error after coding is done require both the design
and the code to be changed there by increasing the cost of correction.
The main moral of this section is that we should attempt to
detect the errors that occur in a phase during the phase itself should
not wait until testing to detect errors. This is not often practiced. In
reality, sometimes testing is the sole point where errors are detected.
Besides the cost factor, reliance on testing as a primary source for
error detection and correction should be a continuous process that is
done throughout the software development. In terms of the
development phase, what this means is that we should try to validate
each phase before starting the next.

Testing Techniques

Testing is a process, which reveals errors in the program. It is the


major quality measure employed during software development. During
testing, the program is executed with a set of conditions known as test
cases and the output is evaluated to determine whether the program is
performing as expected. In order to make sure that the system does
not have errors, the different levels of testing strategies that are
applied at differing phases of software development are:

Unit Testing

Unit Testing is done on individual modules as they are completed and


become executable. It is confined only to the designer's requirements.

EACH MODULE CAN BE TESTED USING THE FOLLOWING TWO


STRATEGIES:

Black Box Testing


In this strategy some test cases are generated as input
conditions that fully execute all functional requirements for the
program. This testing has been uses to find errors in the following
categories:
• Incorrect or missing functions
• Interface errors
• Errors in data structure or external database access
• Performance errors
• Initialization and termination errors.

In this testing only the output is checked for correctness. The logical
flow of the data is not checked.

White Box Testing

In this the test cases are generated on the logic of each module
by drawing flow graphs of that module and logical decisions are tested
on all the cases. It has been uses to generate the test cases in the
following cases:
• Guarantee that all independent paths have been executed.
• Execute all logical decisions on their true and false sides.
• Execute all loops at their boundaries and within their operational
• Execute internal data structures to ensure their validity.

Integration Testing

Integration testing ensures that software and subsystems work


together as a whole. It tests the interface of all the modules to make
sure that the modules behave properly when integrated together.

System Testing

Involves in-house testing of the entire system before delivery to


the user. Its aim is to satisfy the user the system meets all
requirements of the client's specifications.
Acceptance Testing

It is a pre-delivery testing in which entire system is tested at


client's site on real world data to find errors.

Validation Testing

The system has been tested and implemented successfully and


thus ensured that all the requirements as listed in the software
requirements specification are completely fulfilled. In case of
erroneous input corresponding error messages are displayed.

COMPILING TEST

It was a good idea to do our stress testing early on, because it


gave us time to fix some of the unexpected deadlocks and stability
problems that only occurred when components were exposed to very
high transaction volumes.

EXECUTION TEST

This program was successfully loaded and executed. Because of


good programming there was no execution error.

OUTPUT TEST

The successful output screens are placed in the output screens


section
7.4 Test Cases
Test Case1

Name Login test for Administrator


Location AdminLogin. aspx
Input1 Valid name& Password
SQL The system will display administrator home page.

Log1 Administrator home page is displayed.


Input2 Invalid name& Password
SQL The system will display some error messages.
A message “Invalid Username” or “Invalid
Log2 Password” is displayed

Test Case2

Name CreateLogin test for Administrator


Location CreateLogin. aspx
Input1 Valid
Firstname,Lastname,Fathername,Mothername,Qualification,
Salary,phoneno,address,email,username,password,confirm
password
SQL The system will display administrator menu page.

Log1 Administrator menu page is displayed.


Input2 Invalid
Firstname,Lastname,Fathername,Mothername,Qualification,
Salary,phoneno,address,email,username,password,confirm
password
SQL The system will display some error messages.
A message “Invalid Username” or “Invalid Password” is
Log2 displayed

Test Case3
Name Delete user test for Administrator
Location Delete_user.aspx
Input1 Valid username
SQL The system will display delete user page.

Log1 Delete user page is displayed after deleting user.


Input2 Invalid username
SQL The system will display delete user page.

Log2 Delete user page is displayed without any deletions.

Test Case4

Name SMTP test for Administrator


Location SendingMailsWithAttachment.aspx
Input1 Valid From address,To address,Subject,Content
SQL The system will display delete user page.

Log1 Delete user page is displayed after deleting user.


Input2 Invalid From address,To address,Subject,Content
SQL The system will display delete user page.

Log2 Delete user page is displayed without any deletions.

Name SMTP test for Administrator Test Case5


Location SendingMailsWithAttachment.aspx
Input1 Valid From address,To address
SQL The system will display sending mail page along
with message successfully sent.
Log1 Sending mail page is displayed.
Input2 Invalid From address,To address,Subject,Content
SQL The system will display sending mail page.

Log2 Sending mail page is displayed with a message


“Invalid from address”or “Invalid To address”.
Test Case6
Name Login test for Employee
Location employeelogin.aspx
Input1 Valid name& Password
SQL The system will display employee home page.

Log1 Employee home page is displayed.


Input2 Invalid name& Password Test Case7
SQL The system will display some error messages.
Name
A message “Invalid Upload
Username” or weather
“Invalidinformation test for Employee
Location employeeinformation.aspx
Log2 Password” is displayed
Input1 Validcity,minimumtemperature,maximum
SQL temperature

Log1 The system will display upload weather information


page and weather information will be updated.

Upload weather information is displayed.


Input2 Invalid city,minimumtemperature,maximum
temperature
SQL The system will display Upload weather
information.
Log2 The system will display upload weather information
page and weather information will not be updated.

Test Case8

Name Login test for Visitor


Location visitor_login. aspx
Input1 Valid name& Password
SQL The system will display visitor home page.
Log1 Visitor home page is displayed.

Input2 Invalid name& Password


SQL The system will display some error messages.
A message “Invalid Username” or “Invalid
Log2 Password” is displayed

Test Case9
Name Login test for Visitor in forums
Location Forums_login. aspx
Input1 Valid name& Password
SQL The system will display Feedback form page.

Log1 Feedback form page is displayed.


Input2 Invalid name& Password
SQL The system will display some error messages.
A message “Invalid Username” or “Invalid
Log2 Password” is displayed

Test Case10

Name Feedback test for Visitor in forums


Location Forums_feedback. aspx
Input1 Valid username,emailid, & feedback
SQL The system will display Feedback form page.

Log1 Feedback form page is displayed and feedback is


entered into database.
Input2 Invalid username,email id,blank feedback.
SQL The system will display some error messages.
A message “Invalid Username” or “Invalid emailid”
Log2 is displayed
.

8. CONCLUSION
Conclusion

Unique Features of the Project

• The Project ‘WIND ROSE’ gives us the information about climatic


conditions and weather reports for time-to-time, intimations and
information regarding environmental disorders is provided.

• The system includes various modules, which will help us to know the
Information about the Temperatures at different places. The
purpose of having the forums in this system is anyone can express their
views for having the better environment.

9.FUTURE ENHANCEMENTS

Scope for Expansion

The project Wind Rose can be expanded to full pledged Weather Portal which
can be implemented on any server. Wind Rose can maintain all the information about
the details of the Temperatures of different places in the World and can make it to
implement world wide with the connections of different satellites and also it can be
made to provide the information related to pollution levels of different places.
It can be a globalized application.

10 .BIBLIOGRAPHY
The following books were referred during the analysis and execution
phase of the project

SQL THE COMPLETE REFERENCE


By Sql Press

SOFTWARE ENGINEERING
By Roger.S.Pressman

Mastering Visual Basic.NET


By Microsoft Press

MSDN
By Microsoft

Websites

www.google.com

Вам также может понравиться