Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afSilje Kirkegaard Redigeret for ca. et år siden
1
Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation
2
Eksekvering/Otto Knudsen 2 Eksempel Lad os publicere Calculator-applikationen: hvad er en web-applikation helt præcis? hvordan eksekveres web-applikationen? hvor er.NET koden?
3
Eksekvering/Otto Knudsen 3 Publicering fra Visual Studio Build >> Publish Web Site Man kan publicere direkte til en web-server – eller man kan publicere til et lokalt filsystem og kopiere filerne selv Pga. en fejl i VS 2005, så må URL'en ikke hedde det samme som projektet — derfor publiceres applikationen under "http://localhost/WebCalculator"
4
Eksekvering/Otto Knudsen 4 Hvad sker der rent faktisk? "code-behind"-koden kompileres til en.NET assembly (.dll)
5
Eksekvering/Otto Knudsen 5 Hvor findes "code-behind"-koden? Web-siden indeholder direktiver til den underliggende.dll.. public partial class _Default : System.Web.UI.Page { protected void cmdAdd_Click(…) { // click event } public partial class _Default : System.Web.UI.Page { protected void cmdAdd_Click(…) { // click event }
6
Eksekvering/Otto Knudsen 6 ASP.NET Applikationer Hvad præcis er en ASP.NET applikation?
7
Eksekvering/Otto Knudsen 7 ASP.NET Applikationer En ASP.NET applikation = web-sider +.dll + web.config Web-siderne indeholder HTML markup.dll'en indeholder den kompilerede.NET-kode til web-siderne web.config indeholder konfigurationen (sikkerhed, datakilder, osv.) Web-server ?
8
Eksekvering/Otto Knudsen 8 Første kald … Hele applikationen er kompileret! Alt indhold af.aspx-filerne er om- dannet til klasseerklæringer klasser er kompileret til en eller flere.dll'er code-behind.dll skyggekopieres, så originalerne kan opdateres kald rederigeres nu til kompilerede assemblies [ kompileringen forklarer tidsforsinkelsen ved første kald til web- siden ] Fuldstændig kompilering øger ydeevnen Ift. server-side scripts (fx klassisk ASP, Perl, PHP, …)
9
Eksekvering/Otto Knudsen 9 Eksempel Publicér Calculator … Gå til WebCalculator … Web-server.dll request.dll response
10
Eksekvering/Otto Knudsen 10 Fra.aspx til klasser Code-behind => base class,.aspx => derived class public partial class _Default : System.Web.UI.Page { void btnAdd_Click(object sender, EventArgs e) { int i = int.Parse(txtNumber1.Text);... }. public partial class _Default { protected TextBox tbxNumber1; protected TextBox tbxNumber2; protected Button btnAdd;. } namespace ASP { public class Default_aspx : _Default { void BuildControlTree() { this.AddParsedSubObject(" \r\n"); this.AddParsedSubObject( new HtmlHead() ); this.AddParsedSubObject(" \r\n"); this.AddParsedSubObject( new HtmlForm() ); this.AddParsedSubObject(" \r\n \r\n"); }.
11
Eksekvering/Otto Knudsen 11 Eksekveringsmodellen Eksekveringen af ASP.NET applikationer
12
Eksekvering/Otto Knudsen 12 (1) Eksekveringen begynder … Eksekveringen begynder ved en klients første kald … Web-server klient- browser hent "page.aspx" Web- side
13
Eksekvering/Otto Knudsen 13 (2) Kompilering og load af Web-applikationen … Web-applikationen kompileres – om nødvendigt.dll'erne hentes ind i hukommelsen – om nødvendigt Side-objekterne instantieres og en serie hændelser inditræffer: PreInit, …, Load, …, Render, … Web-server.dll ASP.NET CLR Side
14
Eksekvering/Otto Knudsen 14 (3) Siden sendes tilbage som HTML … Output fra sidens Render-hændelse sendes tilbage til klienten response… Web-server.dll ASP.NET CLR Side
15
Eksekvering/Otto Knudsen 15 (4) Næste trin afhænger af klienten … Klienten forespørger måske på en ny side eller POST'er den samme side tilbage post-back Web-server.dll ASP.NET CLR Side
16
Eksekvering/Otto Knudsen 16 (5) Post-back … Ligesom før instantieres side-objektet og HTML'en dannes Forskelle: UI-objekter udfyldes med klientens værdier (fx indtastningsfelter) UI-hændelser eksekveres efter Load men før Render (fx knaptryk) btnAdd_Click(…) { int i = tbxNumber1.Text;. lblResult.Text =...; } btnAdd_Click(…) { int i = tbxNumber1.Text;. lblResult.Text =...; } Web-server.dll ASP.NET CLR Side
17
Eksekvering/Otto Knudsen 17 Observationer ASP.NET applikationer er kompilerede ASP.NET applikationer omdannes til HTML ASP.NET er en "server-side"-teknologi som standard sker al kodeeksekvering på serveren Det er ofte nødvendigt at benytte sig af post-back Sider eksekveres forskelligt, alt efter om det er første kald eller post-back det er vigtigt at holde sig for øje, når man programmerer … protected void Page_Load(object sender, EventArgs e) { if (this.IsPostBack) // Drop initialiseringen return; else this.lblDirectory.Text = GetSourceDir(); } protected void Page_Load(object sender, EventArgs e) { if (this.IsPostBack) // Drop initialiseringen return; else this.lblDirectory.Text = GetSourceDir(); }
18
Eksekvering/Otto Knudsen 18 IIS IIS – Microsofts Web-server
19
Eksekvering/Otto Knudsen 19 IIS (inetinfo.exe) Internet Information Services (IIS) IIS er Microsofts kommercielle web-server leveres sammen med XP Pro, Windows 2000/2003 og Vista installeres via kontrolpanelet: Tilføj/Fjern Programmer ASP.NET er et IIS plug-in installeres, når Visual Studio eller.NET installeres kører uden for IIS af sikkerhedshensyn ISAPI Extension Manager ASPNET_ISAPI.DLL ASP.NET ISAPI extension http://server/page.aspx HTTP Request ASP.NET worker process (ASPNET_WP.EXE).NET CLR ASP.NET
20
Eksekvering/Otto Knudsen 20 Calculator-applikationen i IIS'en Alting hentes ind i "worker"-processen ….NET danner en AppDomain (sikkerhedsgrænse) til at indeholde applikationen ved første kald henter ASP.NET dll'erne ASPNET_WP.EXE.NET CLR AppDomain ASP.NET App.dll Side
21
Eksekvering/Otto Knudsen 21 IIS'en er trådet.NET CLR er trådet for at kunne håndtere flere klienter En side-forespørgsel tilordnes en tråd fra CLR'ens thread pool Konsekvenser? ASP.NET applikationer er trådede ASPNET_WP.EXE.NET CLR AppDomain ASP.NET http://server/Calculator/Default.aspx...... T1T2T3 Page
22
Eksekvering/Otto Knudsen 22 Konfiguration af IIS'en IIS er konfigureret automatisk via Visual Studio 2005 Hvis man selv vil konfigurere IIS'en: Kontrolpanel, Administration, Internet Information Services
23
Eksekvering/Otto Knudsen 23 Hvad så? Øvelse #2
24
Eksekvering/Otto Knudsen 24 …
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.