Application State

Download Report

Transcript Application State

13
Advanced
Web Forms
with Databases
Programming Right from the Start
with Visual Basic .NET 1/e
Objectives
• Understand the principles behind a threetier architecture
• Know the advantages and disadvantages of
client-side state management techniques
• Know the advantages and disadvantages of
server-side state management techniques
• Develop an advanced Web Forms database
application
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
2
13-1 Three-Tier Architecture
• Business applications involving databases
are often divided into three layers:
– The presentation layer – web browser
– The application layer – IIS Web server
– The data layer – database server
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
3
13-1 Three-Tier
Architecture (cont.)
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
4
Presentation Layer
• The presentation layer runs on the user’s
computer (the client) and provides the
application interface.
• A fat client performs relatively significant
processing, with less load on the middle
tier.
• A thin client typically involves a web
browser for displaying HTML with
minimal processing.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
5
Application Layer
• The application layer provides various
modules and services that are essential for
the solution, including the processing of the
business-based computing rules.
• The application layer provides a mediator
between the presentation layer and the
database layer.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
6
Data Layer
• The database layer is responsible for all
database access required by the solution.
• This layer usually provides support for
adding, deleting, updating, and retrieving
information from the database.
• Connections to the database server eases
database account maintenance and
improves data security.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
7
13-2 State Management
• The HTTP protocol is stateless, which
means that each request for a new web page
is processed without any knowledge of
previous pages requested.
• State management refers to techniques by
which developers maintain the state of a
web application across multiple page
requests.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
8
13-3 Client-Side State
Management Techniques
• The following are client-side state
management options available to ASP.NET
developers:
– View state
– Cookies
– Query strings
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
9
View State
• A web page is re-created each round trip.
• ASP.NET provides view state which
represents the state of the page when it was
last processed on the server.
• The view state is visible in the HTML
source and is a potential security issue.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
10
Query String
• A query string is information appended to
the end of a page’s URL.
• Query strings typically begin with a “?”.
• Query strings are not secure because the
query information is visible in the browser.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
11
Cookies
• A cookie is a small text file stored on the
client machine.
• The browser attaches the cookie with each
new HTTP request before sending it to the
server, which can read the data and respond
appropriately.
• The information stored in a cookie can be
exposed so they are not the best means of
handling sensitive information.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
12
13-4 Server-Side State
Management Techniques
• The following are server-side state
management options available to ASP.NET
developers:
– Application state
– Session state
– Database support
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
13
Application State
• An ASP.NET application is the sum of all
files, pages, and code that resides on a
server.
• When a web application runs, ASP.NET
maintains information about the application
in the application state.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
14
Application State (cont.)
• The application state allows developers to
create application variables that can be set
and read throughout the lifetime of the
application.
• Application variables are global variables
– Application(“AppVariableName”)
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
15
Session State
• A session is the period of time that a unique
browser interacts with a web application.
• When a new session is created, ASP.NET
maintains information about the session in
the session state.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
16
Session State (cont.)
• The session state allows developers to
create session variables that can be set and
read throughout the lifetime of the session.
• Sessions and their variables expire after
twenty minutes of inactivity.
– Session(“SessionVariableName”)
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
17
Database Support
• Data stored in application variables and
session variables will be lost if the
application is interrupted; therefore, state
information should be stored in a database.
• State information should be maintained for:
–
–
–
–
Security
Queries
Capacity
Data mining
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
18
Security
• Customer information stored in a database
is an extra level removed from the
presentation layer, making the data less
available for malicious use.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
19
Queries
• Storing data in a database gives the
application all the power and functionality
of databases in general, including the
ability to query for specific information.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
20
Capacity
• Databases are especially good at handling
large amounts of information, and the data
services can be split off to a data layer that
resides on one or more data servers,
allowing the web application to avoid a
performance decrease.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
21
Data Mining
• An application could maintain information
about times and dates of customer visits,
pages visited, time per page, items ordered,
and so on.
• This information could be mined for
interesting relationships – information that
could provide a strategic business
advantage.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
22
Chapter Summary
• The presentation layer provides the client
interface, the application layer usually
implements the business logic of a solution,
and the data storage layer maintains the
database and tools for data access.
• Client-side state management is less secure
than server-side state management.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
23
Chapter Summary (cont.)
• When a web application runs, ASP.NET
maintains information about the application
in the application state.
• Application variables are helpful for storing
small amounts of infrequently changed
global information that is used by many
users.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
24
Chapter Summary (cont.)
• Session state variables are helpful for
storing small amounts of short-lived
information that is specific to an individual
session.
• Database support is good for storing large
amounts of information or information that
must survive application and session
restarts.
Crews/Murphy – Programming Right from the Start with Visual Basic.NET 1/e – ©2004 Prentice Hall
25
13
Advanced
Web Forms
with Databases
Programming Right from the Start
with Visual Basic .NET 1/e