14 web baserede apps i net n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
14. Web- baserede Apps i .NET PowerPoint Presentation
Download Presentation
14. Web- baserede Apps i .NET

Loading in 2 Seconds...

play fullscreen
1 / 34

14. Web- baserede Apps i .NET - PowerPoint PPT Presentation


  • 79 Views
  • Uploaded on

14. Web- baserede Apps i .NET. Objectives. “Real-world applications are typically multi-tier, distributed designs involving many components — the web server being perhaps the most important component in today's applications...” Web-baserede applicationer IIS WebForms WebServices. Del 1.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '14. Web- baserede Apps i .NET' - bishop


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
objectives
Objectives

“Real-world applications are typically multi-tier, distributed designs involving many components — the web server being perhaps the most important component in today's applications...”

  • Web-baserede applicationer
  • IIS
  • WebForms
  • WebServices
del 1
Del 1
  • Web-baserede applicationer…
husk applikationsdesign

object

object

object

Husk applikationsdesign
  • Mange applikationer er designet med N niveauer eller "tiers"
    • god adskillelse af områder
    • mulighed for genbrug af back-end tiers med forskellige FEs

Front-end

Presentation

Business

Data Access

Data

web baserede applikationer

obj

Web-baserede applikationer
  • Web-baserede apps giver mange fordele:
    • udvider rækkevidden af applikationen til bruger OG platform
    • baserede på åbne, ikke-leverandørafhængige teknologier
  • To typer:
    • WebForms: GUI-baseret app vist i browser
    • WebServices: objekt-baseret app returnerer rå XML

HTTP, HTML

browser

Web server

Web

Page

obj

obj

custom FE

SOAP,XML

obj

other App

typer af web sites
Typer af web sites
  • Set i IIS's perspektiv, 2 typer:
    • statisk
    • dynamisk
statiske web sites
Statiske web sites
  • Et statisk web site har følgende egenskaber:
    • alle websider er oprettet på forhånd og ligger i filer på harddisken
    • webserver returnerer siderne uden nogen behandling

<title>Welcome to AAA Painting</title>

<html>

<h3>Welcome to AAA Painting</h3>

<HR>

<ol>

<li> <A HREF="history.htm">History of our company</A>

<li> <A HREF="prices.htm">Pricing</A>

<li> <A HREF="contact-info.htm">How to contact us</A>

</ol>

<HR>

</html>

slide8
HTML
  • Statiske web sites er typisk ren HTML
    • siden kan også indeholde script kode som kører på klient-siden

<title>Welcome to AAA Painting</title>

<html>

<h3>Welcome to AAA Painting</h3>

<HR>

<ol>

<li> <A HREF="history.htm">History of our company</A>

<li> <A HREF="prices.htm">Pricing</A>

<li> <A HREF="contact-info.htm">How to contact us</A>

</ol>

<HR>

</html>

dynamiske web sites
Dynamiske web sites
  • Et dynamisk web site involverer server-side processing
  • Hvordan kan IIS se forskel?
    • baseret på fil extension af den fil, der requestes …
  • Eksempel:
    • statisk request: http://localhost/AAAPainting/default.htm
    • dynamisk request: http://localhost/Workshop/default.asp
slide10
ASP
  • Active Server Pages
  • Microsoft's server-side programeringsteknologi
    • ASP baseret på script sprog, fortolket
    • ASP.NET baseret på .NET sprog, oversat, hurtigere, …

IIS

http://host/page.asp

ASP

engine

client

HTML

eksempel
Eksempel
  • lav en dynamisk side med deltagere
    • generer siden ved at læse navnene fra en database

IIS

ASP

Page

asp side del 1 pr sentation
ASP side — del 1, præsentation

default.asp

  • ASP page = HTML + code…

<title>RWWP.NET, July 2002</title>

<html>

<h3>RWWP.NET, July 2002</h3>

<HR>

List of attendees:

<ol>

<%

Call OutputAttendees( )

%>

</ol>

<HR>

</html>

<SCRIPT LANGUAGE="VBScript" RunAt="Server">

Sub OutputAttendees()

.

.

.

inlinecodeblock

asp page del 2 logik
ASP page — del 2, logik

default.asp

Sub OutputAttendees()

Dim dbConn, rs, sql, firstName, lastName

sql = "Select * From Attendees"

Set dbConn = CreateObject("ADODB.Connection")

Set rs = CreateObject("ADODB.RecordSet")

dbConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" + _

"Data Source=C:\Inetpub\wwwroot\Databases\Attendees.mdb")

rs.ActiveConnection = dbConn : rs.Source = sql : rs.Open

Do While Not rs.EOF

firstName = rs("FirstName")

lastName = rs("LastName")

Response.Write("<li> " + firstName + " " + lastName)

rs.MoveNext()

Loop

rs.Close : dbConn.Close

End Sub

</SCRIPT>

n glen til web programmering
Nøglen til web programmering…
  • Det er en client-server relation
    • klient laver et request
    • server gør noget processering…
    • klient ser OUTPUT af server-side processering
del 2
Del 2
  • WebForms…
traditionel form baseret web apps
Traditionel form-baseret web apps
  • HTML understøtter allerede form-baserede apps

<HTML>

<HEAD>

<title>Login</title>

</HEAD>

<BODY>

<h2>Please login:</h2>

<form method="get" action="Main.htm" id="Login">

Username: <INPUT type="text" id="Name"> <BR>

Password: <INPUT type="text" id="pwd"> <BR> <BR>

<INPUT type="submit" value="Login">

</form>

</BODY>

</HTML>

webforms
WebForms
  • Web-baseret, form-baseret .NET apps
  • Baseret på mange teknologier:
    • IIS
    • ASP.NET (extension til IIS)
    • .NET Framework SDK (CLR, FCL, tools)
    • Visual Studio .NET (drag-and-drop creation)
abstraktion

object

Abstraktion
  • Som WinForms, er WebForms baseret på klasser i FCL
    • adskiller WebForm app fra den underliggende platform

instance of

FCL class

System.Web.UI.Page

CLR

Windows OS

oprette webform app
Oprette WebForm app
  • Gode nyheder: næsten ligesom at oprette en WinForm app!
    • opret et passende projekt i Visual Studio
    • design form(s) via drag-and-drop af controls
    • programmer events
eksempel1
Eksempel
  • En simpel WebForms app til at vise attendee info fra DB
1 opret asp net web app project
(1) Opret ASP.NET Web App project
  • Location = name of web site = "http://localhost/AttendeeApp"
    • virtual directory: AttendeeApp
    • fysisk directory: C:\Inetpub\wwwroot\AttendeeApp
2 projekt layout
(2) Projekt layout
  • VS .NET konfigurerer IIS for dig
  • VS .NET opretter web sitet for dig
    • indeholder 1 form-baseret web side
    • kaldt WebForm1.aspx by default
    • ignorer andre filer lige nu…
3 design webform
(3) Design WebForm
  • Ligesom en WinForm
    • drag-and-drop fra toolbox…
web controls vs html controls
Web controls vs. HTML controls
  • Toolbox indeholder 2 typer af controls:
    • dem under Web Forms
    • dem under HTML
  • Begge genererer ren HTML på klienten
    • dog sommetider med JavaScript!
  • Web controls:
    • virker ligesom tilsvarende WinForm
  • HTML controls:
    • mimic standard HTML controls
4 implementer events
(4) Implementer events
  • WebForms er event-driven:
    • on Page_Load, indsæt i list box fra database
    • on cmdViewInfo_Click, vis info den valgte deltager
  • I alle tilfælde, standard C# database programmering…

private void Page_Load(...)

{

IDbConnection dbConn = null;

try {

dbConn = new OleDbConnection(sConnection);

dbConn.Open();

.

.

.

5 run
(5) Run!
  • Du kan afvikle applikationen fra VS
  • Du debugge fra VS
  • Hvordan virker det?
    • starter en session af IE op
    • kobler debugger på IIS
    • viser .aspx siden markeret som "Start Page" i projektet
      • højreklik på den .aspx side du vil starte med
      • vælg "Set as Start Page"
6 reminder client server relationship
(6) Reminder — client-server relationship!
  • The server indeholder masser af kode
    • se fysisk directory…
  • Men klient ser kun HTML!
    • "View Source" i browser…
asp net programmerings model
ASP.NET programmerings model
  • Påoverfladen ser WebForms ud som WinForms
  • Men programmeringsmodellen er anderledes nedenunder
    • som følge af ASP.NET
    • som følge af client-server paradigme
1 traditionel dialog virker ikke
#1: Traditionel dialog virker ikke
  • For eksempel virker dette ikke:
    • MessageBox.Show( )
    • form1.Show( )
  • Hvorfor ikke?
    • Hvor skal formen komme op?…
  • Løsning:
    • Hvis du vil fortælle brugeren noget, brug en label på siden
    • Hvis du vil vise en anden side, redirect browser
web baseret dialoger
Web-baseret dialoger
  • Vis en meddelse til brugeren:

private void cmdViewInfo_Click(...)

{

if (this.ListBox1.SelectedItem == null) {

// nothing selected

this.lblErrorMsg.Text = "Please select an attendee!";

return;

}

.

.

.

2 f rre events

IIS

client

1. initial request is posted

ASP.NET

engine

2. HTML rendering of page

3. same page is "posted-

back" for event processing

4. HTML rendering of page

#2: Færre events
  • Der er færre events at programmere i WebForms
    • primært kun Change og Click events
  • hvorfor?
    • fordi hvert event giver en tur omkring serveren for at blive behandlet
    • og dermed er event processering en “dyr” aktivitet
3 autopostback
#3: AutoPostBack
  • faktisk bliver nogle events ikke sendt med det samme…
    • istedet bliver event’et lagt i kø "queued" indtil siden alligevel skal sendes tilbage
  • Gennemtvinge postback med det samme?
    • sæt control's AutoPostBack property (hvis den har en)
  • Eksempel:
    • list box laver ikke postback når du klikker på et item
    • istedet venter event’et til senere (f.eks. tryk på en knap)
4 postbacks
#4: Postbacks
  • Der skelnes mellem:
    • det første request af side X fra klient C som sendes til server
    • efterføglende "postbacks" af side X til klient C
  • Eksempel:
    • Page_Load event triggers hver gang
    • Men typisk kun for at initialisere form’en den første gang!

private void Page_Load(...)

{

if (this.IsPostBack) // no need to reload list box!

return;

.

. // first request, load list box from DB

.

5 statelessness
#5: Statelessness
  • Web apps er stateless
  • Hvert request af en side en selvstændig operation:
      • forbindelse åbnes
      • request sendes
      • result returneres
      • forbindelse lukkes
  • Implikationer? By default:
    • ingen session tilstand(i.e. ingen data for klient C mellem sider)
    • ingen global tilstand (i.e. ingen data mellem alle klienter & sider)
    • postback tilstand *er* håndteret af .NET
      • e.g. indholdet af list box