14. Web-baserede Apps i.NET. 2 NOEA2009C#-kursus Objectives “Real-world applications are typically multi-tier, distributed designs involving many components.

Slides:



Advertisements
Lignende præsentationer
HUNDE SPEED km h 34,4 HUNDE SPEED km h 34,1 HUNDE SPEED km h 32,8 HUNDE SPEED km h 31,9 HUNDE SPEED km h 31,8 HUNDE SPEED km h 30,9.
Advertisements

SPBG.  Test driven development  Unit test frameworks  MOSS TDD  Mocking  Design patterns.
VIS HJÆLPELINJER SOM ER EN HJÆLP VED PLACERING AF LOGO: 1.Højreklik på den aktuelle side og vælg ’gitter og hjælpelinjer’ 2. Sæt kryds ved ’Vis’ tegnehjælpelinjer.
Hjemmesidekonstruktion Tjekspørgsmål 1.Hvad er et markup-sprog – hvad bruges det til? 2.Hvad er forskellen mellem et markup-sprog og et scriptsprog? 3.Hvad.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
5. WinForms: GUI Programmering i.NET. 2 Nordjyllands Erhvervakademi Mål “.NET supports two types of form-based apps, WinForms and WebForms. WinForms.
WinForms: GUI Programmering i .NET
1 GUI Programmering i.NET WinForms. Mål “.NET supports two types of form-based apps, WinForms and WebForms. WinForms are the traditional, desktop GUI.
Drupal[.org] Open Source CMS 6/
Masterpages/Otto Knudsen 1 Master Pages  Master Pages i ASP.NET 2.0.
Atlas/Otto Knudsen 1 "Atlas"  AJAX Extensions til ASP.NET.
Når en applikation går i fejl… … er det interessant, at vide noget om: Hvornår gik applikationen i fejl Hvilken applikation gik i fejl Hvad er fejlen.
Microsoft Windows.NET Compact Framework Niels Hilmar Madsen Developer & Platform Strategy Group Microsoft Danmark.
Communication & Design ODEUM e-Plan Landinspektør Martin Høgh Urban Planning and Transport.
Sikkerhed/Otto Knudsen 1 Diagnostics  Debug af web-applikationer.
Distribueret programmering, specielt Web Services Rasmus D. Lehrmann DM
Projektledelse IT-projektledelse (ITP) Projektledelse og Produktion af Digitalt Indhold (DPI) Projektledelse IT-projektledelse (ITP) Projektledelse og.
13 – Database med JDBC. 2 NOEA2009Java-kursus – JDBC JDBC JDBC er et standard bibliotek til at tilgå relational databaser API’et er en standardiseret.
1 JavaServer Faces Copyright © Lund & Bendsen Dynamikken i JSF.
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Datastrukturer og Collections Oversigt og forskel imellem Jave og.net Collections library Collection interfaces ArrayList IList interface Hashtable Hashtable.
Modul 1 (B) Rød løber Tid: 30 minutter. Spilleregler for dagen.
06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer.
Item gennemgang  Item: 01 – Static factory methods  Item: 09 – Override hashCode  Item: 17 – Design & document inheritence  Item: 25 – Lists over arrays.
1 Analyse af geografiske valgresultater Søren Risbjerg Thomsen Institut for Statskundskab Aarhus Universitet.
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
CodeIgniter Database Brugerinput Form Validation 20101JFH.

Udvikling med Microsoft 2007 Office System Michell Cronberg Microsoft MVP, MCT, MCAD ISV Innovation Day 2006 ServerServer.
Objekter og klasser Applikationsdesign Code Namespace Value og reference typer Reference type Rasmus D. Lehrmann1.
FEN Databaser/DBAdgang21 DB-adgang - Connectionless Connectionless DataAdapter DataSet.
12 – GUI med Swing. 2 NOEA2009Java-kursus – GUI med Swing Designer view Komponenter Frame Properties Inspector.
Projektledelse IT-projektledelse (ITP) Projektledelse IT-projektledelse (ITP) Lektion september 2004 Peter Olaf Looms.
Visual Studio Team System Work Item tracking med Microsoft templates.
Introduktion til.NET- platformen og version 2.0 Michell Cronberg Microsoft MVP
Tilstandsstyring/Otto Knudsen 1 Tilstandsstyring Motivation ViewState EventTarget, EventArgument.
Masterpages/Otto Knudsen 1 Master Pages Master Pages i ASP.NET 2.0.
Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation.
Introduktion/Otto Knudsen 1 Overblik WebForms ASP.NET.
Distribution af funktionalitet Webservice med WCF x.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Distribution af funktionalitet Webservice med WCF x.
Web service - elementer SOAP (Simple Object Access Protocol) WSDL (Web Service Description language) UDDI (Universal Description, Discovery and Integration)
Web service - elementer SOAP (Simple Object Access Protocol) WSDL (Web Service Description language) UDDI (Universal Description, Discovery and Integration)
ASP.NET Custom Web Controls Deployment. Agenda – ASP.NET Web User Controls Composite Control Rendered Custom Control Deploy en Web Applikation.
Abstrakte klasser og interfaces i Java
Programering af mobile enheder Windows Phone Storage.
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
1..NET Arkitektur. 2 Nordjyllands Erhvervakademi Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
N-lags design/Otto Knudsen 1 N-lags Design Definition Motivation.
Session Når man hoster en WCF Service på ASP.NET website, kan man bruge ASP.NET’s Session.
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
Rohde & Schwarz - WPF Det bedste siden skiveskåret brød? v/Magnus Toftdal Lund.
AJAX/Otto Knudsen 1 AJAX Motivation Definition. AJAX/Otto Knudsen 2 Motivation En typisk web-applikation er synkron klienten sender en forespørgsel og.
MSBuild & Team Build i C#/C++ solutions VSTS ERFA d. 25 November.
Grunde til at jeg elsker dig
1..NET Arkitektur. Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework Class Libraries (FCL). The CLR defines.
Fundamentale datastrukturer
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
1..NET Arkitektur. 2 Nordjyllands Erhvervakademi Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework.
1 Team Build med Team Foundation Server 2008 Konfiguration og udvidelse af build jobs Kort præsentation Hvorfor bruge Team Build Afvikling af et build.
Masterpages/Otto Knudsen 1 Navigation på webstedet Kontroller til navigation mellem siderne på webstedet.
Internetteknologi (ITNET2) Kort teknisk ASP.NET introduktion Mandag den 19/ Jesper Tørresø.
Fremstilling af Simple WEB steder [ITPL] Foråret 2004
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
ASP.NET – web site publish. ASP.NET – site-version.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
1 | 2011 ASP.NET Framework i et webform/page perspektiv The Framework to a page.
ISS webserver og web applikationer
Præsentationens transcript:

14. Web-baserede Apps i.NET

2 NOEA2009C#-kursus 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

3 NOEA2009C#-kursus Del 1 Web-baserede applicationer…

4 NOEA2009C#-kursus 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 object BusinessPresentationData AccessData

5 NOEA2009C#-kursus 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 obj browser Web server HTTP, HTML Web Page obj custom FE other App SOAP, XML

6 NOEA2009C#-kursus Typer af web sites Set i IIS's perspektiv, 2 typer: –statisk –dynamisk

7 NOEA2009C#-kursus Statiske web sites Et statisk web site har følgende egenskaber: 1.alle websider er oprettet på forhånd og ligger i filer på harddisken 2.webserver returnerer siderne uden nogen behandling Welcome to AAA Painting Welcome to AAA Painting History of our company Pricing How to contact us

8 NOEA2009C#-kursus HTML Statiske web sites er typisk ren HTML –siden kan også indeholde script kode som kører på klient- siden Welcome to AAA Painting Welcome to AAA Painting History of our company Pricing How to contact us

9 NOEA2009C#-kursus 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: –dynamisk request:

10 NOEA2009C#-kursus ASP Active Server Pages Microsoft's server-side programeringsteknologi –ASP baseret på script sprog, fortolket –ASP.NET baseret på.NET sprog, oversat, hurtigere, … IIS client ASP engine HTML

11 NOEA2009C#-kursus Eksempel lav en dynamisk side med deltagere –generer siden ved at læse navnene fra en database IIS ASP Page

12 NOEA2009C#-kursus ASP side — del 1, præsentation ASP page = HTML + code… RWWP.NET, July 2002 RWWP.NET, July 2002 List of attendees: <% Call OutputAttendees( ) %> Sub OutputAttendees(). inline code block default.asp

13 NOEA2009C#-kursus ASP page — del 2, logik 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(" " + firstName + " " + lastName) rs.MoveNext() Loop rs.Close : dbConn.Close End Sub default.asp

14 NOEA2009C#-kursus 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

15 NOEA2009C#-kursus Del 2 WebForms…

16 NOEA2009C#-kursus Traditionel form-baseret web apps HTML understøtter allerede form-baserede apps Login Please login: Username: Password:

17 NOEA2009C#-kursus 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)

18 NOEA2009C#-kursus Abstraktion Som WinForms, er WebForms baseret på klasser i FCL –adskiller WebForm app fra den underliggende platform System.Web.UI.Page CLR Windows OS instance of FCL class object

19 NOEA2009C#-kursus Oprette WebForm app Gode nyheder: næsten ligesom at oprette en WinForm app! 1.opret et passende projekt i Visual Studio 2.design form(s) via drag-and-drop af controls 3.programmer events

20 NOEA2009C#-kursus Eksempel En simpel WebForms app til at vise attendee info fra DB

21 NOEA2009C#-kursus (1) Opret ASP.NET Web App project Location = name of web site = " –virtual directory:AttendeeApp –fysisk directory:C:\Inetpub\wwwroot\AttendeeApp

22 NOEA2009C#-kursus (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…

23 NOEA2009C#-kursus (3) Design WebForm Ligesom en WinForm –drag-and-drop fra toolbox…

24 NOEA2009C#-kursus 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

25 NOEA2009C#-kursus (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();.

26 NOEA2009C#-kursus (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"

27 NOEA2009C#-kursus (6) Reminder — client-server relationship! The server indeholder masser af kode –se fysisk directory… Men klient ser kun HTML! –"View Source" i browser…

28 NOEA2009C#-kursus 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

29 NOEA2009C#-kursus #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

30 NOEA2009C#-kursus 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; }.

31 NOEA2009C#-kursus #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 IIS client 1. initial request is posted 2. HTML rendering of page 3. same page is "posted- back" for event processing 4. HTML rendering of page ASP.NET engine

32 NOEA2009C#-kursus #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)

33 NOEA2009C#-kursus #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.

34 NOEA2009C#-kursus #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