Introduction to Web Programming

In this module, you will learn about Internet applications and the tools you use to create them.

This module introduces you to the concepts and terms used throughout this course, including how Web applications work, the parts of a Web application, how the Microsoft .NET Framework is organized, and how to use the Microsoft Visual Studio .NET programming environment.

Estimated lesson time: 55 minutes
Estimated lab time: 30 minutes

– Describe four different types of Internet applications and know where to look for training on developing each type of application
– Explain how a Web application executes over the Internet and how that differs from a traditional, static Web site
– Understand the role that ASP.NET plays in creating Web applications
– List the parts that make up ASP.NET and describe some of its advantages over other Web application technologies, such as the Common Gateway Interface (CGI)

What Can You Create?

Web applications.

These provide content from a server to client machines over the Internet. Users view the Web application through a Web browser, such as Microsoft Internet Explorer or Netscape Navigator.

Web services.
These components provide processing services from a server to other applications over the Internet.
Internet-enabled applications.
These are stand-alone applications that incorporate aspects of the Internet to provide online registration, Help, updates, or other services to the user over the Internet.
Peer-to-peer applications.
These are stand-alone applications that use the Internet to communicate with other users running their own instances of the application.
This course Next Course Next Course Next Course

How Web Applications Work

Web applications use a client/server architecture. The Web application resides on a server and responds to requests from multiple clients over the Internet, as shown in the figure below .


On the client side, the Web application is hosted by a browser, such as Internet Explorer or Netscape Navigator. The application’ s user interface takes the form of Hypertext Markup Language (HTML) pages that are interpreted and displayed by the client’ s browser.

On the server side, the Web application runs under Microsoft Internet Information Services (IIS). IIS manages the application, passes requests from clients to the application, and returns the application’ s responses to the client. These requests and responses are passed across the Internet using Hypertext Transport Protocol (HTTP). A protocol is a set of rules that describe how two or more items communicate over a medium, such as the Internet

The Web application composes responses to requests from resources found on the server. These resources include the executable code running on the server (what we traditionally think of as the “application” in Microsoft Windows programming), Web Forms, HTML pages, image files, and other media that make up the content of the application.

Web applications are much like traditional Web sites, except that the content presented to the user is actually composed dynamically by executable, rather than being served from a static page stored on the server.

The executable portion of the Web application enables you to do many things that you cannot do with a static Web site, such as:

  • Collect information from the user and store that information on the server.
  • Perform tasks for the user such as placing an order for a product, performing complex calculations, or retrieving information from a database.
  • Identify a specific user and present an interface that is customized for him or her.
  • Present content that is highly volatile, such as inventory, pending order, and shipment information.

This is only a partial list. Basically, you can do anything with a Web application that you can imagine doing with any client/server application. What makes a Web application special is that the client/server interaction takes place over the Internet.

What ASP.NET Provides

ASP.NET is the platform that you use to create Web applications and Web services that run under IIS. ASP.NET is not the only way to create a Web application. Other technologies, notably the CGI, also enable you to create Web applications. What makes ASP.NET special is how tightly it is integrated with the Microsoft server, programming, data access, and security tools.

ASP.NET provides a high level of consistency across Web application development. In a way, it is similar to the level of consistency that Microsoft Office brought to desktop applications. ASP.NET is part of the .NET Framework and is made up of several different components.

  • Visual Studio .NET Web development tools. These include visual tools for designing Web pages and application templates, project management, and deployment tools for Web applications.
  • The System.Web namespaces. These are part of the .NET Framework, and include the programming classes that deal with Web-specific items such as HTTP requests and responses, browsers, and e-mail.
  • Server and HTML controls. These are the user-interface components that you use to gather information from and provide responses to users.
  • In addition to the preceding components, ASP.NET also uses the following, more general programming components and Windows tools. These items aren’ t part of ASP.NET. However, they are key to ASP.NET programming.
  • Microsoft Internet Information Services (IIS). As mentioned in the previous section, IIS hosts Web applications on the Windows server.
  • The Microsoft Visual Basic .NET, Microsoft Visual C#, and JScript programming languages. These three languages have integrated support in Visual Studio .NET for creating Web applications.
  • The .NET Framework. This is the complete set of Windows programming classes; they include the ASP.NET classes as well as classes for other programming tasks such as file access, data type conversion, array and string manipulation, and so on.
  • ADO.NET database classes and tools. These components provide access to Microsoft SQL Server and ODBC databases. Data access is often a key component of Web applications.
  • Microsoft Application Center Test (ACT). This Visual Studio .NET component provides an automated way to stress-test Web applications.

ASP.NET is the most complete platform for developing Web applications that run under IIS. However, it is important to remember that ASP.NET is not platform-independent. Because it is hosted under IIS, ASP.NET must run on Windows servers. To create Web applications that run on non-Windows/IIS servers, such as Linux/Apache, you must use other tools—generally CGI.


Advantages of ASP.NET

ASP.NET has many advantages over other platforms when it comes to creating Web applications. Probably the most significant advantage is its integration with the Windows server and programming tools. Web applications created with ASP.NET are easier to create, debug, and deploy because those tasks can all be performed within a single development environment—Visual Studio .NET.

ASP.NET delivers the following other advantages to Web application developers:

  • Executable portions of a Web application compiled so they execute more quickly than interpreted scripts
  • On-the-fly updates of deployed Web applications without restarting the server
  • Access to the .NET Framework, which extends the Windows API
  • Use of the widely known Visual Basic programming language, which has been enhanced to fully support object-oriented programming
  • Introduction of the new Visual C# programming language, which provides a type-safe, object-oriented version of the C programming language (we will be focusing on VB.NET and not enter in this section further)
  • Automatic state management for controls on a Web page (called server controls) so that they behave much more like Windows controls
  • The ability to create new, customized server controls from existing controls
  • Built-in security through the Windows server or through other authentication/authorization methods
  • Integration with Microsoft ADO.NET to provide database access and database design tools from within Visual Studio .NET
  • Full support for Extensible Markup Language (XML), cascading style sheets (CSS), and other new and established Web standards
  • Built-in features for caching frequently requested Web pages on the server, localizing content for specific languages and cultures, and detecting browser capabilities


Lesson 2: Using ASP.NET

In this lesson, you will learn how ASP.NET organizes a Web application into parts, and you will learn the roles and names of those parts. You will be introduced to Web Forms, which are the central user-interface element of Web applications.

ASP.NET is part of the larger .NET Framework, so this lesson will also discuss how the .NET Framework is organized and how .NET applications run differently from the traditional Windows applications you might be used to.

Finally, this lesson ends with a discussion of the programming languages you can use to create Web applications. ASP.NET is not bound to any one programming language, and the end of this lesson lists some of the other available languages and explains some of the major differences between the two languages (Visual Basic .NET and Visual C#).


  • List the parts of a Web application and describe how they run on the server
  • Explain how a Web form differs from and is similar to both an HTML page and a Windows form
  • Describe some of the different components you can place on a Web form
  • Explain the parts of the .NET Framework and how the common language run­time (CLR) executes .NET applications
  • Understand how the .NET Framework is organized and know where to look for classes that handle common application programming tasks
  • Compare the Visual Basic .NET and Visual C# programming languages

Parts of a Web Application

A Web application consists of three parts: content, program logic, and Web configuration information.

Parts of an ASP.NET Web Application


Types of files



Web Forms, HTML, images, audio, video, other data

Content files determine the appearance of a Web application. They can contain static text and images as well as elements that are composed on the fly by the program logic (as in the case of a database query).

Program logic

Executable files, scripts

The program logic determines how the application responds to user actions. ASP.NET Web applications have a dynamic-link library (DLL) file that runs on the server, and they can also include scripts that run on the client machine.


Web configuration file, Style sheets, IIS settings

The configuration files and settings determine how the application runs on the server, who has access, how errors are handled, and other details.

The Web form is the key element of a Web application. A Web form is a cross between a regular HTML page and a Windows form: It has the same appearance and similar behavior to an HTML page, but it also has controls that respond to events and run code, like a Windows form.

In a completed Web application, the executable portion of the Web form is stored in an executable (.dll) that runs on the server under the control of IIS. The content portion of the Web form resides in a content directory of the Web server

When a user navigates to one of the Web Forms pages from his or her browser, the following sequence occurs:

  1. IIS starts the Web application’ s executable if it is not already running.

  2. The executable composes a response to the user based on the content of the Web Forms page that the user requested and any program logic that provides dynamic content.

  3. IIS returns the response to the user in the form of HTML.

Once the user gets the requested Web form, he or she can enter data, select options, click buttons, and use any other controls that appear on the page. Some controls, such as buttons, cause the page to be posted back to the server for event processing and the sequence repeats itself

This cycle of events is described in greater detail in Lesson 2, “Creating Web Forms Applications.”

Web Form Components

Web Forms can contain several different types of components, as summarized below.

Components on a Web Form




Server controls

TextBox, Label, Button, ListBox, DropDownList, DataGrid

These controls respond to user events by running event procedures on the server. Server controls have built-in features for saving data that the user enters between page displays. You use server controls to define the user interface of a Web form.

HTML controls

Text area, Table, Image,
Submit Button, Reset Button

These represent the standard visual elements provided in HTML. HTML controls are useful when the more complete feature set provided by server controls is not needed.

Data controls

SqlConnection, SqlCommand, OleDbConnection,
OleDbCommand, DataSet

Data controls provide a way to connect to, perform commands on, and retrieve data from SQL and OLE databases and XML data files.

System components

FileSystemWatcher, EventLog, MessageQueue

These components provide access to various system-level events that occur on the server.

You use the server and HTML controls to create the user interface on a Web form. The data controls and system components appear on the Web form only at design time to provide a visual way for you to set their properties and handle their events.
At run time, data controls and system components do not have a visual representation.


The .NET Framework

ASP.NET is an important part of the .NET Framework, but it is just one part. Understanding what else the .NET Framework provides will help you program your ASP.NET application effectively and avoid writing new code to perform tasks that are already implemented within the .NET Framework.

First, a little background. The .NET Framework is the new Microsoft programming platform for developing Windows and Web software. It is made up of two parts:

  • An execution engine called the common language runtime (CLR)

  • A class library that provides core programming functions, such as those formerly available only through the Windows API, and application-level functions used for Web development (ASP.NET), data access (ADO.NET), security, and remote management

.NET applications aren’ t executed the same way as the traditional Windows applications you might be used to creating. Instead of being compiled into an executable containing native code, .NET application code is compiled into Microsoft intermediate language (MSIL) and stored in a file called an assembly. At run time, the assembly is compiled to its final state by the CLR. While running, the CLR provides memory management, type-safety checks, and other run-time tasks for the application.

Applications that run under the CLR are called managed code because the CLR takes care of many of the tasks that would have formerly been handled in the application’ s executable itself. Managed code solves the Windows programming problems of component registration and versioning (sometimes called DLL Hell) because the assembly contains all the versioning and type information that the CLR needs to run the application. The CLR handles registration dynamically at run time, rather than statically through the system registry as is done with applications based on the Common Object Model (COM).

The .NET class library provides access to all the features of the CLR. The .NET class library is organized into namespaces. Each namespace contains a functionally related group of classes. Table 1-4 summarizes the .NET namespaces that are of the most interest to Web application programmers.

A Summary of the .NET Framework Class Library



Provides classes for

Common types


All the common data types, including strings, arrays, and numeric types. These classes include methods for converting types, for manipulating strings and arrays, and for math and random number tasks.

Data access

System.Data, System.Data.Common, System.Data.OleDb,

Accessing databases. These classes include methods for connecting to databases, performing commands, retrieving data, and modifying data.



Debugging and tracing application execution.

File access

System.IO, System.IO.IsolatedStorage, System.DirectoryServices

Accessing the file system. These include methods for reading and writing files and getting paths and filenames.

Network communication

System.Net, System.Net.Sockets

Communicating over the Internet using low-level protocols such as TCP/IP. These classes are used when creating peer-to-peer applications.


System.Security.Cryptography, System.Security.Permissions, System.Security.Policy, System.Web.Security

Providing user authentication, user authorization, and data encrypting.

Web applications

System.Web, System.Web.Caching, System.Web.Configuration, System.Web.Hosting, System.Web.Mail,
, System.Web.UI, System.Web.UI.Design, System.Web.UI.WebControls, System.Web.UI.HtmlControls

Creating client-server applications that run over the Internet. These are the core classes used to create ASP.NET Web applications.

Web services

System.Web.Services, System.Web.Services.Configuration, System.Web.Services.Description,

Creating and publishing components that can be used over the Internet. These are the core classes used to create ASP.NET Web services.

Windows applications

System.Windows.Forms, System.Windows.Forms.Design

Creating applications using the Microsoft Windows user interface components. These classes provide Windows forms and controls as well as the ability to create custom controls.

XML data

System.Xml, System.Xml.Schema, System.Xml.Serialization, System.Xml.Xpath, System.Xml.Xsl

Creating and accessing XML files.

Since the .NET namespaces organize classes by function, you can use them to help locate the classes and class members that provide the CLR features you want to use. For example, the System namespace is one of the most commonly used namespaces because it contains the classes for all the fundamental data types. Any time you declare a variable with a numeric, string, or array type, you are using the System namespace.

This approach allows the .NET Framework to provide built-in methods for converting data types and manipulating strings and arrays. For instance, the following lines of code use the built-in methods of the String and Array classes to sort a list.

Visual Basic .NET
' Declare and initialize a string.
Dim strFruit As String = "oranges apples peaches kumquats nectarines mangos"
' Declare an array.
Dim arrFruit As String()
' Place each word in an array element
arrFruit = strFruit.Split(" ")
' Sort the array.
' Put the sorted data back in the string.
strFruit = String.Join(" ", arrFruit)
Visual C#
// Declare and initialize a string.
string strFruit = "oranges apples peaches kumquats nectarines mangos";
// Declare an array
string[] arrFruit;
// Place each word in an array element.
arrFruit = strFruit.Split(" ".ToCharArray());
// Sort the array.
// Put the sorted array back in the string.
strFruit = System.String.Join(" ", arrFruit);

Many of the class methods in the System namespace can be used directly without first creating an object from the class. These are called shared members in Visual Basic .NET and static members in Visual C#. Shared and static members can be called from the class name itself, as in the System.Array.Sort line in the preceding code. Another example of a class with shared/static members is the Math class, as shown by the following Pi and Pow methods:

Visual Basic .NET
' Get the area of a circle.
dblCircArea = System.Math.Pi * System.Math.Pow(intRadius, 2)
Visual C#
// Get the area of a circle.
dblCircArea = System.Math.PI * System.Math.Pow(intRadius, 2);

The .NET Framework provides about 100 different namespaces. Only about 40 of the most common ones are summarized in Table 1-4. For a complete list of the .NET Framework namespaces, see the topic titled “Class Library” in the Visual Studio .NET online Help.

Programming Languages

ASP.NET and, indeed, the whole .NET Framework are programming language–independent. That means you can choose any language that has implemented a CLR-compliant compiler. In addition to developing its own programming languages, Microsoft has formed partnerships with many language vendors to provide .NET support for Perl, Pascal, Eiffel, Cobol, Python, Smalltalk, and other programming languages.

This book covers creating Web applications with the Visual Basic .NET and the Visual C# programming languages. These two languages are functionally equivalent, which means that they each provide equal abilities to create Web applications. The differences between the two languages are syntactical and stylistic.

Most current programmers will choose the language they are most familiar with. Current Visual Basic programmers will be more comfortable developing Web applications in Visual Basic .NET; C or C++ programmers will be more comfortable developing with Visual C#.

If you are new to programming or if you are choosing to extend your programming skills to new languages, learning both Visual Basic .NET and Visual C# is a practical goal. This is especially true when you create Web applications, since most of the tasks are performed through the .NET Framework classes, which means Visual Basic .NET code and Visual C# code often look nearly identical.

Table 1-5 summarizes some significant differences between Visual Basic .NET and Visual C#. This information is useful to keep in mind if you are choosing a programming language for the first time or if you are planning to switch between languages.

Visual Basic .NET and Visual C# Differences


Visual Basic .NET

Visual C# .NET

Case sensitive

Not case sensitive:

response.write("Yo") ' OK

Case sensitive:

response.write("Yo"); // Error Response.Write("Yo"); // OK

Functional blocks

Use beginning and ending statements to declare functional blocks of code:

Sub Show(strX as String)
End Sub

Use braces to declare functional blocks of code:

void Show (string strX)

Type conversion

Implicit type conversions are permitted by default:

Dim intX As Integer
intX = 3.14  ' Permitted

You can limit conversions by including an Option Strict On statement at the beginning of modules.

Type conversions are performed explicitly by casts:

int intX;
intX = 3.14; // Error!
intX = (int)3.14; //Cast, OK.

Or, use type conversion methods:

string strX;
strX = intX.ToString();


Array elements are specified using

arrFruit(1) = "Apple"

Array elements are specified using square brackets:

arrFruit[1] = "Apple";


You can omit parentheses after method names if arguments are omitted:

strX = objX.ToString

You must include parentheses after all methods:

strX = objX.ToString();


Statements are terminated by carriage return:


Statements are terminated by the semicolon (;):



Statements are continued using the underscore (_):

intX = System.Math.Pi * _

Statements continue until the semicolon (;) and can span multiple lines if needed:

intX = System.Math.PI * 

String operator

Use the ampersand (&) or plus sign (+) to join strings:

strFruit = "Apples" & _
  " Oranges"

Use the plus sign (+) to join strings:

strFruit = "Apples" + 
  " Oranges";


Use =, >, <, >=, <=, <> to compare values:

If intX >= 5 Then

Use ==, >, <, >=, <=, != to compare values:

if (intX >= 5)


Use the Not keyword to express logical negation:

If Not IsPostBack Then

Use the ! operator to express logical negation:

if (!IsPostBack)

Object comparison

Use the Is keyword to compare object

If objX Is objY Then

Use == to compare object variables:

if (objX == objY)

Object existence

Use the Nothing keyword or the IsNothing function to check if an object exists:

If IsNothing(objX) Then

Use the null keyword to check if an object exists:

if (objX == null)

In addition to the differences shown, there are significant keyword differences between the two languages. The code examples throughout this book illustrate those differences. The Visual Studio .NET Help topic “Language Equivalents” provides a complete comparison of Visual Basic .NET, Visual C#, and other Microsoft languages.



Using Visual Studio .NET

The Visual Studio .NET programming environment presents new window types, new ways to manage those windows, and new integration with Internet content. This lesson offers a tour of these new features as well as an overview of some of the older Visual Studio .NET debugging and Help features presented from a Web application–programming viewpoint.

After this section, you will be able to

  • Use the Start page to open new or existing projects, get current product information, and set environment preferences
  • List the two different Visual Studio .NET window types and use the Auto Hide feature to make the most out of screen space for editing documents
  • Cut and paste items using the Clipboard Ring on the Toolbox
  • Edit Web forms and HTML pages visually or in HTML
  • Write code using the Code Editor’ s automated features and modify Visual Studio .NET settings to turn those features on or off
  • Build, run, and debug applications using Visual Studio .NET
  • Get Help and set Help filters for your preferred programming language

The Start Page

When you start Visual Studio .NET, the first thing you see is the Start page, as shown in the image below.
The Start page contains various panes to make information easier to find and to help simplify some common tasks, such as opening a recent file.


The Projects pane, shown on the left hand side, displays the most recently saved projects in the form of hyperlinks. To open one of these recent projects, click the project name. To create a new project or to open an existing project not displayed in the recent projects list, click the appropriate button on the Projects pane (top area).

To the left of the Start page is a list of other topics containing current information about Visual Studio .NET, other Microsoft products, programming, guidance, and other information. If you click one of these topics, the Start page displays the topic, as shown in figure below.


The information displayed in the Start page is dynamic, with much of the information coming from the Internet. This ensures that the information is current; it’ s a good idea to check the Headlines and Downloads panes occasionally to get the latest news.

Creating a New Project

Click on the “New Project” Link in the start page. A pop-up will appear asking you what type of project you would like to start.


Select from the left pane Visual Basic>Web and from the middle list “ASP.NET Web Application”.

At the bottom, type in your project name (make sure it does not contain any spaces or invalid characters like “$”, “^”, “%”, “” or “/”.

Choose the location where you would like your project to be saved. By default, it will go into your Documents Folder Visual Studio 2010Projects.
The solution is the entity which can hold one or more projects. If you are building a DLL and you would like to create an installer for it, you would create two projects which belong to the same solution.

For starting, the solution will be named the same as the application and it is recommended that you keep the .sln file (the file extension for solutions is .sln) outside the build directory.

For this, make sure you tick “Create Directory for Solution” tickbox.

Leave the “Add to Source control” unticked as we will be working without a Source Safe Server.

Press OK when done.

Visual Studio .NET Windows

Visual Studio .NET has two types of windows: Document windows and Tool windows.
Document windows display the content of your application: the forms, Web pages, and code all appear in Document windows.
You can have multiple Document windows open at once, and you can choose between them by clicking their tabs near the top of
the screen, as shown below.


The Tool windows display the components you use to create your application. These components include the controls, database connections, classes, and properties you use in the project. Tool windows are displayed to the left and right of the Document windows and they can be set to slide in or out of view by clicking their tabs.

To cause a tabbed Tool window to remain on screen, toggle the Auto Hide icon at the top right of the Tool window. The Auto Hide icon looks like a tiny pushpin. Click the pushpin again to cause the Tool window to return to tabbed display. You can use the tabbed display to hide the Tool windows on both sides of the Document window and provide more space for editing your application’ s content


The Visual Studio .NET Toolbox displays the controls and components you can add to a Document window. The contents of the Toolbox change depending on the type of document you are currently editing. When you are editing a Web form, for example, the Toolbox displays the server controls, HTML controls, data controls, and other components that you can add to a Web form, as shown

toolbox The components in the Toolbox are categorized. When you click one of the categories, the Toolbox displays the items in that category. You can scroll through the items in the Toolbox by clicking the up and down arrows at the top and the bottom of the component list.

One helpful feature is that you can hold your mouse pointer over a control and it will pop up a help message that talks about it a bit. Here you can see that a ComboBox “displays an editable text box with a drop-down list of permitted values.” Try this with some controls that don’t sound familiar. There are some controls that you might never use, but explore what’s there and you might find something new that makes things easier for you.

When the current document is code, the Toolbox contains only the Clipboard Ring. The Clipboard Ring keeps track of the last 20 items you have copied (Ctrl+C) or cut (Ctrl+X) so that you can paste them back into a document.
To paste an item from the Clipboard Ring, click the item and drag it to where you want to insert it.

When you move the mouse pointer over an item in the Clipboard Ring, Visual Studio expands that item to show you more of the text it contains.


Editing Web Documents

You can edit Web forms and HTML documents visually by using the same drag-and-drop techniques that you use when editing Windows forms, or you can edit them as text files. To switch between edit modes, click the Design or HTML tabs at the bottom of the Document window.

There is no way to do some tasks visually, so you will often need to edit Web documents as text. Using the HTML mode can also be more convenient than using the visual tools if you are already familiar with HTML. The IntelliSense technology in Visual Studio .NET provides help for completing HTML elements.

You can switch back to Design mode to preview any changes you make in HTML mode simply by clicking on the Design tab at the bottom of the Document window.


Web Forms pages have code-behind files associated with them. These files are created automatically when you create a new Web form.

They have the same base name as the Web form with the .vb or .cs filename extension added. You can view them by pressing F7 or right clicking on the .aspx file and choosing Show Code as shown below.


The Visual Studio .NET Code Editor also provides completion through IntelliSense for keywords and class members that you use in code

If you are programming in Visual Basic, the autocomplete feature will also correct the capitalization of keywords and member names when you complete a line. If you are using Visual C#, however, Visual Studio .NET will not recognize a keyword or member name if it is not capitalized correctly. This is because Visual Basic .NET is not case sensitive, but Visual C# is.

The Visual Studio .NET Code Editor highlights syntax errors and undeclared variables as you complete each line. These errors are underlined with a squiggly line, and if you move the mouse pointer over the error, a description of the error is displayed

You can turn most of the Code Editor’ s automatic features on or off by changing the settings in the Tools>Options settings.You can also use the Options dialog box to change automatic indentation, code block completion, and other language-specific settings.

The Solution Explorer

Visual Studio .NET organizes applications into projects and solutions. A project is a collection of files that will ultimately make up a single executable. A solution is a group of projects that make up a single functional unit. You view the files in a solution by using the Solution Explorer.

The project shown in bold is the start-up project. The start-up project is the project that runs when you click Start in Visual Studio .NET. When you’ re developing multiple projects as part of a single solution, the start-up project usually calls the other projects in the solution.
Information about a solution is stored in a solution file (.sln), which is placed in your My Documents folder by default. You can open the solution using this file, or you can open projects directly using their project files (.vbproj or .csproj), which are placed in the project folders. If you open a project file, Visual Studio .NET creates a new solution file when you save the project.

Running a Project

You can run a project within Visual Studio .NET by clicking Start on the toolbar, by choosing Start from the Debug menu, or by pressing F5. When you run a project, Visual Studio .NET builds the project files and displays any errors that occur in the Task List window.
The same error list appears when you decide to compile/deploy your project by pressing Build/Build[Applicationname] from the menu.

Double-clicking the error description in the Task List selects the line with the error in the Document window so that you can correct the error.


If no errors occur during the build, Visual Studio .NET starts the application in debug mode and, in the case of a Web application, starts Internet Explorer, and displays the application’ s start page.

If an error occurs while the application is running in debug mode, Visual Studio .NET displays the error in the browser.

You have two choices at this point:

If you know what caused the error, you can stop the application by closing the browser window to return to Visual Studio .NET and correct the error shown.

If you are unsure of what caused the error, you can click Back in the browser, switch to Visual Studio .NET to set a breakpoint at a position in the code before the error occurred, and then switch back to the browser to try the task again. Visual Studio .NET will stop the application at the breakpoint you set so that you can step through the code to locate the source of the error.

Once you locate the error, you must stop the application before you can correct it. In previous versions of Visual Studio .NET, you could correct errors in debug mode and continue running the application.


Setting Breakpoints and Watching Variables

You can stop a project at a particular line of code by setting a breakpoint. When Visual Studio .NET runs the project, Visual Studio .NET will stop the project and display the line with the breakpoint in the Code Editor before that line executes.

To set a breakpoint, click the gray margin to the left of the line you want to break at, or select the line and press F9


Once Visual Studio .NET stops at a breakpoint, you can view the value of active variables by moving the mouse pointer over the variable. If the variable is a complex type, such as an object or an array, you can view its data by adding it to the Watch window below.

After you have stopped at a breakpoint, you can continue running your application by clicking Continue on the toolbar or by pressing F5. Alternately, you can execute one line at a time by pressing F10 or F11.

F10 executes each procedure call as a single statement. In other words, it steps over a procedure by executing it and stopping at the next line in the current procedure. F11 executes procedure calls by stepping in to the procedure and stopping at the first line in the called procedure. To execute a single line of code outside of the context of the project, type the code in the Command window.

The winter of our Missing Disc Content (Re-Post)

The UK government, ten years ago, launched several reforms of the
public sector, pinning their faith in radical IT initiatives to create a
powerful, efficient, welfare state. Only now is the full extent of the failure
of this dream becoming apparent. Our square-jawed reporter investigates
remorselessly, ‘in the interests of greater transparency’.

‘a passionate commitment to sharing data and systems’
quote from Sir David Varney, a former chairman of HM  Revenue and Customs

It was surely the British Government’s winter of missing disc  content.

First in October 2007 came the Revenue and Custom’s missing discs fiasco:
then, on 17 December, in a marvelous piece of theatre, the Secretary of State
for Transport Ruth Kelly (the only person to have a makeover in British politics
and to look better for it) let the country know that ‘in the interests of  greater transparency I would like to draw the House’s [House of Commons]  attention to a breach, which affects a significant number of people.’

‘in the interests of greater transparency I would like to draw  the House’s [House of Commons] attention to a breach, which affects a  significant number of people.’

It was a sentence to savour. What she meant is that a hard drive containing  the names, addresses and phone numbers of more than three million British  learner drivers have gone missing from the Pearson Driving Assessment’s ‘secure  facility’ in Iowa – back in May. Ms Kelly’s predecessor, Stephen Ladyman, said  he had known of the breach when it happened but didn’t think to tell his  colleague.

“I assumed the new minister would’ve been told about it. It doesn’t look like
a cover up to me – it looks like one of those things”, he said.

Recently the NHS IT agency Connecting for Health warned hospitals not to post
discs containing unencrypted personal data to the central NHS Tracing Service,
run by a private contractor in the Midlands. If data was posted in this way, it  would immediately be destroyed, a spokesman said.

Yet while people fretted about government departments sharing personal data,
another piece of news in late 2007 demonstrated that if this sharing was done
correctly it might actually save lives.

Anthony Joseph was jailed for the killing of Richard Whelan, a bus passenger.
Joseph had just been released from youth custody in Manchester, but should have
been retained because he had an outstanding arrest warrant in Liverpool.

But the prisons computer had no link up with the Police National Computer on  which the arrest warrants were held. Data sharing between departments about  individuals can have direct benefits.

It is clear that there needs to be a culture within government where both the  power and the responsibility for implementing those benefits is understood  throughout.

But there is an alternative, more worrying analysis of the situation: that  the child benefit data fiasco and others like it, was the result of a government  overwhelmed by the scale of what it is trying to do with IT.

Using legislation to prevent disaster

Soon after the Revenue incident, Britain’s Chancellor Alistair  Darling, who is responsible for Revenue & Customs, said that Richard Thomas,  the Information Commissioner, the independent regulator for data protection law would have his powers increased and soon legislation is likely to be pushed through Parliament to toughen penalties for anyone who fails to follow data security guidelines.

Already, staff have been banned from storing sensitive data on discs unless it is encrypted and computers have been disabled to stop them from being used to download data; – all at a tremendous cost to the Government’s IT budget which had already been trimmed by the then Chancellor Gordon Brown, currently Britain’s Prime Minister. .’This is all indicative of a lack of expertise,’ says Helen Margetts, professor of society and the internet at Oxford Internet Institute and the co-author of a study that is devastatingly critical of the government’s IT programme.

‘This is all indicative of a lack of expertise,’

Published last year by Margetts and her colleague, Patrick Dunleavy of the London School of Economics, the study of IT projects in seven leading countries discovered that governments that place big IT contracts in the hands of a few big contractors are the ones most likely to experience failures.

The Outsourcing and PFI armlock

The report highlights that Britain was unique in the extent to which it outsourced projects so that large IT companies had the government over the proverbial barrel.

The study found that Britain had ‘the most concentrated government IT market in the world, with a near-monopolistic lead supplier (EDS)

  1. huge contract sizes, poorly understood use of private finance initiative (PFI) contracts for inappropriate IT projects
  2. virtually no in-house capacity to manage (let alone develop) IT systems
  3. IT contractors ‘drove a coach and horses’ through budgets, the report alleges.

That HMRC is charged so much extra for elementary tweaks shows how weak the government’s grasp of its own IT has become Dunleavy says it has become became expected practice to pitch prices for  initially completed tranches of work relatively low, in the confident expectation that later revisions and extensions would create negotiated
contracts of between ‘four and six times the initial competed contract price.’.
It’s only a short step from there to demanding £5,000 to ‘strip’ sensitive personal information from the child benefit data – a task that, with a properly designed database, would take approximately 30 minutes of a DBA’s time and very little effort.

That HMRC is charged so much extra for elementary tweaks shows how weak the government’s grasp of its own IT has become, Margetts adds. the process just
wasn’t considered important.

The subsequent loss of the discs then exposes a culture – not just a one-off  error – where unencrypted personal data is regularly sent back and forth between public bodies on physical media, rather than via secure networks because, as Margetts says, ‘the process just wasn’t considered important.’

In theory, the government has been trying to raise its game for more than two years.

One of the three central aims of the Transformational Government Strategy, published in November 2005, was to create a new ‘IT profession in government’.

Part of this process is to hire people with IT qualifications for the civil service fast stream, where they can expect to rise to the top. Six fast-streamers were hired last year; 15 will shortly be selected for entry this year.

The other two strands of Transformational Government create a radically new IT infrastructure, based on public bodies sharing systems, and those systems sharing data on every individual in the country.

Last December, the ambition was raised when Sir David Varney, a former chairman of HM Revenue and Customs who is now Gordon Brown’s adviser on transforming public services, published further radical plans.

They are based on ‘a passionate commitment to sharing data and systems’.

He maintains that each citizen has at least five widely used identity numbers. ‘In future, one accurate and robust registration should underpin all services. I see absolutely no objection to public services sharing basic administrative information like names, numbers, addresses and dates of birth.’

This vision of transformed government engages with a barrage of IT-based initiatives aimed at tackling specific political priorities. These include:

  • the ID card, which will be enabled by linking at least three existing identity databases;
  • ContactPoint, the newly renamed index of information relating to every child in the country – now delayed for five months;
  • e-Borders, the immigration system which is designed to give immigration  officers and airline check-in staff overseas the ability to check passengers’ credentials against government records;
  • the NHS care records service, creating a shared electronic health record for every individual in England (Scotland and Wales have parallel schemes.

But there have been repeated warnings that the schemes are unfeasible.
Professor Ross Anderson, a security expert at Cambridge University, suggested that the proposed children’s database was intrusive and possibly illegal but as ever government brushed it off – as it did with warnings about internet security and the centralisation of personal health records. Now, the two lost discs have put those dismissals under fresh scrutiny.

Over the past decade, the public sector’s ability to manage big IT projects has repeatedly been called into question. The usual response is that the government’s record is no worse than private industry’s, or its counterparts in the rest of the world.

However, repeated examples – and the LSE study – suggest there is simply too little IT expertise within the government. And yet far from scaling up efforts to meet the challenge of a new IT infrastructure, the government is scaling back IT.

‘One symptom is the changing of the name of the old e-government unit. It’s deprioritising the issue just when it should be prioritising it, ‘Margetts adds.

The big question now for the government is whether it will be able to reverse
its internal culture, where IT expertise is not treated as a ‘core activity’, and yet sweeping policies embracing the population which rely on huge IT projects are.

But surely the biggest task it faces is convincing the public that the estimated £2 billion wasted on abandoned IT projects since 2000 can be justified.

It has to be an estimated figure as the National Audit Office (NAO), set up to scrutinise public spending on behalf of parliament, does not keep a complete list of which schemes are cancelled so no ‘real’ amounts exist.

Move along there now, there’s nothing to see

A quick inclusion of the latest failed schemes makes difficult  reading.

The Police Portal when launched in 2003 allowed the public, should they wish, to report minor crimes and distribute video and pictures of crime over the web. The collated information was then distributed to the correct force area.

a range of serious defects and delays

Though the site suffered from a chronic lack of marketing, figures show that the portal was being used to report nearly 30,000 crimes a year, but that’s  before it began to stutter in 2005 when a contract to build a replacement portal  was won by technology firm QinetiQ.

The service was suspended in the spring of 2007 and then dropped altogether in December because the site was found to have ‘a range of serious defects and delays.’

Over the last twelve months, the unoperational scheme cost the taxpayer an extraordinary £5.2 million. The deal is now subject to a legal dispute.

A Catalogue of IT disasters

Other mismanaged schemes have included the £1.6 billion frittered away by the Department for Work and Pensions on a new benefit card which was based on out-moded technology; the much derided £486 million upgrade to the Child Support Agency’s computer which could not handle the number of new and existing claims and the £140 million on a more efficient benefit payment system that proved less smooth-running than the one it was supposed to replace.

Other major blunders included a £273 million adult learning programme that enabled thousands of people to gain extra qualifications. It was found that ‘corner cutting’ by two ministers to rush the scheme into operation led to the police advising the Government to close it down after finding evidence of extensive fraud.

As well as not keeping complete costs for all scuppered scehemes the NAO does not have figures for modifications which are necessary to repair new systems that have failed to perform as required.

30 percent of government IT projects and programmes are successful

An example of this is experimental work on the £12bn plus NHS computer system  where outdated technology was installed at a hospital in London and a short time later had to replaced when it was discovered to be ‘unfit for purpose’.

The 14 bn spend

Speaking at the Government UK IT Summit last year Joe Harley, CIO at the Department for Work and Pensions, one of Whitehall’s biggest central departments, bravely confessed that only ’30 percent of government IT projects and programmes are successful’.

‘We want 90 percent by 2010/11. We want to achieve a 20 percent overall reduction on IT spend in government… the government spends £14bn per year on IT in Britain. It’s not sustainable as a government to continue to spend at these levels. We need to up the quality while reducing the spend. There are some big improvements to be made.’

You said it Joe.
Richard MorrisAuthor profile: Richard Morris

Richard Morris has been a journalist for just about two decades. In that
time, his hair has fallen out as have several teeth. He has also worked in
public relations. First with then with Miller Shandwick where he worked on various tech accounts including Digital Island, Microsoft and Claranet. He
has subsequently offered strategic advice to Sony, the London Metal Exchange, Revive, the world’s largest paper-merchant, and several UK and Chinese asset management companies who specialise in turnaround finance. His award-winning biography of the Edwardian ghosthunter and psychic researcher Harry Price was
published late last year to huge critical acclaim and he is currently working a commissioned biography of a well-known English cultural icon. His hobbies include looking into other people’s business, falling off his bike and laughing maniacally.