![Page 1: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/1.jpg)
1
Softwareentwicklung mit .NETTeil 3
ASP.NETWeb Forms
Dr. Ralph Zeller
![Page 2: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/2.jpg)
2
Web Applikationen ASP.NET definiert eine Web Applikation als
„die Summe aller Dateien, Seiten, Handler, Module und Executables, die in einem bestimmten virtuellen Verzeichnis auf einem Web Server aufgerufen und ausgeführt werden.“
Verteilte Applikationen
InternetWeb Service
Web Form
Präsentation Middle Tier Datenbank
![Page 3: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/3.jpg)
3
Alles begann mit HTMLBeispiel 1: HTML Web Form
![Page 4: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/4.jpg)
4
HTML Know how
Englisch: Peachpit Press, 2000 Deutsch: Markt und Technik, 2001
Online:
• http://www.selfhtml.org/
Buch:
• Elizabeth Castro
![Page 5: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/5.jpg)
5
Alt: Active Server Pages Was sind ASP?
• Server Side Scripting
• Datei enthält HTML und Script Code
• Ausführung durch HTTP Aufruf
• Script Code wird am Server interpretiert
<%@ Language="VBScript" %><html> <head> <title>Simple ASP Page</title> </head> <body> <h1>Today's date is <%= Date %></h1><p> <h1>The current time is <%= Time %></h1> </body></html>
<%@ Language="VBScript" %><html> <head> <title>Simple ASP Page</title> </head> <body> <h1>Today's date is <%= Date %></h1><p> <h1>The current time is <%= Time %></h1> </body></html>
![Page 6: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/6.jpg)
6
Alt: Active Server Pages
Was kann ich mit ASP machen?• Einfach und schnell Web Applikationen erstellen
• Web Inhalte dynamisch erzeugen
• Client Side Scripting zur Validierung
• Funktionalität durch COM Komponenten erweitern (z.B. Datenbankzugriff)
![Page 7: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/7.jpg)
7
Formulare in ASPBeispiel 2: ASP Darlehensrechner
![Page 8: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/8.jpg)
8
ASP Hypothekar Rechner method = "post"
• Formulardaten werden im HTTP Header übertragen
action = "Hcalc.asp"
• Weist auf die ASP Seite, die durch drücken von “Berechnen” aufgerufen wird
Postback
• Scriptobjekte werden automatisch mit den Werten in den Eingabefeldern initialisiert.
Eingabe verschwindet
• Zustand der Eingabefelder wird nicht am Server gespeichert
![Page 9: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/9.jpg)
9
Formulare in ASPBeispiel 3: ASP Darlehensrechner v2
![Page 10: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/10.jpg)
10
Neu: ASP.NET
Pattform für Web Applikationen
Neues Ausführungsmodell
Web Client
Betriebssystem
ASP.NETApplikationen
IIS
.NETFramework
![Page 11: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/11.jpg)
11
ASP.NET Konzept
Trennung von UI und Programmcode
Basiert auf .NET Framework
Code wird beim ersten Aufruf einer Seite compiliert
Zustandsmanagement
Mehrer Programmiersprachen können verwendet werden
Dateiupdate bei laufenden Serverbetrieb
![Page 12: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/12.jpg)
12
WebControlsBeispiel 4: ASP.NET Darlehensrechner
![Page 13: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/13.jpg)
13
ASP.NET Darleh.rechner Web Controls ersetzen <input> Tags
• Web Controls laufen am Server (RunAt = "server")
• Server Side Scripts können Web Controls durch ihre ID direkt referenzieren (ID = "Kapital")
C# Script
• Verbindung zum Script über OnClick Attribut
• Input Daten werden direkt aus Web Control gelesen
• Output wird an ein Label Control übergeben
<form> Tag hat kein Methoden oder Action Attribut
Kein extra Code für Postback
![Page 14: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/14.jpg)
14
ASP.NET Anwendungen
Eine Anwendung besteht aus• ASP.NET Pages
• .aspx Files mit WebForms
• .cs, .vb, … Files mit Code
• Komponenten (Assemblies)
• Konfigurationsdateien
• web.config
• global.asax
Sämtliche Elemente einer Anwendung müssen sich in einem Verzeichnis befinden
![Page 15: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/15.jpg)
15
am1.aspx
web.config
C:\Inetpub\wwwroot
global.asax web.config
rc2.aspxrc1.aspx
\MyApp1 \MyApp2
assembly1.dll assembly2.dll
\bin
Aufbau einer Anwendung
![Page 16: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/16.jpg)
16
Konfiguration
App Settings• Datei web.config im root-Verzeichnis
• globale Standardeinstellungen, die für alle ASP.NET Anwendungen gelten, befinden sich in folgender Datei• \Windows\Microsoft.NET\Framework\<version>\
config\machine.config
App Events• Datei global.asax im root-Verzeichnis
![Page 17: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/17.jpg)
17
Events
Events strukturieren Programmablauf
• Vereinfacht die Organisation des Codes
• Vermeidet Spagetticode
Code kann auf Page Events reagieren
• Page_Load
• Page_Unload
Code kann auf Control Events reagieren
• Button1_Click
• Textbox1_Changed
![Page 18: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/18.jpg)
18
Event Modell Client feuert Event – Server verarbeitet Event
Verbindung zwischen Event und Handler durch "On" vor Eventnamen und Verwendung als Attribut
ServerWeb Client
Parse MessageEvent
Event Handler
EventMessage
Antwort
Aufruf Event Handler
// ListBox ruft bei jeder Änderung SelectedIndexChanged auf<asp:ListBox ID="MyListBox" RunAt="server" OnSelectedIndexChanged="OnNewSelection" />
// ListBox ruft bei jeder Änderung SelectedIndexChanged auf<asp:ListBox ID="MyListBox" RunAt="server" OnSelectedIndexChanged="OnNewSelection" />
![Page 19: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/19.jpg)
19
Lebenszyklus einer Seite
Page_LoadPage_Load
Page_UnloadPage_Unload
Textbox1_ChangedTextbox1_Changed
Button1_ClickButton1_Click
Control EventsControl Events
1. Change Events1. Change Events
2. Action Events2. Action Events
![Page 20: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/20.jpg)
20
Page_Load Event
<script language="C#" runat="Server"> void Page_Load (Object sender, EventArgs e) { // ISPostBack ist ein Property der Page Klasse if (IsPostBack == false) // Hier wird z.B. eine Datenbank abgefragt, // mit dessen Werten einige Controls der Seite // initialisiert werden. }</script>
<script language="C#" runat="Server"> void Page_Load (Object sender, EventArgs e) { // ISPostBack ist ein Property der Page Klasse if (IsPostBack == false) // Hier wird z.B. eine Datenbank abgefragt, // mit dessen Werten einige Controls der Seite // initialisiert werden. }</script>
Wird bei jeder neuen Instanz der Seite ausgelöst• Alle Input Werte sind bereits vorhanden
• Noch keine Ausgabe an den Client erfolgt
![Page 21: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/21.jpg)
21
Code innerhalb der <script> Tags wird in .cs Datei ausgelaget• .aspx File enthält keinen Code
Page Direktive verbindet .aspx und .cs Datei
Diese Technik nennt man Code-behind
Code und Daten trennenCode-behind
<%@ Page Inherits="SeiteBerechnen" Src="HCalc2.cs" %><%@ Page Inherits="SeiteBerechnen" Src="HCalc2.cs" %>
![Page 22: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/22.jpg)
22
Code-behindBeispiel 5: ASP.NET Darleh.rechner 2
![Page 23: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/23.jpg)
23
Server Controls
ASP.NET enthält 45 Server Controls
• diese sind nach logischen Kriterien gruppiert
HTML Controls
• Controls / Properties entsprechen 1:1 HTML Elementen
Web Controls
• Grundlegende Controls
• List Controls
• Rich Controls
• Validation Controls
![Page 24: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/24.jpg)
24
HTML Controls abgeleitet von System.Web.UI.HtmlControls
Unterschied zu normalen HTML Tags
HTML Controls• <a>, <img>, <form>
• <table>, <tr>, <td>, <th>
• <select>, <textarea>, < input type=button>,
• <input type=text>, <input type=file>,
• <input type=check>, <input type=button>,
• <input type=radio>, <input type=hidden>
<input type="text"> // normales HTML input Feld
<input type="text" runat="server" /> // HTML Control
<input type="text"> // normales HTML input Feld
<input type="text" runat="server" /> // HTML Control
![Page 25: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/25.jpg)
25
Web Controls Abstrakte Controls
• Kein 1:1 Mapping zu HTML Server Controls
abgeleitet von System.Web.UI.WebControls
umfangreiche Funktionalität• z.B. Calendar Control
Automatische Anpassung an den Browser• z.B. enthält das RequiredFieldValidator Control
Client-seitiges Scripting, wenn der Browser das unterstützt
einheitliches Objektmodell
eventgesteuertes Programmiermodell
![Page 26: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/26.jpg)
26
Rich ControlsBeispiel 6: Kalender Demo
![Page 27: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/27.jpg)
27
Validation ControlsBeispiel 7: ASP.NET Darleh.rechner 3
![Page 28: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/28.jpg)
28
Custom Controls
Selbstentwickelte, compilerte Web Controls
1. Mit Internet Service Manager ein Virtuelles Verzeichnis \Inetpub\wwwroot\<appname> erstellen
2. Code übersetzen
• csc.exe /target:library MyClass.cs
3. Filecopy in das bin-Verzeichnis der Anwendung
• copy MyClass.dll \Inetpub\wwwroot\<appname>\bin
4. .aspx File anlegen und Control benutzen
![Page 29: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/29.jpg)
29
Custom ControlsBeispiel 8: Hello World
![Page 30: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/30.jpg)
30
User Controls
Mit User Controls können Teile einer WebForm zu einem eigenständigen Control zusammengefasst werden
Dadurch können wiederverwendbare UI Komponenten erstellt werden
User Controls verhalten sich wie Objekte• Properties, Felder, Events, Methoden
Dateiendung ist .ascx
![Page 31: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/31.jpg)
31
User ControlsBeispiel 9: Login
![Page 32: 1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller](https://reader035.vdokument.com/reader035/viewer/2022062622/55204d7149795902118c3afe/html5/thumbnails/32.jpg)
32
Fragen?
Uff...