Professional Documents
Culture Documents
1 INTRODUCTION TO
GIS
A geographic information system (GIS), geographical information system, or geospatial information system is the system that captures, stores, analyzes, manages, and presents data with reference to geographic location data. In the simplest terms, GIS is the merging of cartography, statistical analysis, and database technology. GIS may be used in archaeology, geography, cartography, remote sensing, land surveying, public utility management, natural resource management, precision agriculture, urban planning, emergency management, landscape architecture, navigation, aerial video, and localized search engines. As GIS can be thought of as a system, it digitally creates and "manipulates" spatial areas that may be jurisdictional, purpose or application oriented for which a specific GIS is developed. Hence, a GIS developed for an application, jurisdiction, enterprise, or purpose may not be necessarily interoperable or compatible with a GIS that has been developed for some other application, jurisdiction, enterprise, or purpose. What goes beyond a GIS is a spatial data infrastructure (SDI), a concept that has no such restrictive boundaries. Therefore, in a general sense, the term describes any information system that integrates , stores, edits, analyzes, shares, and displays geographic information for informing decision making. GIS applications are tools that allow users to create interactive queries (user-created searches), analyze spatial information, edit data, maps, and present the results of all these operations.
method. His study of the distribution of cholera led to the source of the disease, a contaminated water pump within the heart of the cholera outbreak.
While the basic elements of topography and theme existed previously in cartography, the John Snow map was unique, using cartographic methods not only to depict but also to analyze clusters of geographically dependent phenomena for the first time. The early 20th century saw the development of photolithography, by which maps were separated into layers. Computer hardware development spurred by nuclear weapon research led to general-purpose computer "mapping" applications by the early 1960s. The year 1960 saw the development of the world's first true operational GIS in Ottawa, Ontario, Canada by the federal Department of Forestry and Rural Development. Developed by Dr. Roger Tomlinson, it was called the "Canada Geographic Information System" (CGIS) and was used to store, analyze, and manipulate data collected for the Canada Land Inventory (CLI) an effort to determine the land capability for rural Canada by mapping information about soils, agriculture, recreation, wildlife, waterfowl, forestry, and land use at a scale of 1:50,000. A rating classification factor was also added to permit analysis. 2
CGIS was the world's first such system and an improvement over "mapping" applications as it provided capabilities for overlay, measurement, and digitizing/scanning. It supported a national coordinate system that spanned the continent, coded lines as "arcs" having a true embedded topology, and it stored the attribute and locational information in separate files. As a result of this, Tomlinson has become known as the "father of GIS," particularly for his use of overlays in promoting the spatial analysis of convergent geographic data. CGIS lasted into the 1990s and built a large digital land resource database in Canada. It was developed as a mainframe based system in support of federal and provincial resource planning and management. Its strength was continent-wide analysis of complex datasets. The CGIS was never available in a commercial form.
and resulting raster data has to be given a theoretical dimension by a rubber sheeting/warping technology process. Uncertainty is a significant problem in designing a GIS because spatial data tend to be used for purposes for which they were never intended. Some maps were made many decades ago, where at that time the computer industry was not even in its perspective establishments. This has led to historical reference maps without common norms. Map accuracy is a relative issue of minor importance in cartography. All maps are established for communication ends. Maps use a historically constrained technology of pen and paper to communicate a view of the world to their users. Cartographers feel little need to communicate information based on accuracy, for when the same map is digitized and input into a GIS, the mode of use often changes. The new uses extend well beyond a determined domain for which the original map was intended and designed. A quantitative analysis of maps brings accuracy issues into focus. The electronic and other equipment used to make measurements for GIS is far more precise than the machines of conventional map analysis [Retrieved USGS]. The truth is that all geographical data are inherently inaccurate, and these inaccuracies will propagate through GIS operations in ways that are difficult to predict, yet have goals of conveyance in mind for original design. Accuracy Standards for 1:24000 Scales Map: 1:24,000 40.00 feet This means that when we see a point or attribute on a map, its "probable" location is within a +/- 40 foot area of its rendered reference, according to area representations and scale. A GIS can also convert existing digital information, which may not yet be in map form, into forms it can recognize, employ for its data analysis processes, and use in forming mapping output. For example, digital satellite images generated through remote sensing can be analyzed to produce a map-like layer of digital information about vegetative covers on land locations. Another fairly recently developed resource for naming GIS location objects is the Getty Thesaurus of Geographic Names (GTGN), which is a structured vocabulary containing about 1,000,000 names and other information about places. 4
A raster data type is, in essence, any type of digital image represented by reducible and enlargeable grids. Anyone who is familiar with digital photography will recognize the Raster graphics pixel as the smallest individual grid unit building block of an image, usually not readily identified as an artifact shape until an image is produced on a very large scale. A combination of the pixels making up an image color formation scheme will compose details of an image, as is distinct from the commonly used points, lines, and polygon area location symbols of scalable vector graphics as the basis of the vector model of area attribute rendering. While a digital image is concerned with its output blending together its grid based details as an identifiable representation of reality, in a photograph or art image transferred into a computer, the raster data type will reflect a digitized abstraction of reality dealt with by grid populating tones or objects, quantities, cojoined or open boundaries, and map relief schemas. Aerial photos are one commonly used form of raster data, with one primary purpose in mind: to display a detailed image on a map area, or for the purposes of rendering its identifiable objects by digitization. Additional raster data sets used by a GIS will contain information regarding elevation, a digital elevation model, or reflectance of a particular wavelength of light, Landsat, or other electromagnetic spectrum indicators.
Raster data type consists of rows and columns of cells, with each cell storing a single value. Raster data can be images (rasterimages) with each pixel (or cell) containing a color value. Additional values recorded for each cell may be a discrete value, such as land use, a continuous value, such as temperature, or a null value if no data is available. While a raster cell stores a single value, it can be extended by using raster bands to represent RGB (red, green, blue) colors, colormaps (a mapping between a thematic code and RGB value), or an extended attribute table with one row for each unique cell value. The resolution of the raster data set is its cell width in ground units. Raster data is stored in various formats; from a standard file-based structure of TIF, JPEG, etc. to binary large object (BLOB) data stored directly in a relational database management system (RDBMS) similar to other vector-based feature classes. Database storage, when properly indexed, typically allows for quicker retrieval of the raster data but can require storage of millions of significantly sized records.
VECTOR
In a GIS, geographical features are often expressed as vectors, by considering those features as geometrical shapes. Different geographical features are expressed by different types of geometry:
Points
A simple vector map, using each of the vector elements: points for wells, lines for rivers, and a polygon for the lake.
Zero-dimensional points are used for geographical features that can best be expressed by a single point reference in other words, by simple location. Examples include wells, peaks, features of interest, and trailheads. Points convey the least amount of information of these file types. Points can also be used to represent areas when displayed at a small scale. For example, cities on a map of the world might be represented by points rather than polygons. No measurements are possible with point features.
Lines or polylines
One-dimensional lines or polylines are used for linear features such as rivers, roads, railroads, trails, and topographic lines. Again, as with point features, linear features displayed at a small scale will be represented as linear features rather than as a polygon. Line features can measure distance.
Polygons
Two-dimensional polygons are used for geographical features that cover a particular area of the earth's surface. Such features may include lakes, park boundaries, buildings, city boundaries, or land uses. Polygons convey the most amount of information of the file types. Polygon features can measure perimeter and area. Each of these geometries are linked to a row in a database that describes their attributes. For example, a database that describes lakes may contain a lake's depth, water quality, pollution level. This information can be used to make a map to describe a particular attribute of the dataset. For example, lakes could be coloured depending on level of pollution. Different geometries can also be compared. For example, the GIS could be used to identify all wells (point geometry) that are within one kilometre of a lake (polygon geometry) that has a high level of pollution. Vector features can be made to respect spatial integrity through the application of topology rules such as 'polygons must not overlap'. Vector data can also be used to represent continuously varying phenomena. Contour lines and triangulated irregular networks (TIN) are 7
used to represent elevation or other continuously changing values. TINs record values at point locations, which are connected by lines to form an irregular mesh of triangles. The face of the triangles represent the terrain surface.
Raster data allows easy implementation of overlay operations, which are more difficult with vector data.
Vector data can be displayed as vector graphics used on traditional maps, whereas raster data will appear as an image that may have a blocky appearance for object boundaries. (depending on the resolution of the raster file)
Vector data can be easier to register, scale, and re-project, which can simplify combining vector layers from different sources.
Vector data is more compatible with relational database environments, where they can be part of a relational table as a normal column and processed using a multitude of operators.
Vector file sizes are usually smaller than raster data, which can be 10 to 100 times larger than vector data (depending on resolution).
Vector data is simpler to update and maintain, whereas a raster image will have to be completely reproduced. (Example: a new road is added).
Vector data allows much more analysis capability, especially for "networks" such as roads, power, rail, telecommunications, etc. (Examples: Best route, largest port, airfields connected to two-lane highways). Raster data will not have all the characteristics of the features it displays.
2. ANALYSIS
2.1 SOFTWARE REQUIREMENT SPECIFICATION
Software requirement: Visual Studio .Net 2005 Web Based Framework ASP.NET and AJAX Language for Development C#.NET Visual Studio .Net Framework (Minimal for Deployment) SQL Server 2005
Hardware requirement
PIII
500MHZ or above
Client Operating System - Windows-XP Server Operating System - Windows 2003 Web Server - IIS
3. DESIGN
3.1 INTRODUCTION SOFTWARE MODEL)
The two design objectives continuously sought by developers are reliability and maintenance. Reliable System
ENGINEERING
PARADIGM
APPLIED-
(RAD-
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. Error avoidance: Prevents errors from occurring in software. 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. Error tolerance: In this approach errors are recognized whenever they occur, but enables the system to keep running through degraded perform or by applying values that instruct the system to continue process. Maintenance: The key to reducing need for maintenance, while working, if possible to do essential tasks. More accurately defining user requirement during system development. Assembling better systems documentation. Using more effective methods for designing, processing, login and communicating information with project team members. Making better use of existing tools and techniques. Managing system engineering process effectively.
10
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 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 mockup of the actual reports or document, as it will appear after the system is in
11
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 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 result in the production of erroneous information. The input design also determines whenever the user can interact efficiently
Controlling the amount of input Data preparation and data entry operation depend on people, because labor costs are high, the cost of preparing and entering data is also high. Reducing data requirement
12
expense. By reducing input requirement the speed of entire process from data capturing to processing to provide results to 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. 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
13
integrity. To do this we use normal forms or rules for structuring relation.Insertion anomaly: Inability to add data to the database due to 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. Primary key is a not a composite primary key No non key attributes are present.Every non key attribute is fully functionally dependent on full set of primary key. Third Normal Form
14
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.
15
User
16
User
Village_info table
household_info
User
Village_info table
Display cadastral m ap
17
User
Select a category
18
User
Village_info table
Select a category
category_info table
Select Destination(printer/screen)
19
Providing a high-level view of what the system does Identifying the users ("actors") of the system Determining areas needing human-computer interfaces
Use Cases extend beyond pictorial diagrams. In fact, text-based use case descriptions are often used to supplement diagrams, and explore use case functionality in more detail. Graphical Notation The basic components of Use Case diagrams are the Actor, the Use Case, and the Association. An Actor, as mentioned, is a user of the system, and is depicted using a stick figure. The role of the user is written beneath the icon. Actors are not limited to Actor humans. If a system communicates with another application, and expects input or delivers output, then that application can also be considered an actor. A Use Case is functionality provided by the system, typically described as verb+object (eg. Register Use Case Car, Delete User). Use Cases are depicted with an ellipse. The name of the use case is written within the ellipse. Association Associations are used to link Actors with Use 20
Cases, and indicate that an Actor participates in the Use Case in some form. Associations are depicted by a line connecting the Actor and the Use Case. The following image shows how these three basic elements work together to form a use case diagram.
Text Notation Behind each Use Case is a series of actions to achieve the proper functionality, as well as alternate paths for instances where validation fails, or errors occur. These actions can be further defined in a Use Case description. Because this is not addressed in UML 1.4, there are no standards for Use Case descriptions. However, there are some common templates you can follow, and whole books on the subject writing of Use Case descriptions. Common methods of writing Use Case descriptions include:
Write a paragraph describing the sequence of activities in the Use Case List two columns, with the activities of the actor and the responses by the system Use a template (such as those from the Rational Unified Process or Alistair Cockburn's book, Writing Effective Use Cases) identifying actors, preconditions, post conditions, main success scenarios, and extensions.
Remember, the goal of the process is to be able to communicate the requirements of the system, so use whichever method is best for your team and your organization. Here are examples of a paragraph and template use case description for our Use Case Diagram: Create Bug Report (Paragraph Version) 21
The Tester initiates a new bug report. The Tester indicates the source of the bug, a description of the problem, and the person to whom the bug should be assigned. The System records the bug as an open issue, and notifies the Assigned Person that a new bug has been submitted. Create Bug Report (Template Version) Primary Actor: Goal in Context: Scope: Level: Stakeholders Interests: Precondition: Trigger: Main Scenario: Extensions: Success and Tester Tester is testing an application and discovers a new bug. He/She wants to report it so that it can be addressed. System - the quality assurance system for the XYZ Application User Tester: wants to record a new bug Assigned: wants to be notified of any new bugs QA Manager: wants all bugs recorded none Tester discovers a bug while testing an application 1. Tester initiates a new bug 2. System records bug with date of
report. issuing.
3. System notifies assigned user. 1a. Tester does not know who to assign bug report to: System assigns bug to QA Manager.
22
System
BPL information
Watershed structures
N REGS works
23
System
24
User
25
System
Familycode
26
System
<<extend>> Displaying Information by Clicking on Polygon User <<extend>> Based on Account holder
System
User
Microsoft.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) 28
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. The following illustration shows the relationship of the common language runtime and the class library to your applications and to the overall system. The illustration also shows how managed code operates within a larger architecture.
29
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 localityof-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.
31
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.
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.
33
C#.NET
Introduction to Windows Forms (C#.NET)
Windows Forms is the new platform for Microsoft Windows application development, based on the .NET Framework. This framework provides a clear, objectoriented, extensible set of classes that enable you to develop rich Windows applications. Additionally, Windows Forms can act as the local user interface in a multi-tier distributed solution. Windows Forms is a framework for building Windows client applications that utilize the common language runtime. Windows Forms applications can be written in any language that the common language runtime supports. What Is a Form? A form is a bit of screen real estate, usually rectangular, that you can use to present information to the user and to accept input from the user. Forms can be standard windows, multiple document interface (MDI) windows, dialog boxes, or display surfaces for graphical routines. The easiest way to define the user interface for a form is to place controls on its surface. Forms are objects that expose properties which define their appearance, methods which define their behavior, and events which define their interaction with the user. By setting the properties of the form and writing code to respond to its events, you customize the object to meet the requirements of your application. As with all objects in the .NET Framework, forms are instances of classes. The form you create with the Windows Forms Designer is a class, and when you display an instance of the form at run time, this class is the template used to create the form. The framework also allows you to inherit from existing forms to add functionality or modify existing behavior. When you add a form to your project, you can choose whether it inherits from the Form class provided by the framework, or from a form you have previously created. Additionally, forms are controls, because they inherit from the Control class. 34
Within a Windows Forms project, the form is the primary vehicle for user interaction. By combining different sets of controls and writing code, you can elicit information from the user and respond to it, work with existing stores of data, and query and write back to the file system and registry on the user's local computer. Although the form can be created entirely in the Code Editor, it is easier to use the Windows Forms Designer to create and modify forms. Some of the advantages of using Windows Forms include the following:
developing Windows applications that combines the simplicity of the C# .net programming model with the power and flexibility of the common language runtime.
versioning and deployment features of the common language runtime to offer reduced deployment costs and higher application robustness over time. This significantly lowers the maintenance costs (TCO) for applications written in Windows Forms.
controls and control containers that is based on concrete implementation of the control and container classes. This significantly reduces control-container interoperability issues.
the common language runtime. This means that Windows Forms can be used implement everything from an untrusted control running in the browser to a fully trusted application installed on a user's hard disk.
XML Web services support: Windows Forms offers full support for Rich graphics: Windows Forms is one of the first ship vehicles for GDI+,
a new version of the Windows Graphical Device Interface (GDI) that supports
35
alpha blending, texture brushes, advanced transforms, rich text support, and more.
encompass all of the controls offered by Windows. These controls also offer new features, such as "flat look" styles for buttons, radio buttons, and check boxes.
Data awareness: Windows Forms offers full support for the ADO data ActiveX control support: Windows Forms offers full support for
model.
ActiveX controls. You can easily host ActiveX controls in a Windows Forms application. You can also host a Windows Forms control as an ActiveX control.
Licensing: Windows Forms takes advantage of the common language Printing: Windows Forms offers a printing framework that enables Accessibility: Windows Forms controls implement the interfaces defined
by Microsoft Active Accessibility (MSAA), which make it simple to build applications that support accessibility aids, such as screen readers.
data and component model features offered by the common language runtime to provide thorough design-time support for both control users and control implementers.
36
ADO.NET Overview
ADO.NET is an evolution of the ADO data access model that directly addresses user requirements for developing scalable applications. It was designed specifically for the web with scalability, statelessness, and XML in mind. ADO.NET uses some ADO objects, such as the Connection and Command objects, and also introduces new objects. Key new ADO.NET objects include the DataSet, DataReader, and DataAdapter. The important distinction between this evolved stage of ADO.NET and previous data architectures is that there exists an object -- the DataSet -- that is separate and distinct from any data stores. Because of that, the DataSet functions as a standalone entity. You can think of the DataSet as an always disconnected recordset that knows nothing about the source or destination of the data it contains. Inside a DataSet, much like in a database, there are tables, columns, relationships, constraints, views, and so forth. A DataAdapter is the object that connects to the database to fill the DataSet. Then, it connects back to the database to update the data there, based on operations performed while the DataSet held the data. In the past, data processing has been primarily connection-based. Now, in an effort to make multi-tiered apps more efficient, data processing is turning to a message-based approach that revolves around chunks of information. At the center of this approach is the DataAdapter, which provides a bridge to retrieve and save data between a DataSet and its source data store. It accomplishes this by means of requests to the appropriate SQL commands made against the data store. The XML-based DataSet object provides a consistent programming model that works with all models of data storage: flat, relational, and hierarchical. It does this by having no 'knowledge' of the source of its data, and by representing the data that it holds as collections and data types. No matter what the source of the data within the DataSet is, it is manipulated through the same set of standard APIs exposed through the DataSet and its subordinate objects. 37
While the DataSet has no knowledge of the source of its data, the managed provider has detailed and specific information. The role of the managed provider is to connect, fill, and persist the DataSet to and from data stores. The OLE DB and SQL Server .NET Data Providers (System.Data.OleDb and System.Data.SqlClient) that are part of the .Net Framework provide four basic objects: the Command, Connection, DataReader and DataAdapter. In the remaining sections of this document, we'll walk through each part of the DataSet and the OLE DB/SQL Server .NET Data Providers explaining what they are, and how to program against them. The following sections will introduce you to some objects that have evolved, and some that are new. These objects are:
Connections. For connection to and managing transactions against a Commands. For issuing SQL commands against a database. DataReaders. For reading a forward-only stream of data records from a DataSets. For storing, remoting and programming against flat data, XML DataAdapters. For pushing data into a DataSet, and reconciling data
database.
against a database. When dealing with connections to a database, there are two different options: SQL Server .NET Data Provider (System.Data.SqlClient) and OLE DB .NET Data Provider (System.Data.OleDb). In these samples we will use the SQL Server .NET Data Provider. These are written to talk directly to Microsoft SQL Server. The OLE DB .NET Data Provider is used to talk to any OLE DB provider (as it uses OLE DB underneath).
Connections
38
Connections are used to 'talk to' databases, and are represented by providerspecific classes such as SQLConnection. Commands travel over connections and resultsets are returned in the form of streams which can be read by a DataReader object, or pushed into a DataSet object.
Commands
Commands contain the information that is submitted to a database, and are represented by provider-specific classes such as SQLCommand. A command can be a stored procedure call, an UPDATE statement, or a statement that returns results. You can also use input and output parameters, and return values as part of your command syntax. The example below shows how to issue an INSERT statement against the Northwind database.
DataReaders
The DataReader object is somewhat synonymous with a read-only/forward-only cursor over data. The DataReader API supports flat as well as hierarchical data. A DataReader object is returned after executing a command against a database. The format of the returned DataReader object is different from a recordset. For example, you might use the DataReader to show the results of a search list in a web page.
programming model that is always consistent, regardless of where the source data resides. Data coming from a database, an XML file, from code, or user input can all be placed into DataSet objects. Then, as changes are made to the DataSet they can be tracked and verified before updating the source data. The GetChanges method of the DataSet object actually creates a second DatSet that contains only the changes to the data. This DataSet is then used by a DataAdapter (or other objects) to update the original data source. The DataSet has many XML characteristics, including the ability to produce and consume XML data and XML schemas. XML schemas can be used to describe schemas interchanged via Web Services. In fact, a DataSet with a schema can actually be compiled for type safety and statement completion.
DataAdapters (OLEDB/SQL)
The DataAdapter object works as a bridge between the DataSet and the source data. Using the provider-specific SqlDataAdapter (along with its associated SqlCommand and SqlConnection) can increase overall performance when working with a Microsoft SQL Server databases. For other OLE DB-supported databases, you would use the OleDbDataAdapter object and its associated OleDbCommand and OleDbConnection objects. The DataAdapter object uses commands to update the data source after changes have been made to the DataSet. Using the Fill method of the DataAdapter calls the SELECT command; using the Update method calls the INSERT, UPDATE or DELETE command for each changed row. You can explicitly set these commands in order to control the statements used at runtime to resolve changes, including the use of stored procedures. For ad-hoc scenarios, a CommandBuilder object can generate these at runtime based upon a select statement. However, this run-time generation requires an extra round-trip to the server in order to gather required metadata, so explicitly providing the INSERT, UPDATE, and DELETE commands at design time will result in better run-time performance.
40
1. 2.
ADO.NET is the next evolution of ADO for the .Net Framework. ADO.NET was created with n-Tier, statelessness and XML in the
forefront. Two new objects, the DataSet and DataAdapter, are provided for these scenarios. 3. 4. 5. ADO.NET can be used to get data from a stream, or to store data in a There is a lot more information about ADO.NET in the documentation. Remember, you can execute a command directly against the database in cache for updates.
order to do inserts, updates, and deletes. You don't need to first put data into a DataSet in order to insert, update, or delete it. 6. Also, you can use a DataSet to bind to the data, move through the data, and navigate data relationships
SQL SERVER
DATABASE
41
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, SQL Server and SQL Server. 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 Server stores each data item in its own fields. In SQL Server, 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 Server 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.
Primary Key
Every table in SQL Server 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 42
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 Server 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 Server a relational database management system, or RDBMS. It stores data in two or more tables and enables you to define relationships between the tables 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 Server 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. 43
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.
SQL SERVER is one of the leading database management systems (DBMS) because it is the only Database that meets the uncompromising requirements of todays 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 Server leads the industry in both performance and capability SQL SERVER is a truly portable, distributed, and open DBMS that delivers unmatched performance, continuous operation and support for every database. SQL SERVER RDBMS is high performance fault tolerant DBMS which is specially designed for online transactions processing and for handling large database application. SQL SERVER with transactions processing option offers two features which contribute to very high level of transaction processing throughput, which are The row level lock manager
Enterprise wide Data Sharing The unrivaled portability and connectivity of the SQL SERVER DBMS enables all the systems in the organization to be linked into a singular, integrated computing resource.
Portability SQL SERVER is fully portable to more than 80 distinct hardware and operating systems platforms, including UNIX, MSDOS, OS/2, Macintosh and dozens of proprietary
45
platforms. This portability gives complete freedom to choose the database sever platform that meets the system requirements. Open Systems SQL SERVER offers a leading implementation of industry standard SQL. SQL Servers open architecture integrates SQL SERVER and non SQL SERVER DBMS with industries most comprehensive collection of tools, application, and third party software products SQL Servers Open architecture provides transparent access to data from other relational database and even non-relational database.
Distributed Data Sharing SQL Servers 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 SERVER 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 46
the CPU power or by disk I/O, but user waiting on one another for data access. SQL Server 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 Servers 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 Server 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.
5. CODE
5.1 GENDER INFORMATION 47
<%@
Page
Title=""
Language="C#"
MasterPageFile="~/Village.Master"
AutoEventWireup="true" CodeBehind="GenderInput.aspx.cs" Inherits="VillageGIS.GenderInput" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:Content> <asp:Content runat="server"> <div class="cphDiv"> <div class="span-19" style="font-size:12px; font-weight:bold;padding-top:10px;textalign:center;"> <asp:Label Input"></asp:Label></div> <div class="span-19" style="font-size:12px; padding-top:20px;padding-left:10px;"> <div class="span-9"> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div class="span-4 last"><asp:Label ID="Label3" runat="server" Text="Live Stock Type:"></asp:Label></div> class="span-4 last"><asp:Label ID="Label2" runat="server" Text="Serial No.:"></asp:Label></div> class="span-5 last"><asp:TextBox ID="TextBox2" runat="server"></asp:TextBox></div> class="span-4 last"><asp:Label ID="Label1" runat="server" Text="Family ID="TextBox1" Code"></asp:Label></div> class="span-5 last"><asp:TextBox runat="server"></asp:TextBox></div> ID="Label17" runat="server" Text="Live Stock ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1"
48
<div </div>
class="span-5
last"><asp:TextBox
ID="TextBox3"
runat="server"></asp:TextBox></div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div class="span-4 last"><asp:Label ID="Label6" runat="server" Text="Milk Yielding Count:"></asp:Label></div> <div </div> </div> <div class="span-9"> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> class="span-4 class="span-5 last"><asp:Label ID="Label7" runat="server" ID="TextBox7" Text="Production:"></asp:Label></div> last"><asp:TextBox runat="server"></asp:TextBox></div> class="span-5 last"><asp:TextBox ID="TextBox6" runat="server"></asp:TextBox></div> class="span-4 last"><asp:Label ID="Label5" runat="server" Text="Total Count:"></asp:Label></div> class="span-5 last"><asp:TextBox ID="TextBox5" runat="server"></asp:TextBox></div> class="span-4 class="span-5 last"><asp:Label ID="Label4" runat="server" ID="TextBox4" Text="Species:"></asp:Label></div> last"><asp:TextBox runat="server"></asp:TextBox></div>
49
class="span-4
last"><asp:Label
ID="Label8"
runat="server"
Text="Home
Use:"></asp:Label></div> class="span-5 last"><asp:TextBox ID="TextBox8" runat="server"></asp:TextBox></div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div class="span-4 last"><asp:Label ID="Label11" runat="server" Text="Earned Money:"></asp:Label></div> <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> </div> </div> 50 class="span-4 class="span-5 last"><asp:Label ID="Label12" runat="server" ID="TextBox12" Text="Expenditure:"></asp:Label></div> last"><asp:TextBox runat="server"></asp:TextBox></div> class="span-5 last"><asp:TextBox ID="TextBox11" runat="server"></asp:TextBox></div> class="span-4 class="span-5 last"><asp:Label ID="Label10" runat="server" ID="TextBox10" Text="Rate:"></asp:Label></div> last"><asp:TextBox runat="server"></asp:TextBox></div> class="span-4 last"><asp:Label ID="Label9" runat="server" Text="Sales Volume:"></asp:Label></div> class="span-5 last"><asp:TextBox ID="TextBox9" runat="server"></asp:TextBox></div>
<div class="span-17" style="font-size:12px; padding-top:20px; text-align:right; paddingleft:5px;"> <asp:Button ID="btnSave" runat="server" Text="Save" /> </div> </div> </asp:Content>
CADASTRE INFORMATION 51
%@
Page
Title=""
Language="C#"
MasterPageFile="~/Village.Master"
Assembly="AspMapNET" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:Content> <asp:Content runat="server"> <div class="cphDiv"> <div class="span-19" style="font-size: 12px; font-weight: bold; padding-top: 10px; text-align: center;"> <asp:Label ID="Label1" runat="server" Text="Cadastry Information"></asp:Label></div> <div class="span-19" style="padding-top: 20px;"> <div class="span-2 last" style="float: left;"> <asp:Label ID="lblName" runat="server" Text="Village Name:"></asp:Label> </div> <div class="span-4 last" style="float: left;"> <asp:DropDownList ID="ddlVillageName" runat="server"> <asp:ListItem Text="Bera" Value="02828300"></asp:ListItem> <asp:ListItem Text="JashwanthPura" Value="02828500"></asp:ListItem> <asp:ListItem Text="Surajpura" Value="02828600" Selected="True"></asp:ListItem> </asp:DropDownList> </div> <div class="span-4 last" style="float: left;"> <asp:DropDownList ID="DropDownList1" runat="server"> 52 ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1"
<asp:ListItem Text="Select Category" Value="category" Selected="True"></asp:ListItem> <asp:ListItem Text="Cat 1" Value="cat1"></asp:ListItem> </asp:DropDownList> </div> <div class="span-4 last" style="float: left;"> <asp:DropDownList ID="DropDownList2" runat="server"> <asp:ListItem Text="Select" Value="select" Selected="True"></asp:ListItem> <asp:ListItem Text="Cat 1" Value="cat1"></asp:ListItem> </asp:DropDownList> </div> <div class="span-2"> <asp:Button ID="btnShow" runat="server" Text="Show Data" /></div> </div> <div class="span-19" style="padding-top: 20px; padding-left: 10px;"> <div> <asp:ImageButton ID="zoomFull" runat="server" BorderColor="White" ToolTip="Zoom All" BorderWidth="1px" BorderStyle="Outset" ImageUrl="tools/zoomfull.gif" OnClick="zoomFull_Click"> </asp:ImageButton> <aspmap:maptoolbutton id="zoomInTool" runat="server" tooltip="Zoom In" imageurl="tools/zoomin.gif" map="map"> </aspmap:maptoolbutton> <aspmap:maptoolbutton id="zoomOutTool" runat="server" tooltip="Zoom Out" imageurl="tools/zoomout.gif" map="map" maptool="ZoomOut"> </aspmap:maptoolbutton>
53
<aspmap:maptoolbutton id="panTool" runat="server" tooltip="Pan" imageurl="tools/pan.gif" map="map" maptool="Pan"> </aspmap:maptoolbutton> <aspmap:maptoolbutton id="centerTool" runat="server" tooltip="Center" imageurl="tools/center.gif" map="map" maptool="Center"> </aspmap:maptoolbutton> <aspmap:maptoolbutton id="infoTool" runat="server" tooltip="Identify" imageurl="~/TOOLS/info.gif" map="map" maptool="Info"> </aspmap:maptoolbutton> <aspmap:maptoolbutton id="InfoWindowTool" runat="server" imageurl="~/TOOLS/infowindow.gif" map="map" maptool="InfoWindow" /></div> <div> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <strong> <aspmap:legend id="Legend1" runat="server" style="top: 0px; left: 0px; width: 72px;" /> </strong> <aspmap:map id="map" runat="server" mapunit="Foot" height="440px" fontquality="ClearType" smoothingmode="None" imageformat="Gif" backcolor="green" width="450px" oninfotool="map_InfoTool" oninfowindowtool="map_InfoWindowTool" maptool="Point"> </aspmap:map> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="zoomFull" /> 54
<%-- <asp:AsyncPostBackTrigger ControlID="searchAddress" /> <asp:AsyncPostBackTrigger ControlID="searchOwner" /> <asp:AsyncPostBackTrigger ControlID="searchParcel" />--%> </Triggers> </asp:UpdatePanel> </div> <div> <asp:UpdatePanel ID="UpdatePanel2" runat="server"> <ContentTemplate> <asp:DataGrid ID="identifyGrid" runat="server" HorizontalAlign="Center"> <HeaderStyle Font-Bold="True" ForeColor="White" BackColor="RoyalBlue"></HeaderStyle> </asp:DataGrid> </ContentTemplate> </asp:UpdatePanel> </div> </div> </div> </asp:Content>
55
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:Content> <asp:Content runat="server"> <div class="cphDiv"> <div class="span-19" style="font-size:12px; font-weight:bold;padding-top:10px;textalign:center;"> <asp:Label ID="Label17" runat="server" Text="Rainfall Input"></asp:Label></div> <div class="span-19" style="font-size:12px; padding-top:20px;padding-left:10px;"> <div class="span-19" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-19" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-19" style="font-size:11px; padding-top:10px; font-weight:bold;"> <div class="span-4 last"><asp:Label ID="Label13" runat="server" Text="Rainfall in the months"></asp:Label></div> <div class="span-14 last"> </div> </div> 56 class="span-4 class="span-14 last"><asp:Label ID="Label2" runat="server" ID="txtBlock" Text="Block:"></asp:Label></div> last"><asp:TextBox runat="server"></asp:TextBox></div> class="span-4 last"><asp:Label ID="Label1" runat="server" ID="txtYear" Text="Year:"></asp:Label></div> class="span-14 last"><asp:TextBox runat="server"></asp:TextBox></div> ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1"
<div class="span-9"> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> 57 class="span-4 class="span-5 last"><asp:Label ID="Label7" runat="server" ID="txtMay" Text="May:"></asp:Label></div> last"><asp:TextBox runat="server"></asp:TextBox></div> class="span-4 class="span-5 last"><asp:Label ID="Label6" runat="server" ID="txtApril" Text="April:"></asp:Label></div> last"><asp:TextBox runat="server"></asp:TextBox></div> class="span-4 class="span-5 last"><asp:Label ID="Label5" runat="server" ID="txtMarch" Text="March:"></asp:Label></div> last"><asp:TextBox runat="server"></asp:TextBox></div> class="span-4 class="span-5 last"><asp:Label ID="Label4" runat="server" ID="txtFeb" Text="Febrauary:"></asp:Label></div> last"><asp:TextBox runat="server"></asp:TextBox></div> class="span-4 class="span-5 last"><asp:Label ID="Label3" runat="server" ID="txtJan" Text="January:"></asp:Label></div> last"><asp:TextBox runat="server"></asp:TextBox></div>
<div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> </div> <div class="span-9"> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div class="span-4 last"><asp:Label ID="Label12" runat="server" Text="October:"></asp:Label></div> class="span-4 last"><asp:Label ID="Label11" runat="server" ID="txtSept" Text="September:"></asp:Label></div> class="span-5 last"><asp:TextBox runat="server"></asp:TextBox></div> class="span-4 last"><asp:Label ID="Label10" runat="server" ID="txtAug" Text="August:"></asp:Label></div> class="span-5 last"><asp:TextBox runat="server"></asp:TextBox></div> class="span-4 class="span-5 last"><asp:Label ID="Label9" runat="server" ID="txtJuly" Text="July:"></asp:Label></div> last"><asp:TextBox runat="server"></asp:TextBox></div> class="span-4 class="span-5 last"><asp:Label ID="Label8" runat="server" ID="txtJune" Text="June:"></asp:Label></div> last"><asp:TextBox runat="server"></asp:TextBox></div>
58
<div </div>
class="span-5
last"><asp:TextBox
ID="txtOct"
runat="server"></asp:TextBox></div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> <div class="span-9" style="font-size:12px; padding-top:10px;"> <div <div </div> </div> </div> <div class="span-17" style="font-size:12px; padding-top:20px; text-align:right; paddingleft:5px;"> <asp:Label ID="lblMsg" runat="server"></asp:Label> <asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" /> </div> </div> </asp:Content> class="span-4 last"><asp:Label ID="Label15" runat="server" ID="txtDec" Text="December:"></asp:Label></div> class="span-5 last"><asp:TextBox runat="server"></asp:TextBox></div> class="span-4 last"><asp:Label ID="Label14" runat="server" ID="txtNov" Text="November:"></asp:Label></div> class="span-5 last"><asp:TextBox runat="server"></asp:TextBox></div>
59
String Testing
In most of the modules inputs were in the form of the strings which were tested for null data, format of the data and length of the data, special characters etc. Exceptions were handled through try-catch blocks to trap the errors then and there in the client-server modules while in the web modules they were taken care of by web modules.
Unit Testing
Each and every module was tested to execute as per the SRS. Appropriate inputs were provided to check with output required was available. Corresponding tables were cross verified for updations of data and complete transactions were rolled back and were ensured not to affect the database.
60
Integration Testing
All the modules were integrated that pertain to the two phases of the application. The client-server phase was checked with top-down testing to check if the screens opened in the order starting from the splash screen to the reports module. Synchronization of the flow of the data, message passing and database transactions between the modules were verified.
System Testing
The client-server and the web application modules were integrated along with the concept of the virtual website in order to test the complete system. Errors the arose as a result of network failures, protocols, port number, locating the web pages, handling the URL were isolated.
Compilation Testing
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. Output Testing This program was successfully loaded and executed. Because of good programming there were no execution errors. Output Testing The successful output screens are placed in the output screens section.
61
62
63
SCREEN 3
64
65
66
67
SCREEN 7
68
SCREEN 8
Temperature Data
69
70
71
8. CONCLUSION
The project has been appreciated by all the users in the organization. It is easy to use, since it uses the GUI provided in the user dialog. User friendly screens are provided. The usage of software increases the efficiency, decreases the effort. It has been efficiently selected service process. It has been thoroughly tested and implemented. Any endeavor is incomplete without the spirit of teamwork. I could not only muster up support for hosting and fostering this project, but also gather up the enthusiastic team.
72
7. BIBLIOGRAPHY
SOFTWARE ENGINEERING By Rogers. Pressman VISUAL C#.NET Black Book By Evangeleous Petereous SQL FOR PROFESSIONALS By Jain MSDN 2005 By Microsoft
73