ASP .NET by chenmeixiu


									ASP .NET
Web Application

Gaurish N Rane

1. Introduction
2. History
3. Characteristics
4. Performance
5. Extension
6. Developing productivity
7. Development tools
8. Administration Tool
9. Versions
ASP.NET is a web application framework developed and marketed by Microsoft to
allow programmers to build dynamic web sites, web applications and web services. It
was first released in January 2002 with version 1.0 of the .NET Framework, and is the
successor to Microsoft's Active Server Pages (ASP) technology. ASP.NET is built on
the Common Language Runtime (CLR),
allowing programmers to write ASP.NET
code using any supported .NET language.

                                               Developed by Microsoft

                                                                3.5.30729.1 (3.5 SP1) / 2008-08-11;
                                               Latest release
                                                                282 days ago

                                                 Written in     .NET Languages

                                                   Type         Web application framework

                                                  License       Proprietary

After the release of Internet Information Services 4.0 in 1997, Microsoft began
researching possibilities for a new web application model that would solve common
complaints about ASP, especially with regard to separation of presentation and
content and being able to write "clean" code. Mark Anders, a manager on the IIS
team, and Scott Guthrie, who had joined Microsoft in 1997 after graduating from
Duke University, were tasked with determining what that model would look like.
The initial design was developed over the course of two months by Anders and
Guthrie, and Guthrie coded the initial prototypes during the Christmas holidays in

The initial prototype was called "XSP"; Guthrie explained in
a 2007 interview that, "People would always ask what the
X stood for. At the time it really didn't stand for anything.
XML started with that; XSLT started with that. Everything
cool seemed to start with an X, so that's what we originally
named it." The initial prototype of XSP was done using
Java, but it was soon decided to build the new platform on
top of the Common Language Runtime (CLR), as it offered
an object-oriented programming environment, garbage collection and other
features that were seen as desirable features that Microsoft's Component Object
Model platform didn't support. Guthrie described this decision as a "huge risk", as
the success of their new web development platform would be tied to the success of
the CLR, which, like XSP, was still in the early stages of development, so much so
that the XSP team was the first team at Microsoft to target the CLR. With the move
to the Common Language Runtime, XSP was re-implemented in C# (known
internally as "Project Cool" but kept secret from the public), and renamed to ASP+,
as by this point the new platform was seen as being the successor to Active Server
Pages, and the intention was to provide an easy migration path for ASP developers.
Mark Anders first demonstrated ASP+ at the ASP Connections conference in
Phoenix, Arizona on May 2, 2000. Demonstrations to the wide public and initial
beta release of ASP+ (and the rest of the .NET Framework) came at the 2000
Professional Developers Conference on July 11, 2000 in Orlando, Florida. During Bill
Gates's keynote presentation, Fujitsu demonstrated ASP+ being used in conjunction
with COBOL, and support for a variety of other languages was announced, including
Microsoft's new Visual Basic .NET and C# languages, as well as Python and Perl
support by way of interoperability tools created by ActiveState. Once the ".NET"
branding was decided on in the second half of 2000, it was decided to rename ASP+
to ASP.NET. Mark Anders explained on an appearance on The MSDN Show that year
that, "The .NET initiative is really about a number of factors, it’s about delivering
software as a service, it's about XML and web services and really enhancing the
Internet in terms of what it can do .... we really wanted to bring its name more in
line with the rest of the platform pieces that make up the .NET framework."

After four years of development, and a series of beta releases in 2000 and 2001,
ASP.NET 1.0 was released on January 5, 2002 as part of version 1.0 of the .NET
Framework. Even prior to the release, dozens of books had been written about
ASP.NET, and Microsoft promoted it heavily as part of their platform for web
services. Guthrie became the product unit manager for ASP.NET, and development
continued apace, with version 1.1 being released on April 24, 2003 as a part of
Windows Server 2003. This release focused on improving ASP.NET's support for
mobile devices.
.NET pages, known officially as "web forms", are the main building block for
application development. Web forms are contained in files with an ".aspx"
extension; in programming jargon, these files typically contain static (X)HTML
markup, as well as markup defining server-side Web Controls and User Controls
where the developers place all the required static and dynamic content for the web
page. Additionally, dynamic code which runs on the server can be placed in a page
within a block <% -- dynamic code -- %> which is similar to other web development

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

<script runat="server">

     protected void Page_Load(object sender, EventArgs e)
         Label1.Text = DateTime.Now.ToLongDateString();


<html xmlns="">
<head runat="server">
    <title>Sample page</title>
    <form id="form1" runat="server">
 The current time is: <asp:Label runat="server" id="Label1"/>

                     Code-behind model
It is recommended by Microsoft for dealing with dynamic program code to use the
code-behind model, which places this code in a separate file or in a specially
designated script tag. Code-behind files typically have names like MyPage.aspx.cs or
MyPage.aspx.vb based on the ASPX file name (this practice is automatic in Microsoft
Visual Studio and other IDEs). When using this style of programming, the developer
writes code to respond to different events, like the page being loaded, or a control
being clicked, rather than a procedural walk through the document.

 User controls
ASP.NET supports creating reusable components through the creation of User
Controls. A User Control follows the same structure as a Web Form, except that such
controls are derived from the System.Web.UI.UserControl class, and are stored in
ASCX files. Like ASPX files, an ASCX file contains static HTML or XHTML markup, as
well as markup defining web control and other User Controls. The code-behind
model can be used.

 Rendering technique
ASP.NET uses a visited composites rendering technique. During compilation, the
template (.aspx) file is compiled into initialization code which builds a control tree
(the composite) representing the original template. Literal text goes into instances of
the Literal control class, and server controls are represented by instances of a specific
control class. The initialization code is combined with user-written code (usually by
the assembly of multiple partial classes) and results in a class specific for the page.
The page doubles as the root of the control tree. After the request has been
processed, the instance of the page class is discarded and with it the entire control
tree. This is usually a source of confusion among novice ASP.NET programmers that
rely on class instance members that are lost with every page request/response cycle.

 State management
ASP.NET applications are hosted in a web server and are accessed over the stateless
HTTP protocol. As such, if the application uses stateful interaction, it has to
implement state management on its own. ASP.NET provides various functionality for
state management in ASP.NET applications. Conceptually, Microsoft treats "state" as
mostly GUI state, big problems may arise when an application needs to keep track of
"data state" such as finite state machine that may be in a transient state between
requests lazy evaluation or just takes long to initialize.

 Application state
Application state is a collection of user-defined variables that are shared by an
ASP.NET application. These are set and initialized when the Application_OnStart
event fires on the loading of the first instance of the applications and are available till
the last instance exits. Application state variables are accessed using the Applications
collection, which provides a wrapper for the application state variables. Application
state variables are identified by names.

 Session state
Session state is a collection of user-defined session variables, which are persisted
during a user session. These variables are unique to different instances of a user
session, and are accessed using the Session collection. Session variables can be set to
be automatically destroyed after a defined time of inactivity, even if the session does
not end. At the client end, a user session is identified either by a cookie or by
encoding the session ID in the URL itself
Developer Productivity
ASP.NET helps you deliver real world Web applications in record time.

      Easy Programming Model. ASP.NET makes building real world Web
applications dramatically easier. ASP.NET server controls enable an HTML-like style
of declarative programming that let you build great pages with far less code than
with classic ASP. Displaying data, validating user input, and uploading files are all
amazingly easy. Best of all, ASP.NET pages work in all browsers -- including
Netscape, Opera, AOL, and Internet Explorer.

      Flexible Language Options .
ASP.NET lets you leverage your current
programming language skills. Unlike classic
ASP, which supports only interpreted VBScript
and JScript, ASP.NET now supports more than
25 .NET languages (including built-in support
for VB.NET, C#, and JScript.NET -- no tool
required), giving you unprecedented flexibility
in your choice of language.

      Great Tool Support. You can harness the full power of ASP.NET using any
text editor -- even Notepad! But Visual Studio 2005 adds the productivity of Visual
Basic-style development to the Web. Now you can visually design ASP.NET Web
Forms using familiar drag-drop-doubleclick techniques, and enjoy full-fledged code
support including statement completion and color-coding. VS.NET also provides
integrated support for debugging and deploying ASP.NET Web applications.
The Professional version of Visual Studio 2005 deliver life-cycle features to help
organizations plan, analyze, design, build, test, and coordinate teams that develop
ASP.NET Web applications. These include UML class modeling, database modeling
(conceptual, logical, and physical models), testing tools (functional, performance
and scalability), and enterprise frameworks and templates, all available within the
integrated Visual Studio .NET environment.
        Rich Class Framework. Application features that used
to be hard to implement, or required a 3rd-party component,
can now be added in just a few lines of code using the .NET
Framework. The .NET Framework offers over 4500 classes
that encapsulate rich functionality like XML, data access, file
upload, regular expressions, image generation, performance
monitoring and logging, transactions, message queuing, SMTP mail, and much
Microsoft has released some extension frameworks that plug into ASP.NET and extend
its functionality. Some of them are:

An extension with both client-side as well as server-side components for writing
ASP.NET pages that incorporate AJAX functionality.

 ASP.NET MVC Framework

 An extension to author ASP.NET pages using the MVC architecture

 ASP.NET compared to ASP classic
 ASP.NET attempts to simplify developers' transition from Windows application
 development to web development by offering the ability to build pages composed
 of controls similar to a Windows user interface. A web control, such as a button or
 label, functions in very much the same way as its Windows counterpart: code can
 assign its properties and respond to its events. Controls know how to render
 themselves: whereas Windows controls draw themselves to the screen, web
 controls produce segments of HTML and JavaScript which form part of the resulting
 page sent to the end-user's browser.

 ASP.NET encourages the programmer to develop applications using an event-driven
 GUI model, rather than in conventional web-scripting environments like ASP and
 PHP. The framework attempts to combine existing technologies such as JavaScript
 with internal components like "ViewState" to bring persistent (inter-request) state
 to the inherently stateless web environment.
Other differences compared to ASP classic are:

   Compiled code means applications run faster with more design-time errors
     trapped at the development stage.
   Significantly improved run-time error handling, making use of exception handling
     using try-catch blocks.
   Similar metaphors to Microsoft Windows applications such as controls and
   An extensive set of controls and class libraries allows the rapid building of
     applications, plus user-defined controls allow commonly-used web template,
     such as menus. Layout of these controls on a page is easier because most of it
     can be done visually in most editors.
   ASP.NET leverages the multi-language capabilities of the .NET Common Language
     Runtime, allowing web pages to be coded in VB.NET, C#, J#, Delphi.NET, Chrome
   Ability to cache the whole page or just parts of it to improve performance.
   Ability to use the code-behind development model to separate business logic
     from presentation.
   If an ASP.NET application leaks memory, the ASP.NET runtime unloads the
     AppDomain hosting the erring application and reloads the application in a new
   Session state in ASP.NET can be saved in a Microsoft SQL Server database or in a
     separate process running on the same machine as the web server or on a
     different machine. That way session values are not lost when the web server is
     reset or the ASP.NET worker process is recycled.
   Versions of ASP.NET prior to 2.0 were criticized for their lack of standards
     compliance. The generated HTML and JavaScript sent to the client browser
     would not always validate against W3C/ECMA standards. In addition, the
     framework's browser detection feature sometimes incorrectly identified web
     browsers other than Microsoft's own Internet Explorer as "downlevel" and
     returned HTML/JavaScript to these clients with some of the features removed,
     or sometimes crippled or broken. However, in version 2.0, all controls generate
     valid HTML 4.0, XHTML 1.0 (the default) or XHTML 1.1 output, depending on the
     site configuration. Detection of standards-compliant web browsers is more
     robust and support for Cascading Style Sheets is more extensive.
   Web Server Controls: these are controls introduced by ASP.NET for providing the
     UI for the web form. These controls are state managed controls and are
     WYSIWYG controls.
ASP.NET aims for performance benefits over other script-based technologies
(including Classic ASP) by compiling the server-side code to one or more DLL files on
the web server.]This compilation happens automatically the first time a page is
requested (which means the developer need not perform a separate compilation
step for pages). This feature provides the ease of development offered by scripting
languages with the performance benefits of a compiled binary. However, the
compilation might cause a noticeable but short delay to the web user when the
newly-edited page is first requested from the web server, but won't again unless the
page requested is updated further.

The ASPX and other resource files are placed in a virtual host on an Internet
Information Services server (or other compatible ASP.NET servers; see Other
Implementations, below). The first time a client requests a page, the .NET framework
parses and compiles the file(s) into a .NET assembly and sends the response;
subsequent requests are served from the DLL files. By default ASP.NET will compile
the entire site in batches of 1000 files upon first request. If the compilation delay is
causing problems, the batch size or the compilation strategy may be tweaked.

Developers can also choose to pre-compile their code before deployment,
eliminating the need for just-in-time compilation in a p ASP.NET combines
unprecedented developer productivity with performance, reliability, and
Improved Performance and Scalability
ASP.NET lets you use serve more users with the same hardware.

      Compiled execution. ASP.NET is much faster than classic ASP, while
preserving the "just hit save" update model of ASP. However, no explicit compile
step is required! ASP.NET will automatically detect any changes, dynamically
compile the files if needed, and store the compiled results to reuse for subsequent
requests. Dynamic compilation ensures that your application is always up to date,
and compiled execution makes it fast. Most applications migrated from classic ASP
see a 3x to 5x increase in pages served.

      Rich output caching. ASP.NET output caching can dramatically improve
the performance and scalability of your application. When output caching is
enabled on a page, ASP.NET executes the page just once, and saves the result in
memory in addition to sending it to the user. When another user requests the
same page, ASP.NET serves the cached result from memory without re-executing
the page. Output caching is configurable, and can be used to cache individual
regions or an entire page. Output caching can dramatically improve the
performance of data-driven pages by eliminating the need to query the database
on every request.

      Web-Farm Session State. ASP.NET session state lets you share session data
user-specific state values across all machines in your Web farm. Now a user can hit
different servers in the web farm over multiple requests and still have full access to
her session. And since business components created with the .NET Framework are
free-threaded, you no longer need to worry about thread affinity.

      Microsoft .NET Outperforms J2EE. In a head-to-head comparison of
performance and scalability between Sun's Java Pet Store J2EE blueprint
application and the ASP.NET implementation, Microsoft .NET significantly
outperformed J2EE. The bottom line: the ASP.NET implementation required only
 1/4th as many lines of code, was 28x faster (that's 2700%), and supported 7.6x as
 many concurrent users as J2EE, with only 1/6th as much processor utilization.
 to review the results, download the code, and run the .NET Pet Shop yourself.

 Enhanced Reliability
 ASP.NET ensures that your application is always available to your users.
        Memory Leak, DeadLock and Crash Protection. ASP.NET automatically
detects and recovers from errors like deadlocks and memory leaks to ensure your
application is always available to your users.

For example, say that your application has a small memory leak, and that after a
week the leak has tied up a significant percentage of your server's virtual memory.
ASP.NET will detect this condition, automatically start up another copy of the
ASP.NET worker process, and direct all new requests to the new process. Once the
old process has finished processing its pending requests, it is gracefully disposed and
the leaked memory is released. Automatically, without administrator intervention or
any interruption of service, ASP.NET has recovered from the error.
 ASP.NET takes the pain out of deploying server applications.
"No touch" application deployment. ASP.NET dramatically simplifies
installation of your application. With ASP.NET, you can deploy an entire application
as easily as an HTML page: just copy it to the server. No need to run regsvr32 to
register any components, and configuration settings are stored in an XML file within
the application.

  Dynamic update of running application. ASP.NET now lets you update
 compiled components without restarting the web server. In the past with classic
 COM components, the developer would have to restart the web server each time
 he deployed an update. With ASP.NET, you simply copy the component over the
 existing DLL -- ASP.NET will automatically detect the change and start using the new

  Easy Migration Path. You don't have to
 migrate your existing applications to start using
 ASP.NET. ASP.NET runs on IIS side-by-side with
 classic ASP on Windows 2000 and Windows XP
 platforms. Your existing ASP applications
 continue to be processed by ASP.DLL, while
 new ASP.NET pages are processed by the new ASP.NET engine. You can migrate
 application by application, or single pages. And ASP.NET even lets you continue to
 use your existing classic COM business components.
New Application Models
ASP.NET extend your application's reach to new customers and partners.
   XML Web Services. XML Web services allow applications to communicate and
 share data over the Internet, regardless of operating system or programming
 language. ASP.NET makes exposing and calling XML Web Services simple.

 Any class can be converted into an XML Web Service with just a few lines of code,
 and can be called by any SOAP client.
 Likewise, ASP.NET makes it incredibly easy to call XML Web Services from your
 application. No knowledge of networking, XML, or SOAP is required.

 Mobile Web Device Support. ASP.NET Mobile Controls let you easily target cell
 phones, PDAs -- over 80 mobile Web devices -- using ASP.NET. You write your
 application just once, and the mobile controls automatically generate WAP/WML,
 HTML, or iMode as required by the requesting device.

 Development tools
 Several available software packages exist for developing ASP.NET

   Product        Developer      Licensing                  Notes

 Intellisense    BlueVision LLC Free

 Microsoft Visual               Free and
 Studio                         Commercial

 CodeGear        Embarcadero
 Delphi          Technologies

                 Adobe Systems Commercial
               Microsoft      Commercial
Expression Web

SharePoint     Microsoft      Free

               Novell and the
                              Free Open
MonoDevelop    Mono

               ICSharpCode    Free Open
               Team           Source

                               Free Open
Eiffel for
               Eiffel Software Source and

                                            Doesn't support ASP.NET 2.0 features, and
                                            produces very inefficient code for ASP.NET 1.x:
                                            also, code generation and ASP.NET features
               Adobe Systems Commercial     support through version 8.0.1 was little if any
                                            changed from version MX: version 8.0.2 does
                                            add changes to improve security against SQL
                                            injection attacks
                         Web Site Administration Tool
The Web Site Administration Tool lets you view and manage the Web site
configuration through a simple Web interface.

 Tabs and Additional Information
The following links provide more information about how to work with the Web Site Administration

           Web Site Administration Tool Security Tab

           Web Site Administration Tool Application Tab

           Web Site Administration Tool Provider Tab

           Web Site Administration Tool Internals

 Web Site Configuration
Web site configuration settings are stored in an XML file named Web.config, which is
located in the root folder of the Web site. The Web Site Administration Tool lets you
change your site configuration without having to manually edit the Web.config file.
The first time that you use the Web Site Administration Tool to administer a specific
Web site, if no Web.config file exists, the Web Site Administration Tool creates one.
By default, the Web Site Administration Tool also creates a database in the App_Data
folder of the Web site to store application services data, such as membership and
roles information. For most settings, changes that are made in the Web Site
Administration Tool take effect immediately and are reflected in the Web.config file.

 Inherited Settings
 Default settings for a Web site are automatically inherited from any configuration
 files that exist for the computer or for the Web server as a whole. For example, the
 Web server might have default settings that apply to all sites on that server. Using
 the Web Site Administration Tool, you can create and modify settings for your
 specific Web site that are not inherited, and you can override the inherited settings
 as allowed by the site-wide settings. If the setting has been inherited and cannot be
 overridden, it appears dimmed, to indicate that it is disabled, in the Web Site
 Administration Tool.

The Web Site Administration Tool is included with the Microsoft Visual Web
Developer Web development tool. In order to use the Web Site Administration Tool
to administer a Web site, the user credentials for the user account under which you
are running Visual Web Developer must have Read and Write permissions to the
Web.config file and the App_Data folder of the application being administered. If you
cannot manage the configuration for the Web site using the Web Site Administration
Tool, contact the system administrator.

The Web Site Administration Tool features a tabbed interface that groups related
configuration settings within each tab. The tabs and the configuration settings that
the tabs manage are described in the following sections.

 Security Tab
 Use the Security tab to manage access rules to help secure specific resources
 within the Web site and to manage user accounts and roles.

 You can specify how the Web site is used—either from the Internet (publicly) or
 from an intranet (on a local area network). This in turn indicates the type of
 authentication mode that the Web site will use. Internet Web sites use the ASP.NET
 membership system, where you define individual user accounts. ASP.NET uses a
 security system to restrict access to specific user accounts or the roles to which the
 user accounts belong. Intranet Web sites use Windows authentication, where users
 are identified by their Windows logon information.
 Date       Version      Remarks                         New ASP.NET related features

                                                  Object oriented web application development
                                                   supporting Inheritance, Polymorphism and other
                                                   standard OOP features
                                                       o Developers are no longer forced to use
                      First version                        Server.CreateObject(...), so early-binding and
January 16,
            1.0                                            type safety are possible.
2002                  released together with      Based on Windows programming; the developer can
                      Visual Studio .NET           make use of DLL class libraries and other features of
                                                   the web server to build more robust applications that
                                                   do more than simply rendering HTML (i.e. exception

                      released together
                      with Windows
April 24,             Server 2003                 Mobile controls
2003                                              Automatic input validation
                      released together with
                      Visual Studio .NET

                                                  New data controls (GridView, FormView, DetailsView)
                                                  New technique for declarative data access
                                                   (SqlDataSource, ObjectDataSource, XmlDataSource
                                                  Navigation controls
                      codename Whidbey
                                                  Master pages
                      released together with      Login controls
         2.0          Visual Studio 2005 and      Themes
7, 2005                                           Skins
                      Visual Web Developer
                                                  Web parts
                                                  Personalization services
                      and SQL Server 2005         Full pre-compilation
                                                  New localization technique
                                                  Support for 64-bit processors
                                                  Provider class model

                                                  Windows Communication Foundation which can use
November                                           ASP.NET to host services.
         3.0                                      Windows CardSpace which uses ASP.NET for login
21, 2006

                      Released with
                                                  New data controls (ListView, DataPager)
                      Visual Studio
November                                          ASP.NET AJAX included as part of the framework
         3.5          2008 and
19, 2007                                          Support for HTTP pipelining and syndication feeds.
                      Windows Server              WCF Support for RSS, JSON, POX and Partial Trust
                                              Incorporation of ASP.NET Dynamic Data
                       Released with          Support for controlling browser history in an ASP.NET
                                               AJAX application
August 11, 3.5 Service Visual Studio
                                              Capability to combine multiple Javascript files into a
2008       Pack 1      2008 Service Pack       single file for more efficient downloading
                       1                      New namespaces System.Web.Abstraction and
 What’s New In .NET FrameWork 3.5 SP1
 SP1 advances the art of application development
 The new ADO.NET Entity Framework feature in SP1 offers developers a model-based
 paradigm and a rich, standards-based framework for creating data-oriented
 applications shared across multiple applications and platforms. The separation of
 presentation, data, and business logic used in concert with a single data model will
 enable developers to spend less time writing plumbing code and more time refining
 business logic.

SP1 makes data-driven programming easier
SP1 offers developers support for ASP.NET Dynamic Data, which provides a rich
scaffolding framework that enables rapid data-driven development. Since ASP.NET
takes care of creating the presentation layer, a fully functional Website is output and
ready for customization without the developer writing a single line of code. Further,
with ADO.NET Data Services, Web developers can create RESTful Web 2.0-style
applications that have better server scalability and improved caching support.

SP1 is the fastest and easiest way to deploy Windows applications
With the .NET Framework Client Profile, a small subset of the Framework that powers
client applications, developers can offer their end users a dramatically streamlined and
rapid application download experience. In addition, improvements in SP1 result in
dramatic reductions in cold start times, allowing developers to serve a broader set of
customers with varying hardware profiles.
Discover more new features in .NET Framework 3.5 SP1

To top