Anatomy of an ASP.NET Page

36
Anatomy of an ASP.NET Page

description

Anatomy of an ASP.NET Page. My Version of the Big Picture (1). Server. Your application. ASP Worker (Engine). Runs. Other applications. Request. Response. Session 1. Session 2. Client (Browser). User 1. User 2. My Version of the Big Picture (2). Server. User Controls. - PowerPoint PPT Presentation

Transcript of Anatomy of an ASP.NET Page

Page 1: Anatomy of an ASP.NET Page

Anatomy of an ASP.NET Page

Page 2: Anatomy of an ASP.NET Page

Slide 2

My Version of the Big Picture (1)

ASP Worker(Engine)

Your applicatio

nRuns

Server

Other applications

User 1 User 2

Session 1 Session 2Client (Browser)

RequestResponse

Page 3: Anatomy of an ASP.NET Page

Slide 3

My Version of the Big Picture (2)

Your ASP.NET applicatio

n

Server

Web.config

HTML Docs

Master Page(s)

User Controls

contains

Content Page(s)

ASP Pages

Site.master

Page 4: Anatomy of an ASP.NET Page

Slide 4

(Review) What is an ASP.NET Page? Roughly speaking, an ASP.NET page

contains Markup (appears in the .aspx page) Server-side code that the ASP.NET worker

executes (appears in the .aspx page or in a separate code behind page)

The resulting HTML is sent out to the client (browser) by the asp worker process

Page 5: Anatomy of an ASP.NET Page

Slide 5

ASP.NET Manual Event Wiring We will use AutoEventWireUp so this

step will be unnecessary

Page 6: Anatomy of an ASP.NET Page

Slide 6

Compiling an ASP.NET Page An ASP.NET page is compiled when it is

rendered for the first time A page is compiled to a class that

derives from System.Web.UI.Page Parse the .aspx file and create a class that

derives from Page The preceding class is then compiled to an

assembly This process is transparent and is handled

by ASP.NET itself

Page 7: Anatomy of an ASP.NET Page

Slide 7

Compiling an ASP page(Illustration)

Page 8: Anatomy of an ASP.NET Page

Slide 8

IIS File Mappings .asax – application files .ascx – ASP user controls .asmx – Web services .aspx – ASP.NET Web pages

Page 9: Anatomy of an ASP.NET Page

Slide 9

Processing Directives (1) Processing directives are used to

configure the runtime environment and help the compiler Directives can appear anywhere on a page

but best practices dictate that they appear at the beginning of the page

Directives begin with <%@ and end with %> Make sure you don’t forget the %>

Page 10: Anatomy of an ASP.NET Page

Slide 10

Processing Directives (Example) Processing directives have the following

format:<%@ directive_name attribute=“value” attribute=“value” %>

Processing directives and asp expressions work similarly

https://msdn.microsoft.com/en-us/library/ydy4x04a(v=vs.85).aspx

Page 11: Anatomy of an ASP.NET Page

Slide 11

Processing Directives (3) Processing directives are used to

Describe the page itself (@ Page) Describe a special type of a page called a

master page (@ Master) Control caching (@ OutputCache) And more

We’ll refer back to these as the course progresses

Page 12: Anatomy of an ASP.NET Page

Slide 12

Processing Directives (@ Page) It can appear only in .aspx pages Attributes are divided into roughly three

categories Compilation Page behavior Page output

There are other tools to configure the same options beyond processing directives

Page 13: Anatomy of an ASP.NET Page

Slide 13

Processing DirectivesPage Compilation CodeFile lists the file containing the VB

or C# code for the .aspx page Language describes the programming

language for the CodeFile ClassName explicitly sets the name of

the class created upon compilation This name corresponds to the name of the

class declared in the underlying .cs file.

Page 14: Anatomy of an ASP.NET Page

Slide 14

Processing Directives(Page Output) Most of these directives relate to

localization and multiple cultures ClientTarget allows pages to be

rendered for a specific browser

Page 15: Anatomy of an ASP.NET Page

Slide 15

Introduction to the Page Class The Page class provides the basic

behavior for an ASP Web page It’s objects allow you to reference

The application itself (Application) The server itself (Server) The HTTP request (HttpRequest) The HTTP response (HttpResponse) The user’s session (Session)

Page 16: Anatomy of an ASP.NET Page

Slide 16

Introduction to Page Events First, this topic is very important to

getting your ASP applications to work ASP uses the eventing model to

Persist state from one postback to the next

Create static and dynamic controls Bind control instances to data sources And much more

As your book says “state is an illusion of continuity”

Page 17: Anatomy of an ASP.NET Page

Slide 17

Page Life Cycle (1) When a page is requested or posted

back, the runtime figures out why the page is being processed

Normal request (First time visiting a page) Postback (Page posts back to the same

page) Cross-page postback (Page posts back to

another page) Callback (We postback part of a page and

return dat)

Page 18: Anatomy of an ASP.NET Page

Slide 18

Page Lifecycle (Illustration)

Page 19: Anatomy of an ASP.NET Page

Slide 19

Dissection Page methods can be overridden Page events are events that you can

handle as the page is loaded and processed

Control methods and events work similar to page methods and events. We handle these as controls are initialized http://

forums.asp.net/t/2068013.aspx?ASP+Net+Page+Life+Cycle

Page 20: Anatomy of an ASP.NET Page

Slide 20

Page Life Cycle (PreInit Event) It’s the first event in the page life cycle Master page has not been associated Themes have not been associated

It’s possible to change master page or theme association at this time

IsCallback, IsCrossPagePostback and IsPostBack are set at this time

Control instances have been created so you CAN reference them in code

Page 21: Anatomy of an ASP.NET Page

Slide 21

Page Life Cycle (Init Event) Init Event

Master page and theme have been set and cannot be changed

Child controls are initialized and the ID is set

Child controls are initialized recursively Init event fires for all child controls

before the event fires for the page itself Note that view state has not been restored

yet

Page 22: Anatomy of an ASP.NET Page

Slide 22

Page Life Cycle (InitComplete Event) Here, view state tracking is turn on The event fires only for the page

Page 23: Anatomy of an ASP.NET Page

Slide 23

Page Life Cycle (PreLoad Event) System initialization is complete We don’t typically do much here The event only fires for pages and not

controls

Page 24: Anatomy of an ASP.NET Page

Slide 24

Page Life Cycle (Load Event) The event is raised first for the page

and then recursively for all child controls

You can access control properties and view state at this time

Create dynamic controls in this event We won’t work with dynamic controls here

Use IsPostBack to check whether the page is being loaded in response to a postback or new page

Page 25: Anatomy of an ASP.NET Page

Slide 25

Page Life Cycle (LoadComplete Event) LoadComplete fires after Load

At this point, the page begins its rendering phase

We don’t generally do much here

Page 26: Anatomy of an ASP.NET Page

Slide 26

Page Life Cycle (PreRender Event) Fires for the page first and then

recursively for all controls Use to update controls before the

output is rendered

Page 27: Anatomy of an ASP.NET Page

Slide 27

Page Life Cycle (PreRenderComplete Event) Raised only for the page after PreRender has fired for all child control instances

Page 28: Anatomy of an ASP.NET Page

Slide 28

Page Life Cycle (SaveStateComplete Event) It fires for all constituent controls and

then the page itself Any changes made to control properties

will not be persisted after this Next, the markup is generated

Page 29: Anatomy of an ASP.NET Page

Slide 29

Page Life Cycle (Unload Event) After rendering, the event fires for all

control instances and then the page itself Use this event to close files or database

connections

Page 30: Anatomy of an ASP.NET Page

Slide 30

Page Class Properties (1) Controls returns a collection of controls on

the page IsPostBack indicates whether the page is

being loaded in response to a postback or is being loaded for the first time

PreviousPage returns a reference to the caller page Only meaningful in case of a cross-page

postback Check IsCrossPagePostback

Page 31: Anatomy of an ASP.NET Page

Slide 31

Page Class Properties (2) ClientTarget allows you to specify the

type of browser Note that automatic browser detection is

disabled EnableTheming and Theme allows you to

set page themes (more later) MaintainScrollPositionOnPostback

allows the page position to be persisted from one postback to the next

Page 32: Anatomy of an ASP.NET Page

Slide 32

Page Class Methods (1) DataBind binds all data bound controls

to their data sources (more later) Validate causes validation controls to

validate their data SetFocus sets input focus to the desired

control instance There are methods to work with client

script

Page 33: Anatomy of an ASP.NET Page

Slide 33

Folder Structure So far, you have seen a project from an

empty template Now for a real one

Page 34: Anatomy of an ASP.NET Page

Slide 34

Folder Structure You get many

template files and folders for free

All this gets compiledon the server to makeup an ASP.NET app

Page 35: Anatomy of an ASP.NET Page

Slide 35

Folder Structure App_Code is designed to store shared

code files (classes, .wsdl pages) App_Data is designed to store data

files Users can read and write data in this

folder The folder Scripts is not magical but we

store JavaScript and jQuery here Note that the jQuery scripts are copied

here by default from the standard template

Page 36: Anatomy of an ASP.NET Page

Slide 36

Global.asax Global.asax is the global application

startup, shutdown, and error file It contains procedures that are called by

the application infrastructure Application_Start called when the

application gets its first request Application_End not used much Application_Error to handle all

unhandled errors