Brief :
An article giving basic introduction to ASP.NET ,Underlying
technologies and Advantages of ASP.NET over asp
Introduction
I have seen many tutorials on ASP.NET but most of them
starts with coding and writing your first ASP.NET Program.
But here I has written this tutorial for explaining
why there is a need for ASP.NET when classy asp is working
fine and what are the underlying technology behind ASP.NET,
What programming model ASP.NET Provides to programmers .
Now let us get started.....
ASP.NET is the new offering for Web developers from the
Microsoft .It is not simply the next-generation of ASP;
in fact, it is a completely re-engineered and enhanced technology
that offers much, much more than traditional ASP and can
increase productivity significantly.
Because it has evolved from ASP, ASP.NET
looks very similar to its predecessor—but only at
first sight. Some items look very familiar, and they remind
us of ASP. But concepts like Web Forms, Web Services, or
Server Controls gives ASP.NET the power to build real Web
applications.
Looking Back : Active Server Pages (ASP)
Microsoft Active Server Pages (ASP) is a server-side scripting
technology. ASP is a technology that Microsoft created to
ease the development of interactive Web applications. With
ASP you can use client-side scripts as well as server-side
scripts. Maybe you want to validate user input or access
a database. ASP provides solutions for transaction processing
and managing session state. Asp is one of the most successful
language used in web development.
Problems with Traditional ASP
There are many problems with ASP if you think of
needs for Today's powerful Web applications.
- Interpreted and Loosely-Typed Code :
ASP scripting code is usually written in languages such
as JScript or VBScript. The script-execution engine that
Active Server Pages relies on interprets code line by
line, every time the page is called. In addition, although
variables are supported, they are all loosely typed as
variants and bound to particular types only when the code
is run. Both these factors impede performance, and late
binding of types makes it harder to catch errors when
you are writing code.
- Mixes layout (HTML) and logic (scripting code) :
ASP files frequently combine script code with HTML.
This results in ASP scripts that are lengthy, difficult
to read, and switch frequently between code and HTML.
The interspersion of HTML with ASP code is particularly
problematic for larger web applications, where content
must be kept separate from business logic.
- Limited Development and Debugging Tools :
Microsoft Visual InterDev, Macromedia Visual UltraDev,
and other tools have attempted to increase the productivity
of ASP programmers by providing graphical development
environments. However, these tools never achieved the
ease of use or the level of acceptance achieved by Microsoft
Windows application development tools, such as Visual
Basic or Microsoft Access. ASP developers still rely heavily
or exclusively on Notepad.
Debugging is an unavoidable part of any software development
process, and the debugging tools for ASP have been minimal.
Most ASP programmers
resort to embedding temporary Response. Write statements
in their code to trace the progress of its execution.
- No real state management :
Session state is only maintained if the client browser
supports cookies. Session state information can only be
held by using the ASP Session object. And you have to
implement additional code if you, for example, want to
identify a user.
- Update files only when server is down
If your Web application makes use of components,
copying new files to your application should only be done
when the Web server is stopped. Otherwise it is like pulling
the rug from under your application's feet, because the
components may be in use (and locked) and must be registered.
- Obscure Configuration Settings :
The configuration information for an ASP web application
(such as session state and server timeouts) is stored
in the IIS metabase. Because the metabase is stored in
a proprietary format, it can only be modified on the server
machine with utilities such as the Internet Service Manager.
With limited support for programmatically manipulating
or extracting these settings, it is often an arduous task
to port an ASP application from one server to another.
Introducing ASP.NET
ASP.NET was developed in direct response to the problems
that developers had with classic ASP. Since ASP is in such
wide use, however, Microsoft ensured that ASP scripts execute
without modification on a machine with the .NET Framework
(the ASP engine, ASP.DLL, is not modified when installing
the .NET Framework). Thus, IIS can house both ASP and ASP.NET
scripts on the same machine.
Advantages of ASP.NET
- Separation of Code from HTML :
To make a clean sweep, with ASP.NET you have the
ability to completely separate layout and business logic.
This makes it much easier for teams of programmers and
designers to collaborate efficiently. This makes it much
easier for teams of programmers and designers to collaborate
efficiently.
- Support for compiled languages :
developer can use VB.NET and access features such
as strong typing and object-oriented programming. Using
compiled languages also means that ASP.NET pages do not
suffer the performance penalties associated with interpreted
code. ASP.NET pages are precompiled to byte-code and Just
In Time (JIT) compiled when first requested. Subsequent
requests are directed to the fully compiled code, which
is cached until the source changes.
- Use services provided by the .NET Framework :
The .NET Framework provides class libraries that can be
used by your application. Some of the key classes help
you with input/output, access to operating system services,
data access, or even debugging. We will go into more detail
on some of them in this module.
- Graphical Development Environment :
Visual Studio .NET provides a very rich development
environment for Web
developers. You can drag and drop controls and set properties
the way you do in Visual Basic 6. And you have full IntelliSense
support, not only for your code, but also for HTML and
XML.
- State management :
To refer to the problems mentioned before, ASP.NET
provides solutions for session and application state management.
State information can, for example, be kept in memory
or stored in a database. It can be shared across Web farms,
and state information can be recovered, even if the server
fails or the connection breaks down.
- Update files while the server is running! :
Components of your application can be updated while
the server is online and clients are connected. The Framework
will use the new files as soon as they are copied to the
application. Removed or old files that are still in use
are kept in memory until the clients have finished.
- XML-Based Configuration Files :
Configuration settings in ASP.NET are stored in XML
files that you can easily read and edit. You can also
easily copy these to another server, along with the other
files that comprise your application.
ASP.NET Overview
Here are some point that gives the quick overview of ASP.NET.
- ASP.NET provides services to allow the creation, deployment,
and execution of Web Applications and Web Services
- Like ASP, ASP.NET is a server-side technology
- Web Applications are built using Web Forms. ASP.NET
comes with built-in Web Forms controls, which are responsible
for generating the user interface. They mirror typical
HTML widgets like text boxes or buttons. If these controls
do not fit your needs, you are free to create your own
user controls.
- Web Forms are designed to make building web-based applications
as easy as building Visual Basic applications
ASP.NET Architecture
ASP.NET is based on the fundamental architecture of .NET
Framework. Visual studio provide a uniform way to combine
the various features of this Architecture.
Architecture is explained form bottom to top in the following
discussion.
-
At the bottom of the Architecture is
Common Language Runtime. NET Framework common language
runtime resides on top of the operating system services.
The common language runtime loads and executes code
that targets the runtime. This code is therefore called
managed code. The runtime gives you, for example, the
ability for cross-language integration.
-
.NET Framework provides a rich
set of class libraries. These include base classes,
like networking and input/output classes, a data class
library for data access, and classes for use by programming
tools, such as debugging services. All of them are brought
together by the Services Framework, which sits on top
of the common language runtime.
-
ADO.NET is Microsoft’s ActiveX
Data Object (ADO) model for the .NET Framework. ADO.NET
is not simply the migration of the popular ADO model
to the managed environment but a completely new paradigm
for data access and manipulation.
ADO.NET is intended specifically for developing web
applications. This is evident from its two major design
principles:
1) Disconnected Datasets—In ADO.NET, almost all
data manipulation is done outside the context of an
open database connection.
2) Effortless Data Exchange with XML—Datasets
can converse in the universal data format of the Web,
namely XML.
-
The 4th layer of the
framework consists of the Windows application model
and, in parallel, the Web application model.
The Web application model-in the slide presented as
ASP.NET-includes Web Forms and Web Services.
ASP.NET comes with built-in Web Forms controls, which
are responsible for generating the user interface. They
mirror typical HTML widgets like text boxes or buttons.
If these controls do not fit your needs, you are free
to create your own user controls.
Web Services brings you a model to bind different applications
over the Internet. This model is based on existing infrastructure
and applications and is therefore standard-based, simple,
and adaptable.
Web Services are software solutions delivered via Internet
to any device. Today, that means Web browsers on computers,
for the most part, but the device-agnostic design of
.NET will eliminate this limitation.
- One of the obvious themes of .NET is unification and
interoperability between various programming languages.
In order to achieve this; certain rules must be laid and
all the languages must follow these rules. In other words
we can not have languages running around creating their
own extensions and their own fancy new data types. CLS
is the collection of the rules and constraints that every
language (that seeks to achieve .NET compatibility) must
follow.
- The CLR and the .NET Frameworks in general, however,
are designed in such a way that code written in one language
can not only seamlessly be used by another language. Hence
ASP.NET can be programmed in any of the .NET compatible
language whether it is VB.NET, C#, Managed C++ or JScript.NET.
Quick Start :To ASP.NET
After this short
excursion with some background information on the .NET Framework,
we will now focus on ASP.NET.
File name extensions
Web applications written with ASP.NET will consist of many
files with different file name extensions. The most common
are listed here.
Native ASP.NET files by default have the extension .aspx
(which is, of course, an extension to .asp) or .ascx.
Web Services normally have the extension .asmx.
Your file names containing the business
logic will depend on the language you use. So, for example,
a C# file would have the extension .aspx.cs.
You already learned about the configuration
file Web.Config.
Another one worth mentioning is the
ASP.NET application file Global.asax—in the ASP world
formerly known as Global.asa. But now there is also a codebehind
file Global.asax.vb, for example, if the file contains Visual
Basic.NET code. Global.asax is an optional file that resides
in the root directory of your application, and it contains
global logic for your application.
All of them
are text files
All of these files are text files, and therefore human readable
and writeable.
The easiest way to start
The easiest way to start with ASP.NET is to take a simple
ASP page and change the file name extension to .aspx.
Page Syntax :
here is quick introduction
of syntax used in ASP.NET
Directives
You
can use directives to specify optional settings used by
the page compiler when processing ASP.NET files. For each
directive you can set different attributes. One example
is the language directive at the beginning of a page
defining the default programming language.
Code Declaration
Blocks
Code
declaration blocks are lines of code enclosed in <script>
tags. They contain the runat=server attribute, which
tells ASP.NET that these controls can be accessed on the
server and on the client. Optionally you can specify the
language for the block. The code block itself consists of
the definition of member variables and methods.
Code Render Blocks
Render
blocks contain inline code or inline expressions enclosed
by the character sequences shown here. The language used
inside those blocks could be specified through a directive
like the one shown before.
HTML Control Syntax
You
can declare several standard HTML elements as HTML server
controls. Use the element as you are familiar with in HTML
and add the attribute runat=server. This causes the
HTML element to be treated as a server control. It is now
programmatically accessible by using a unique ID. HTML server
controls must reside within a <form> section that
also has the attribute runat=server.
Custom Control
Syntax
There are two different kinds of custom
controls. On the one hand there are the controls that ship
with .NET, and on the other hand you can create your own
custom controls. Using custom server controls is the best
way to encapsulate common programmatic functionality.
Just specify elements as you did with
HTML elements, but add a tag prefix, which is an alias for
the fully qualified namespace of the control. Again you
must include the runat=server attribute. If you
want to get programmatic access to the control, just add
an Id attribute.
You can include properties for each
server control to characterize its behavior. For example,
you can set the maximum length of a TextBox. Those
properties might have sub properties; you know this principle
from HTML. Now you have the ability to specify, for example,
the size and type of the font you use (font-size
and font-type).
The
last attribute is dedicated to event binding. This can be
used to bind the control to a specific event. If you implement
your own method MyClick(), this method will be executed
when the corresponding button is clicked if you use the
server control event binding shown in the slide.
Data Binding Expression
You
can create bindings between server controls and data sources.
The data binding expression is enclosed by the character
sequences <%#
and %>.
The data-binding model provided by ASP.NET is hierarchical.
That means you can create bindings between server control
properties and superior data sources.
Server-side Object
Tags
If
you need to create an instance of an object on the server,
use server-side object tags. When the page is compiled,
an instance of the specified object is created. To specify
the object use the identifier attribute. You can
declare (and instantiate) .NET objects using class
as the identifier, and COM objects using either progidor
classid.
Server-side Include
Directives
With
server-side include directives you can include raw contents
of a file anywhere in your ASP.NET file. Specify the type
of the path to filename with the pathtype
attribute. Use either File, when specifying a relative
path, or Virtual, when using a full virtual path.
Server-side Comments
To
prevent server code from executing, use these character
sequences to comment it out. You can comment out full blocks—not
just single lines.
First ASP.NET
Program.
Now
let us have our First ASP.NET program.
Let’s
look at both the markup and the C# portions of a simple
web forms application that generates a movie line-up dynamically
through software.
Markup Portion :
Web form application part 1 -- SimpleWebForm.aspx
<% @Page Language="C#" Inherits="MoviePage" Src="SimpleWebForm.cs" %>
<html>
<body background="Texture.bmp">
<TITLE>Supermegacineplexadrome!</TITLE>
<H1 align="center">
<FONT color="white" size="7">
Welcome to Supermegacineplexadrome!
</FONT>
</H1>
<P align="left">
<FONT color="lime" size="5">
<STRONG>
<U>Showtimes for <%WriteDate();%></U>
</STRONG>
</FONT>
</P>
<FONT size="5" color="yellow">
<%WriteMovies();%>
</FONT>
</body>
</html>
And this is where the C# part of a
web forms application comes in.
Web
form application part 2 -- SimpleWebForm.cs
using
System;
using System.Web.UI;
using System.Web.UI.WebControls;
public class MoviePage:Page{
protected void
WriteDate(){
this.Response.Write(DateTime.Now.ToString());
}
protected void
WriteMovies(){
this.Response.Write(
"<P>The Glass Ghost (R) 1:05 pm, 3:25 pm, 7:00 pm</P>");
this.Response.Write(
"<P>Untamed Harmony (PG-13) 12:50 pm, 3:25 pm, 6:55 pm</P>");
this.Response.Write(
"<P>Forever Nowhere (PG) 3:30 pm, 8:35 pm</P>");
this.Response.Write(
"<P>Without Justice (R) 12:45 pm, 6:45 pm</P>");
}
}
Execution Cycle :
Now
let's see what’s happening on the server side. You
will shortly understand how server controls fit in.
A
request for an .aspx file causes the ASP.NET runtime to
parse the file for code that can be compiled. It then generates
a page class that instantiates and populates a tree of server
control instances. This page class represents the ASP.NET
page.
Now
an execution sequence is started in which, for example,
the ASP.NET page walks its entire list of controls, asking
each one to render itself.
The
controls paint themselves to the page. This means they make
themselves visible by generating HTML output to the browser
client.
Execution Process
We
need to have a look at what’s happening to your code
in ASP.NET.
Compilation, when
page is requested the first time
The
first time a page is requested, the code is compiled. Compiling
code in .NET means that a compiler in a first step emits
Microsoft intermediate language (MSIL) and produces metadata—if
you compile your source code to managed code. In a following
step MSIL has to be converted to native code.
Microsoft intermediate
language (MSIL)
Microsoft
intermediate language is code in an assembly language–like
style. It is CPU independent and therefore can be efficiently
converted to native code.
The
conversion in turn can be CPU-specific and optimized. The
intermediate language provides a hardware abstraction layer.
MSIL
is executed by the common language runtime.
Common language
runtime
The
common language runtime contains just-in-time (JIT) compilers
to convert the MSIL into native code. This is done on the
same computer architecture that the code should run on.
The
runtime manages the code when it is compiled into MSIL—the
code is therefore called managed code.
ASP.NET Applications
and Configuration
OVERVIEW
Like ASP, ASP.NET
encapsulates its entities within a web application. A web
application is an abstract term for all the resources available
within the confines of an IIS virtual directory. For example,
a web application may consist of one or more ASP.NET pages,
assemblies, web services configuration files, graphics,
and more. In this section we explore two fundamental components
of a web application, namely global application files (Global.asax)
and configuration files (Web.config).
Global.asax
Global.asax
is a file used to declare application-level events and objects.
Global.asax is the ASP.NET extension of the ASP Global.asa
file. Code to handle application events (such as the start
and end of an application) reside in Global.asax. Such event
code cannot reside in the ASP.NET page or web service code
itself, since during the start or end of the application,
its code has not yet been loaded (or unloaded). Global.asax
is also used to declare data that is available across different
application requests or across different browser sessions.
This process is known as application and session state management.
The
Global.asax file must reside in the IIS virtual root. Remember
that a virtual root can be thought of as the container of
a web application. Events and state specified in the global
file are then applied to all resources housed within the
web application. If, for example, Global.asax defines a
state application variable, all .aspx files within the virtual
root will be able to access the variable.
Like an ASP.NET page, the Global.asax file
is compiled upon the arrival of the first request for any
resource in the application. The similarity continues when
changes are made to the Global.asax file; ASP.NET automatically
notices the changes, recompiles the file, and directs all
new requests to the newest compilation. A Global.asax file
is automatically created when you create a new web application
project in the VS.NET IDE.
Application Directives
Application directives are placed at the top
of the Global.asax file and provide information used to
compile the global file. Three application directives are
defined, namely Application, Assembly, and Import. Each
directive is applied with the following syntax:
<%@ appDirective appAttribute=Value ...%>
Web.config :
In ASP, configuration settings for an application
(such as session state) are stored in the IIS metabase.
There are two major disadvantages with this scheme. First,
settings are not stored in a human-readable manner but in
a proprietary, binary format. Second, the settings are not
easily ported from one host machine to another.(It is difficult
to transfer information from an IIS’s metabase or
Windows Registry to another machine, even if it has the
same version of Windows.)
Web.config solves both of the aforementioned
issues by storing configuration information as XML. Unlike
Registry or metabase entries, XML documents are human-readable
and can be modified with any text editor. Second, XML files
are far more portable, involving a simple file transfer
to switch machines.
Unlike Global.asax, Web.config can reside
in any directory, which may or may not be a virtual root.
The Web.config settings are then applied to all resources
accessed within that directory, as well as its subdirectories.
One consequence is that an IIS instance may have many web.config
files. Attributes are applied in a hierarchical fashion.
In other words, the web.config file at the lowest level
directory is used.
Since Web.config is based on XML, it is extensible
and flexible for a wide variety of applications. It is important,
however, to note that the Web.config file is optional. A
default Web.config file, used by all ASP.NET application
resources, can be found on the local machine at:
\%winroot%\Microsoft.Net\Framework\version\CONFIG\machine.config
Summary
:
ASP.NET is an evolution of Microsoft’s
Active Server Page (ASP) technology. Using ASP.NET, you
can rapidly develop highly advanced web applications based
on the .NET framework. Visual Studio Web Form Designer,
which allows the design of web applications in an intuitive,
graphical method similar to Visual Basic 6. ASP.NET ships
with web controls wrapping each of the standard HTML controls,
in addition to several controls specific to .NET. One such
example is validation controls, which intuitively validate
user input without the need for extensive client-side script.
In many respects, ASP.NET provides major improvements
over ASP, and can definitely be considered a viable alternative
for rapidly developing web-based applications.
Related articles :