ASP .NET



|ASP .NET |

|Web Application |

| |

|By |

|Gaurish N Rane |

| |

| |

| |

| |

INDEX

1. Introduction

2. History

3. Characteristics

4. Performance

5. Extension

6. Developing productivity

7. Development tools

8. Administration Tool

9. Versions

Introduction

| |

| |

|Developed by |Microsoft |

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

|Written in |.NET Languages |

|Type |Web application framework |

|License |Proprietary |

|Website | |

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. is built on the Common Language Runtime (CLR), allowing programmers to write code using any supported .NET language.

History

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 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, 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 . 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, 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 , and Microsoft promoted it heavily as part of their platform for web services. Guthrie became the product unit manager for , 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 's support for mobile devices.

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)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 which is similar to other web development

protected void Page_Load(object sender, EventArgs e)

{

Label1.Text = DateTime.Now.ToLongDateString();

}

Sample page

The current time is:

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

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

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 programmers that rely on class instance members that are lost with every page request/response cycle.

State management

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. provides various functionality for state management in 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 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

Productivity

Developer Productivity

helps you deliver real world Web applications in record time.

• Easy Programming Model.  makes building real world Web applications dramatically easier.  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, pages work in all browsers -- including Netscape, Opera, AOL, and Internet Explorer.

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

• Great Tool Support.  You can harness the full power of 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 Web Forms using familiar drag-drop-doubleclick techniques, and enjoy full-fledged code support including statement completion and color-coding.   also provides integrated support for debugging and deploying 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 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 more!  

Extension

Microsoft has released some extension frameworks that plug into and extend its functionality. Some of them are:

AJAX

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

MVC Framework

An extension to author pages using the MVC architecture

compared to ASP classic

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.

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 events.

• 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.

• leverages the multi-language capabilities of the .NET Common Language Runtime, allowing web pages to be coded in , C#, J#, , 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.

• If an application leaks memory, the runtime unloads the AppDomain hosting the erring application and reloads the application in a new AppDomain.

• Session state in 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 worker process is recycled.

• Versions of 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 for providing the UI for the web form. These controls are state managed controls and are WYSIWYG controls.

Performance

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 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 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 combines unprecedented developer productivity with performance, reliability, and deployment.

Improved Performance and Scalability

lets you use serve more users with the same hardware.

• Compiled execution.  is much faster than classic ASP, while preserving the "just hit save" update model of ASP.  However, no explicit compile step is required!  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. output caching can dramatically improve the performance and scalability of your application.  When output caching is enabled on a page, 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, 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. 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 implementation, Microsoft .NET significantly outperformed J2EE.  The bottom line: the 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

ensures that your application is always available to your users.

• Memory Leak, DeadLock and Crash Protection.  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.  will detect this condition, automatically start up another copy of the 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, has recovered from the error.    

Deployment

takes the pain out of deploying server applications.

• "No touch" application deployment.   dramatically simplifies installation of your application.  With , 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.  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 , you simply copy the component over the existing DLL -- will automatically detect the change and start using the new code. 

• Easy Migration Path.  You don't have to migrate your existing applications to start using .  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 pages are processed by the new engine.  You can migrate application by application, or single pages.  And even lets you continue to use your existing classic COM business components.

New Application Models

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.  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, 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.  Mobile Controls let you easily target cell phones, PDAs -- over 80 mobile Web devices -- using .  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 applications:

|Product  [pic] |Developer  [pic] |Licensing  [pic] |Notes  [pic] |

| Intellisense |BlueVision LLC |Free | |

|Generator | | | |

|Microsoft Visual Studio |Microsoft |Free and Commercial | |

|CodeGear Delphi |Embarcadero |Commercial | |

| |Technologies | | |

|Macromedia HomeSite |Adobe Systems |Commercial | |

|Microsoft Expression Web|Microsoft |Commercial | |

|Microsoft SharePoint |Microsoft |Free | |

|Designer | | | |

|MonoDevelop |Novell and the Mono |Free Open Source | |

| |community | | |

|SharpDevelop |ICSharpCode Team |Free Open Source | |

|Eiffel for |Eiffel Software |Free Open Source and | |

| | |Commercial | |

|Macromedia Dreamweaver |Adobe Systems |Commercial |Doesn't support 2.0 features, and produces very inefficient |

| | | |code for 1.x: also, code generation and 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 |

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 Tool:

• 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.

Requirements

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.

Features

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 membership system, where you define individual user accounts. 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.

Versions

|Date  [pic] |Version  [pic] |Remarks  [pic] |New related features  [pic] |

|January 16, 2002| 1.0 |First version |Object oriented web application development supporting Inheritance, Polymorphism and|

| | |released together with |other standard OOP features |

| | |Visual Studio .NET |Developers are no longer forced to use Server.CreateObject(...), so early-binding |

| | | |and type safety are possible. |

| | | |Based on Windows 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) |

|April 24, 2003 |1.1 |released together with |Mobile controls |

| | |Windows Server 2003 |Automatic input validation |

| | |released together with | |

| | |Visual Studio .NET 2003 | |

|November 7, 2005|2.0 |codename Whidbey |New data controls (GridView, FormView, DetailsView) |

| | |released together with |New technique for declarative data access (SqlDataSource, ObjectDataSource, |

| | |Visual Studio 2005 and |XmlDataSource controls) |

| | |Visual Web Developer |Navigation controls |

| | |Express |Master pages |

| | |and SQL Server 2005 |Login controls |

| | | |Themes |

| | | |Skins |

| | | |Web parts |

| | | |Personalization services |

| | | |Full pre-compilation |

| | | |New localization technique |

| | | |Support for 64-bit processors |

| | | |Provider class model |

|November 21, |3.0 | |Windows Communication Foundation which can use to host services. |

|2006 | | |Windows CardSpace which uses for login roles. |

|November 19, |3.5 |Released with Visual |New data controls (ListView, DataPager) |

|2007 | |Studio 2008 and Windows | AJAX included as part of the framework |

| | |Server 2008 |Support for HTTP pipelining and syndication feeds. |

| | | |WCF Support for RSS, JSON, POX and Partial Trust |

|August 11, 2008 |3.5 Service Pack|Released with Visual |Incorporation of Dynamic Data |

| |1 |Studio 2008 Service Pack|Support for controlling browser history in an AJAX application |

| | |1 |Capability to combine multiple Javascript files into a single file for more |

| | | |efficient downloading |

| | | |New namespaces System.Web.Abstraction and System.Web.Routing |

What’s New In .NET FrameWork 3.5 SP1

SP1 advances the art of application development

The new 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 Dynamic Data, which provides a rich scaffolding framework that enables rapid data-driven development. Since 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 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

[pic][pic][pic][pic][pic][pic][pic][pic][pic][pic][pic][pic][pic][pic][pic]

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download