Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation.

Lignende præsentationer


Præsentationer af emnet: "Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation."— Præsentationens transcript:

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 …


Download ppt "Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation."

Lignende præsentationer


Annoncer fra Google