A web application framework is a software framework that is designed to support the web development of Dynamic web page, Web applications and Web services.... developed and marketed by Microsoft
Microsoft
Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices.... to allow programmer
Programmer
A programmer is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software.... s to build dynamic web sites, web application
Web application
In software engineering, a web application or webapp is an Application software that is accessed via web browser over a network such as the Internet or an intranet.... s and web service
Web service
A Web service is defined by the W3C as "a software system designed to support interoperability Machine to Machine interaction over a computer network".... s. It was first released in January 2002 with version 1.0 of the .NET Framework
.NET Framework
The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software framework.... , and is the successor to Microsoft's Active Server Pages
Active Server Pages
Active Server Pages , also known as Classic ASP, was Microsoft's first server-side scripting Active Scripting for dynamic web page. Initially released as an add-on to Internet Information Services via the Windows_NT_4.0#Option_Pack, it was subsequently included as a free component of Windows Server .... (ASP) technology. ASP.NET is built on the Common Language Runtime
Common Language Runtime
The Common Language Runtime is a core component of Microsoft .NET Framework initiative. It is Microsoft's implementation of the Common Language Infrastructure standard, which defines an execution environment for program code.... (CLR), allowing programmers to write ASP.NET code using any supported .NET language.
Internet Information Services - formerly called Internet Information Server - is a set of Internet-based services for servers created by Microsoft for use with Microsoft Windows.... 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
Separation of presentation and content
Separation of presentation and content is common idiom, a design philosophy, and a methodology applied in the context of various Publishing disciplines, including information retrieval, template processor, web design, web development, word processing, desktop publishing, and model-driven development.... and being able to write "clean" code.
A web application framework is a software framework that is designed to support the web development of Dynamic web page, Web applications and Web services.... developed and marketed by Microsoft
Microsoft
Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices.... to allow programmer
Programmer
A programmer is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software.... s to build dynamic web sites, web application
Web application
In software engineering, a web application or webapp is an Application software that is accessed via web browser over a network such as the Internet or an intranet.... s and web service
Web service
A Web service is defined by the W3C as "a software system designed to support interoperability Machine to Machine interaction over a computer network".... s. It was first released in January 2002 with version 1.0 of the .NET Framework
.NET Framework
The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software framework.... , and is the successor to Microsoft's Active Server Pages
Active Server Pages
Active Server Pages , also known as Classic ASP, was Microsoft's first server-side scripting Active Scripting for dynamic web page. Initially released as an add-on to Internet Information Services via the Windows_NT_4.0#Option_Pack, it was subsequently included as a free component of Windows Server .... (ASP) technology. ASP.NET is built on the Common Language Runtime
Common Language Runtime
The Common Language Runtime is a core component of Microsoft .NET Framework initiative. It is Microsoft's implementation of the Common Language Infrastructure standard, which defines an execution environment for program code.... (CLR), allowing programmers to write ASP.NET code using any supported .NET language.
Internet Information Services - formerly called Internet Information Server - is a set of Internet-based services for servers created by Microsoft for use with Microsoft Windows.... 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
Separation of presentation and content
Separation of presentation and content is common idiom, a design philosophy, and a methodology applied in the context of various Publishing disciplines, including information retrieval, template processor, web design, web development, word processing, desktop publishing, and model-driven development.... and being able to write "clean" code. Mark Anders, a manager on the IIS team, and Scott Guthrie
Scott Guthrie
Scott Guthrie is a vice president in the Microsoft Developer Division. He runs the development teams that build ASP.NET, Common Language Runtime , Silverlight, Windows Forms, Internet Information Services 7.0, Commerce Server, .NET Compact Framework, Visual Web Developer and Visual Studio Tools for WPF.... , who had joined Microsoft in 1997 after graduating from Duke University
Duke University
Duke University is a private university research university located in Durham, North Carolina, North Carolina, United States. Founded by Methodism and Religious Society of Friends in the present-day town of Trinity, North Carolina in 1838, the school moved to Durham in 1892.... , 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 1997. 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
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java .... , but it was soon decided to build the new platform on top of the Common Language Runtime
Common Language Runtime
The Common Language Runtime is a core component of Microsoft .NET Framework initiative. It is Microsoft's implementation of the Common Language Infrastructure standard, which defines an execution environment for program code.... (CLR), as it offered an object-oriented programming
Object-oriented programming
Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs.... environment, garbage collection
Garbage collection
Garbage collection may refer to:* Waste collection, one part of the municipal waste management cycle.* Garbage collection , the detection and pruning of unused or inaccessible data structures.... and other features that were seen as desirable features that Microsoft's Component Object Model
Component Object Model
Component Object Model is an interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages.... 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
Active Server Pages
Active Server Pages , also known as Classic ASP, was Microsoft's first server-side scripting Active Scripting for dynamic web page. Initially released as an add-on to Internet Information Services via the Windows_NT_4.0#Option_Pack, it was subsequently included as a free component of Windows Server .... , 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
Phoenix, Arizona
Phoenix is the capital and largest city in the U.S. state of Arizona, as well as the fifth most populous city in the United States. Phoenix is home to 1,552,259 residents, and is the anchor of the Phoenix Metropolitan Area with 4,179,427 residents.... 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
Professional Developers Conference
Microsoft's Professional Developers Conference is a conference for software developers, normally Microsoft Windows developers.It covers new and upcoming technology from Microsoft, and so only occurs in the years when there is something new to talk about.... on July 11, 2000 in Orlando, Florida
Orlando, Florida
Orlando is a major city in Central Florida, United States and is the county seat of Orange County, Florida, Florida. It is also the principal city of Orlando-Kissimmee, Florida, Metropolitan Statistical Area.... . During Bill Gates
Bill Gates
William Henry "Bill" Gates III is an United States business magnate, philanthropist, author, the List of the 100 wealthiest people , and chairman of the board of Microsoft, the software company he founded with Paul Allen.... 's keynote presentation, Fujitsu
Fujitsu
is a Japanese company specializing in semiconductors, air conditioners, computers , telecommunications, and Service , and is headquartered in Minato, Tokyo, Tokyo.... demonstrated ASP+ being used in conjunction with COBOL
COBOL
COBOL is one of the oldest programming languages still in active use. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments.... , and support for a variety of other languages was announced, including Microsoft's new Visual Basic .NET
Visual Basic .NET
Visual Basic , formerly called Visual Basic .NET , is an object-oriented programming computer language that can be viewed as an evolution of Microsoft Visual Basic implemented on the .NET Framework.... and C# languages, as well as Python
Python (programming language)
Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive.... and Perl
Perl
In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language.... support by way of interoperability tools created by ActiveState
ActiveState
ActiveState is a Canadian proprietary software company headquartered in Vancouver, British Columbia that develops, sells, and supports cross-platform software development tools for dynamic programming language such as Perl, PHP, Python , Ruby , and Tcl, as well as Software distribution and enterprise services.... .
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
.NET Framework
The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software 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
Windows Server 2003
Windows Server 2003 is a Server operating system produced by Microsoft. Introduced on 24 April 2003 as the successor to Windows 2000 Server, it is considered by Microsoft to be the cornerstone of its Windows Server System line of business server products.... . This release focused on improving ASP.NET's support for mobile devices. Version 4.0 of the .NET framework is currently under development...
Characteristics
Pages
.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
XHTML
The Extensible Hypertext Markup Language, or XHTML, is a markup language that has the same depth of expression as HTML, but also conforms to XML syntax.... )HTML
HTML
HTML, an Acronym and initialism of HyperText Markup Language, is the predominant markup language for Web pages. It provides a means to describe the structure of text-based information in a document?by denoting certain text as links, headings, paragraphs, lists, and so on?and to supplement that text with interactive forms, embedded '... 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 technologies such as PHP
PHP
PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface.... , JSP
JavaServer Pages
JavaServer Pages is a Java technology that allows software developers to create dynamic web page, with HTML, XML, or other document types, in response to a Web client request.... , and ASP
Active Server Pages
Active Server Pages , also known as Classic ASP, was Microsoft's first server-side scripting Active Scripting for dynamic web page. Initially released as an add-on to Internet Information Services via the Windows_NT_4.0#Option_Pack, it was subsequently included as a free component of Windows Server .... , but this practice is generally discouraged except for the purposes of data binding
Binding (computer science)
In computer science, binding is the creation of a simple reference to something that is larger and more complicated and used frequently. The simple reference can be used instead of having to repeat the larger thing.... since it requires more calls when rendering the page.
Note that this sample uses code "inline", as opposed to code behind.
<%@ Page Language="C#" %>
Sample page
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
Microsoft Visual Studio
Microsoft Visual Studio is an integrated development environment from Microsoft. It can be used to develop Console application and graphical user interface applications along with Windows Forms applications, web sites, web applications, and web services in both native code together with managed code for all platforms supported by Microsoft W... and other IDEs
Integrated development environment
An integrated development environment also known as integrated design environment or integrated debugging environment is a software application that provides comprehensive facilities to computer programmers for software development.... ). 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.
ASP.NET's code-behind model marks a departure from Classic ASP in that it encourages developers to build applications with separation of presentation and content
Separation of presentation and content
Separation of presentation and content is common idiom, a design philosophy, and a methodology applied in the context of various Publishing disciplines, including information retrieval, template processor, web design, web development, word processing, desktop publishing, and model-driven development.... in mind. In theory, this would allow a web designer, for example, to focus on the design markup with less potential for disturbing the programming code that drives it. This is similar to the separation of the controller from the view in model-view-controller
Model-view-controller
Model?View?Controller is an Architectural pattern used in software engineering. Successful use of the pattern isolates business logic from user interface considerations, resulting in an application where it is easier to modify either the visual appearance of the application or the underlying business rules without affecting the other.... frameworks.
The above tag is placed at the beginning of the ASPX file. The CodeFile property of the @ Page directive specifies the file (.cs or .vb) acting as the code-behind while the Inherits property specifies the Class the Page derives from. In this example, the @ Page directive is included in SampleCodeBehind.aspx, then SampleCodeBehind.aspx.cs acts as the code-behind for this page:
using System;
namespace Website
In this case, the Page_Load method is called every time the ASPX page is requested. The programmer can implement event handlers at several stages of the page execution process to perform processing.
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 .User Control class, and are stored in ASCX files. Like ASPX files, an ASCX file contains static HTML
HTML
HTML, an Acronym and initialism of HyperText Markup Language, is the predominant markup language for Web pages. It provides a means to describe the structure of text-based information in a document?by denoting certain text as links, headings, paragraphs, lists, and so on?and to supplement that text with interactive forms, embedded '... or XHTML
XHTML
The Extensible Hypertext Markup Language, or XHTML, is a markup language that has the same depth of expression as HTML, but also conforms to XML syntax.... markup, as well as markup defining web control and other User Controls. The code-behind model can be used.
Programmers can add their own properties, methods, and event handlers. An event bubbling mechanism provides the ability to pass an event fired by a user control up to its containing page.
User can also build Custom Controls for Asp.Net application. Where controls are in compiled DLL file. And by using Register directive user can use control from DLL.
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.
Actual requests for the page are processed through a number of steps. First, during the initialization steps, an instance of the page class is created and the initialization code is executed. This produces the initial control tree which is now typically manipulated by the methods of the page in the following steps. As each node in the tree is a control represented as an instance of a class, the code may change the tree structure as well as manipulate the properties/methods of the individual nodes. Finally, during the rendering step a visitor is used to visit every node in the tree, asking each node to render itself using the methods of the visitor. The resulting HTML output is sent to the client.
After the request has been processed, the instance of the page class is discarded and with it the entire control tree.
The term web server can mean one of two things:# A computer program that is responsible for accepting Hypertext Transfer Protocol requests from clients , and Server them HTTP responses along with optional data contents, which usually are web pages such as Hypertext Markup Language documents and linked objects .... and are accessed over the stateless
Stateless server
A stateless server is a server that treats each request as an independent transaction that is unrelated to any previous request.... HTTP protocol. As such, if the application uses stateful interaction, it has to implement state management
State management
State Management refers to the management of the state of one or more user interface controls such as text field s, OK buttons, radio buttons, etc in a Graphical User Interface.... on its own. ASP.NET provides various functionality for state management in ASP.NET applications.
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
HTTP cookie
HTTP cookies, more commonly referred to as World Wide Web cookies, tracking cookies or just cookies, are parcels of text sent by a Web server to a Web Client and then sent back unchanged by the client each time it accesses that server.... or by encoding the session ID in the URL itself.
ASP.NET supports three modes of persistence for session variables:
In Process Mode: The session variables are maintained within the ASP.NET process
Process (computing)
In computing, a process is an Object of a computer program that is being sequentially executed by a computer system that has the ability to run several computer programs Concurrency .... . This is the fastest way, however, in this mode the variables are destroyed when the ASP.NET process is recycled or shut down. Since the application is recycled from time to time this mode is not recommended for critical applications.
ASPState Mode: In this mode, ASP.NET runs a separate Windows service
Windows Service
On Microsoft Windows operating systems, a Windows service is a long-running executable that performs specific functions and which is designed not to require user intervention.... that maintains the state variables. Because the state management happens outside the ASP.NET process, this has a negative impact on performance, but it allows multiple ASP.NET instances to share the same state server, thus allowing an ASP.NET application to be load-balanced and scaled across multiple servers. Also, since the state management service runs independent of ASP.NET, variables can persist across ASP.NET process shutdowns.
SqlServer Mode: In this mode, the state variables are stored in a database server
Database server
A database server is a computer program that provides database services to other computer programs or computers, as defined by the client-server software modeling.... , accessible using SQL
SQL
SQL is a database computer language designed for the retrieval and management of data in relational database management systems , database schema creation and modification, and database object access control management.... . Session variables can be persisted across ASP.NET process shutdowns in this mode as well. The main advantage of this mode is it would allow the application to balance load on a server cluster while sharing sessions between servers.
View state
View state refers to the page-level state management mechanism, which is utilized by the HTML pages emitted by ASP.NET applications to maintain the state of the web form controls and widgets. The state of the controls are encoded and sent to the server at every form submission in a hidden field known as __VIEWSTATE. The server sends back the variable so that when the page is re-rendered, the controls render at their last state. At the server side, the application might change the viewstate, if the processing results in updating the state of any control. The states of individual controls are decoded at the server, and are available for use in ASP.NET pages using the ViewState collection.
Other
Other means of state management that are supported by ASP.NET are cookie
Cookie
In the United States and Canada, a cookie is a small, flat-baked treat, containing milk, flour, eggs, and sugar, etc. In most English-speaking countries outside North America, the most common word for this is biscuit; in many regions both terms are used, while in others the two words have different meanings?a cookie is a plain bu... s, caching, and using the query string
Query string
In World Wide Web, a query string is the part of a Uniform Resource Locator that contains data to be passed to web applications such as Common Gateway Interface programs.... .
A template engine is software that is designed to process web templates and content information to produce output web documents. It runs in the context of a web template system.... . Because the .NET framework
.NET Framework
The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software framework.... is object-oriented and allows for inheritance
Inheritance (computer science)
In object-oriented programming, inheritance is a way to form new class es using classes that have already been defined. The inheritance concept was invented in 1967 for Simula.... , many developers would define a new base class that inherits from "System.Web.UI.Page", write method
Method (computer science)
In object-oriented programming, a method is a subroutine that is exclusively associated either with a class or with an object . Like a procedure in procedural programming languages, a method usually consists of a sequence of statement to perform an action, a set of input parameter to customize those actions, and possibly an output value... s here that render HTML, and then make the pages in their application inherit from this new class. While this allows for common elements to be reused across a site, it adds complexity and mixes source code
Source code
In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language.... with markup
Markup language
A markup language is a set of codes that give instructions regarding the structure of a text or how it is to be displayed. Markup languages have been in use for centuries, and in recent years have been used in computer typesetting and word-processing systems to specify the formatting, layout, structure, and other elements of a document.... . Furthermore, this method can only be visually tested by running the application - not while designing it. Other developers have used include files
Header file
In computer programming, particularly in the C and C++ programming languages, a header file or include file is a computer file, usually in the form of source code, that a compiler automatically includes when processing another source file.... and other tricks to avoid having to implement the same navigation and other elements in every page.
ASP.NET 2.0 introduced the concept of "master pages", which allow for template
Web template
A web template is a tool used to Separation of concerns content from presentation in web design, and for mass-production of web documents. It is a basic component of a web template system.... -based page development. A web application can have one or more master pages, which can be nested. Master templates have place-holder controls, called ContentPlaceHolders to denote where the dynamic content goes, as well as HTML
HTML
HTML, an Acronym and initialism of HyperText Markup Language, is the predominant markup language for Web pages. It provides a means to describe the structure of text-based information in a document?by denoting certain text as links, headings, paragraphs, lists, and so on?and to supplement that text with interactive forms, embedded '... and JavaScript
JavaScript
JavaScript is a scripting language widely used for client-side web development. It was the originating Programming language dialect of the ECMAScript standard.... shared across child pages.
Child pages use those ContentPlaceHolder controls, which must be mapped to the place-holder of the master page that the content page is populating. The rest of the page is defined by the shared parts of the master page, much like a mail merge
Mail merge
Mail merge is a software function describing the production of multiple documents from a single Template form and a structured Database.... in a word processor
Word processor
A word processor is a computer Application software used for the production of any sort of printable material.Word processor may also refer to an obsolete type of stand-alone office machine, popular in the 1970s and 80s, combining the keyboard text-entry and printing functions of an electric typewriter with a dedicated computer for th... . All markup and server
Server (computing)
A server is a computer program that provides services to other computer programs , in the same or other computer. The physical computer that runs a server program is also often referred to as server.... controls in the content page must be placed within the ContentPlaceHolder control.
When a request is made for a content page, ASP.NET merges the output of the content page with the output of the master page, and sends the output to the user.
The master page remains fully accessible to the content page. This means that the content page may still manipulate headers, change title, configure caching etc. If the master page exposes public properties or methods (e.g. for setting copyright notices) the content page can use these as well.
Other files
Other file extensions associated with different versions of ASP.NET include:
Global.asax is an optional file used to declare and handle application- and session-level events and objects. Global.asax is the ASP.NET extension of the Active Server Pages Global.asa file.... , used for application-level logic
In computer programming, a widget is an element of a graphical user interface that displays an information arrangement changeable by the user, such as a window or a text box.... to be placed onto web pages.
A Web service is defined by the W3C as "a software system designed to support interoperability Machine to Machine interaction over a computer network".... pages. From version 2.0 a Code behind page of an asmx file is placed into the app_code folder.
axd
1.0
when enabled in web.config requesting trace.axd outputs application-level tracing. Also used for the special webresource.axd handler which allows control/component developers to package a component/control complete with images, script, css etc. for deployment in a single file (an 'assembly')
browser
2.0
browser capabilities files stored in XML format; introduced in version 2.0. ASP.NET 2 includes many of these by default, to support common web browsers. These specify which browsers have which capabilities, so that ASP.NET 2 can automatically customize and optimize its output accordingly. Special .browser files are available for free download to handle, for instance, the W3C Validator, so that it properly shows standards-compliant pages as being standards-compliant. Replaces the harder-to-use BrowserCaps section that was in machine.config and could be overridden in web.config
Web.config
Web.config is the main settings and configuration file for an ASP.NET web application. The file is an XML document that defines configuration information regarding the web application.... in ASP.NET 1.x.
Web.config is the main settings and configuration file for an ASP.NET web application. The file is an XML document that defines configuration information regarding the web application.... is the only file in a specific Web application to use this extension by default (machine.config similarly affects the entire Web server and all applications on it), however ASP.NET provides facilities to create and consume other config files. These are stored in XML format.
cs/vb
1.0
Code files (cs indicates C#, vb indicates Visual Basic). Code behind files (see above) predominantly have the extension ".aspx.cs" or ".aspx.vb" for the two most common languages. Other code files (often containing common "library" classes) can also exist in the web folders with the cs/vb extension. In ASP.NET 2 these should be placed inside the App_Code folder where they are dynamically compiled and available to the whole application.
Language Integrated Query is a Microsoft .NET Framework component that adds native data Query language capabilities to List of .NET languages.... data classes file
master
2.0
master page file
resx
1.0
resource files for internationalization and localization
Localization
Localization or localisation may refer to:* GSM localization, a technique for determining the location of a user of a cell phone or wireless transceiver... . Resource files can be global (e.g. messages) or "local" which means specific for a single aspx or ascx file.
sitemap
2.0
sitemap configuration files. Default file name is web.sitemap
Windows Communication Foundation, or just WCF, is a programming framework used to build applications that inter-communicate. WCF is the part of the .NET Framework dedicated to communications.... service file
Directory structure
In general, the ASP.NET directory structure can be determined by the developer's preferences. Apart from a few reserved directory names, the site can span any number of directories. The structure is typically reflected directly in the urls. Although ASP.NET provides means for intercepting the request at any point during processing, the developer is not forced to funnel requests through a central application or front controller.
The special directory names (from ASP.NET 2.0 on) are :
App_Browsers : holds site-specific browser definition files.
App_Code : This is the "raw code" directory. The ASP.NET server automatically compiles files (and subdirectories) in this folder into an assembly which is accessible in the code of every page of the site. App_Code will typically be used for data access abstraction code, model code and business code. Also any site-specific http handlers and modules and web service implementation go in this directory. As an alternative to using App_Code the developer may opt to provide a separate assembly with precompiled code.
App_Data : default directory for database
Database
A database is a structured collection of records or data that is stored in a computer system. The structure is achieved by organizing the data according to a database model.... s, such as Access mdb files and SQL Server mdf files. This directory is usually the only one with write access for the application.
App_LocalResources : Contains localized resource files for individual pages of the site. E.g. a file called CheckOut.aspx.fr-FR.resx holds localized resources for the french version of the CheckOut.aspx page. When the UI culture is set to french, ASP.NET will automatically find and use this file for localization.
App_GlobalResources : Holds resx files with localized resources available to every page of the site. This is where the ASP.NET developer will typically store localized messages etc. which are used on more than one page.
App_Themes : holds alternative themes of the site.
App_WebReferences : holds discovery files and WSDL
Web Services Description Language
The Web Services Description Language is an XML-based language that provides a model for describing Web services.... files for references to web service
Web service
A Web service is defined by the W3C as "a software system designed to support interoperability Machine to Machine interaction over a computer network".... s to be consumed in the site.
Bin : Contains compiled code (.dll files) for controls, components, or other code that you want to reference in your application. Any classes represented by code in the Bin folder are automatically referenced in your application.
Performance
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 file
Computer file
A computer file is a block of arbitrary information, or resource for storing information, which is available to a computer program and is usually based on some kind of durable computer storage.... s on the web server
Web server
The term web server can mean one of two things:# A computer program that is responsible for accepting Hypertext Transfer Protocol requests from clients , and Server them HTTP responses along with optional data contents, which usually are web pages such as Hypertext Markup Language documents and linked objects .... . 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.
Internet Information Services - formerly called Internet Information Server - is a set of Internet-based services for servers created by Microsoft for use with Microsoft Windows.... 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 production environment.
Extension
Microsoft has released some extension frameworks that plug into ASP.NET and extend its functionality. Some of them are:
ASP.NET AJAX: An extension with both client-side as well as server-side components for writing ASP.NET pages that incorporate AJAX
Ajax (programming)
Ajax, or AJAX , is a group of interrelated web development techniques used to create interactive web applications or rich Internet applications.... functionality.
ASP.NET MVC Framework
ASP.NET MVC Framework
The ASP.NET MVC Framework is a Model-view-controller framework which Microsoft is adding to ASP.NET. It allows software developers to build a Web application as a composition of three roles: Model, View and Controller.... : 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
Microsoft Windows
Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces .... application development to web development by offering the ability to build pages composed of controls
Widget (computing)
In computer programming, a widget is an element of a graphical user interface that displays an information arrangement changeable by the user, such as a window or a text box.... similar to a Windows user interface
User interface
The user interface is the aggregate of means by which people—the User s—Interaction with the system—a particular machine, device, computer program or other complex tools.... . 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
HTML
HTML, an Acronym and initialism of HyperText Markup Language, is the predominant markup language for Web pages. It provides a means to describe the structure of text-based information in a document?by denoting certain text as links, headings, paragraphs, lists, and so on?and to supplement that text with interactive forms, embedded '... and JavaScript
JavaScript
JavaScript is a scripting language widely used for client-side web development. It was the originating Programming language dialect of the ECMAScript standard.... 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
Event-driven programming
In computer programming, event-driven programming or event-based programming is a programming paradigm in which the Program flow is determined by event s — i.e., sensor outputs or user actions or Message passing from other programs or Thread_.... GUI
Graphical user interface
A graphical user interface is a type of user interface which allows people to human-computer interaction such as computers; hand-held devices such as MP3 Players, Portable Media Players or Gaming devices; household appliances and office equipment.... model, rather than in conventional web-scripting environments like ASP and PHP
PHP
PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface.... . 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
Stateless server
A stateless server is a server that treats each request as an independent transaction that is unrelated to any previous request.... 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
Exception handling
Exception handling is a programming language construct or computer hardware mechanism designed to handle the occurrence of exceptions - special conditions that change the normal flow of execution.... using try-catch blocks.
Similar metaphors to Microsoft Windows applications such as controls and events.
An extensive set of controls and class libraries allows the rapid building of applications, plus user-defined controls allow commonly-used web template
Web template
A web template is a tool used to Separation of concerns content from presentation in web design, and for mass-production of web documents. It is a basic component of a web template system.... , such as menus. Layout of these controls on a page is easier because most of it can be done visually in most editors.
The Common Language Runtime is a core component of Microsoft .NET Framework initiative. It is Microsoft's implementation of the Common Language Infrastructure standard, which defines an execution environment for program code.... , allowing web pages to be coded in VB.NET, C#, J#, Delphi.NET, Chrome etc.
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.
In computer science, a memory leak is a particular type of unintentional memory consumption by a computer program where the program fails to release dynamic memory when no longer needed.... , the ASP.NET runtime unloads the AppDomain hosting the erring application and reloads the application in a new AppDomain.
Microsoft SQL Server is a relational database management system produced by Microsoft. Its primary query languages are SQL and Transact-SQL.... 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
Internet Explorer
Windows Internet Explorer , commonly abbreviated to IE, is a series of graphical user interface web browsers developed by Microsoft and included as part of the Microsoft Windows line of operating systems starting in 1995.... 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
Cascading Style Sheets
Cascading Style Sheets is a stylesheet language used to describe the presentation of a document written in a markup language. Its most common application is to style web pages written in HTML and XHTML, but the language can be applied to any kind of XML document, including Scalable Vector Graphics and XUL.... 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
WYSIWYG
WYSIWYG , is an acronym for What You See Is What You Get, used in computing to describe a system in which content displayed during editing appears very similar to the final output, which might be a printed document, web page, slide presentation or even the lighting for a theatrical event.... controls.
Internet Information Services - formerly called Internet Information Server - is a set of Internet-based services for servers created by Microsoft for use with Microsoft Windows.... 6.0 and lower, pages written using different versions of the ASP framework cannot share Session State without the use of third-party libraries. This criticism does not apply to ASP.NET and ASP applications running side by side on IIS
Internet Information Services
Internet Information Services - formerly called Internet Information Server - is a set of Internet-based services for servers created by Microsoft for use with Microsoft Windows.... 7. With IIS
Internet Information Services
Internet Information Services - formerly called Internet Information Server - is a set of Internet-based services for servers created by Microsoft for use with Microsoft Windows.... 7, modules may be run in an integrated pipeline that allows modules written in any language to be executed for any request.
ASP.NET 2.0 Web Forms produces markup that passes W3C validation, but it is debatable as to whether this increases accessibility
Web accessibility
Web accessibility refers to the practice of making websites usable by people of all abilities and disabilities. When sites are correctly designed, developed and edited, all users can have equal access to information and functionality.... , one of the benefits of a semantic XHTML
XHTML
The Extensible Hypertext Markup Language, or XHTML, is a markup language that has the same depth of expression as HTML, but also conforms to XML syntax.... page + CSS
CSS
CSS may stand for:... representation. Several controls, such as the Login
Login
selfref|For Wikipedia login, see... controls and the Wizard control, use HTML
HTML
HTML, an Acronym and initialism of HyperText Markup Language, is the predominant markup language for Web pages. It provides a means to describe the structure of text-based information in a document?by denoting certain text as links, headings, paragraphs, lists, and so on?and to supplement that text with interactive forms, embedded '... tables for layout by default. Microsoft
Microsoft
Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices.... has solved this problem by releasing the , a free add-on that produces compliant accessible XHTML
XHTML
The Extensible Hypertext Markup Language, or XHTML, is a markup language that has the same depth of expression as HTML, but also conforms to XML syntax.... +CSS
CSS
CSS may stand for:... markup.
A few of the ASP.NET Web Forms features, such as repositioning of pages, are available only in Internet Explorer.
Development tools
Several available software packages exist for developing ASP.NET applications:
(free)
Visual Web Developer 2008 Express Edition (free) or Visual Studio 2008 (for ASP.NET 2.0/3.5)
Visual Web Developer 2005 Express Edition (free) or Visual Studio 2005 (for ASP.NET 2.0)
HomeSite is an HTML editor owned by Adobe Systems . Unlike WYSIWYG HTML editors such as Microsoft FrontPage and Macromedia Dreamweaver, HomeSite is designed for direct editing, or "hand coding," of HTML and other website languages.... 5.5 (For ASP Tags)
Microsoft Expression Web, code-named Quartz, is a WYSIWYG HTML editor and general web design program by Microsoft, replacing Microsoft FrontPage.... , part of the Microsoft Expression Studio
Microsoft Expression Studio
Microsoft Expression Studio is a suite of graphic design and digital media applications from Microsoft aimed at developers and designers. It consists of:... application suite.
Microsoft SharePoint Designer is a WYSIWYG HTML editor and general web design program from Microsoft, replacing Microsoft Office FrontPage, and part of the Microsoft SharePoint family of products....
MonoDevelop is an open source integrated development environment for the Linux platform, primarily targeted for the development of software that uses both the Mono and Microsoft .NET framework.... (Free/Open Source
Open source
Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations.... )
SharpDevelop is a free and open source Integrated development environment for the C Sharp programming language, Visual Basic .NET , Boo , and F Sharp and IronPython programming languages.... (Free/Open Source
Open source
Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations.... )
(free)
Macromedia Dreamweaver MX, Macromedia Dreamweaver MX 2004, or Macromedia Dreamweaver 8 (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 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)
Frameworks
It is not essential to use the standard webforms development model when developing with ASP.NET. Noteworthy frameworks designed for the platform include:
The Base One Foundation Component Library is a rapid application development toolkit for building secure, Fault-tolerant system, database applications on Microsoft Windows and ASP.NET.... is a RAD framework for building .NET database
Database
A database is a structured collection of records or data that is stored in a computer system. The structure is achieved by organizing the data according to a database model.... and distributed computing
Distributed computing
Distributed computing deals with hardware and software systems containing more than one processing element or Computer data storage element, Concurrent computing processes, or multiple programs, running under a loosely or tightly controlled regime.... applications.
MonoRail, a component of the Castle Project, is an open source web application framework built on top of the ASP.NET platform. Inspired by Ruby on Rails Action Pack, MonoRail differs from standard ASP.NET WebForms development by enforcing separation of concerns using a model-view-controller architecture.... , an open-source MVC
Model-view-controller
Model?View?Controller is an Architectural pattern used in software engineering. Successful use of the pattern isolates business logic from user interface considerations, resulting in an application where it is easier to modify either the visual appearance of the application or the underlying business rules without affecting the other.... framework with an execution model similar to Ruby on Rails
Ruby on Rails
Ruby on Rails is an open source web application framework for the Ruby . It is often referred to as "Rails" or "RoR". It is intended to be used with an agile software development, which is often utilized by web developers for its suitability for short, client-driven projects.... . The framework is commonly used with Castle ActiveRecord, an ORM layer built on NHibernate
NHibernate
NHibernate is an Object-relational mapping solution for the .NET Framework platform: it provides a Software framework for mapping an Object-oriented programming domain model to a traditional relational database.... .
Spring.NET, a port of the Spring framework for Java.
Skaffold.NET, A simple framework for .NET applications, used in enterprise applications..
Versions
Date
Version
Remarks
New features
January 16, 2002
1.0
First version
released together with Visual Studio .NET
Object oriented web application development supporting Inheritance
Inheritance (computer science)
In object-oriented programming, inheritance is a way to form new class es using classes that have already been defined. The inheritance concept was invented in 1967 for Simula.... , Polymorphism
Polymorphism in object-oriented programming
In simple terms, polymorphism is the ability of one type, A, to appear as and be used like another type, B. In strongly typed languages, this usually means that type A somehow derives from type B, or type A implements an interface that represents type B.... and other standard OOP features
Developers are no longer forced to use Server.CreateObject(...), so early-binding and type safety are possible.
Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces .... programming; the developer can 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 handling
Exception handling
Exception handling is a programming language construct or computer hardware mechanism designed to handle the occurrence of exceptions - special conditions that change the normal flow of execution.... )
Windows Server 2003 is a Server operating system produced by Microsoft. Introduced on 24 April 2003 as the successor to Windows 2000 Server, it is considered by Microsoft to be the cornerstone of its Windows Server System line of business server products....
Whidbey can refer to:*Whidbey Island, located in Island County, Washington, United States*Whidbey, the Microsoft Project code name Microsoft codenames for Visual Studio 2005...
Microsoft Visual Studio Express is a set of freeware integrated development environments developed by Microsoft that are lightweight versions of the Microsoft Visual Studio product line....
Language Integrated Query is a Microsoft .NET Framework component that adds native data Query language capabilities to List of .NET languages.... with a new LinqDataSource control
ASP.NET Dynamic Data is a Ruby on Rails inspired web application Scaffold framework from Microsoft, shipped as an extension to ASP.NET, that can be used to build data driven web applications....
Support for controlling browser history in an ASP.NET AJAX application
Capability to combine multiple Javascript files into a single file for more efficient downloading
WCF Support for RSS, JSON, POX and Partial Trust
Further reading
Anne Boehm: Murachs ASP.NET 3.5 Web Programming with VB 2008, July 21 2008, Mike Murach and Associates, ISBN 978-1-890774-47-9
Stephen Walther: ASP.NET 3.5 Unleashed, December 28 2007, Sams Publishing, ISBN 0-672-33011-3 ISBN 0-672-33011-3
Stephen Walther: Data Access in the ASP.NET 2.0 Framework (Video Training), September 26 2007, Sams Publishing, ISBN 0-672-32952-2