ASP.NET Web Forms
Download
Report
Transcript ASP.NET Web Forms
Softwareentwicklung mit .NET
Teil 3
ASP.NET
Web Forms
Dr. Ralph Zeller
1
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
Präsentation
Web Form
Middle Tier
Datenbank
Internet
Web Service
2
Alles begann mit HTML
Beispiel 1: HTML Web Form
3
HTML Know how
Online:
• http://www.selfhtml.org/
Buch:
• Elizabeth Castro
Englisch: Peachpit Press, 2000
Deutsch: Markt und Technik, 2001
4
Alt: Active Server Pages
Was sind ASP?
•
•
Server Side Scripting
Datei enthält HTML und Script Code
<%@ 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>
•
•
Ausführung durch HTTP Aufruf
Script Code wird am Server interpretiert
5
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)
6
Formulare in ASP
Beispiel 2: ASP Darlehensrechner
7
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
8
Formulare in ASP
Beispiel 3: ASP Darlehensrechner v2
9
Neu: ASP.NET
Pattform für Web Applikationen
Neues Ausführungsmodell
Web Client
IIS
ASP.NET
Applikationen
.NET
Framework
Betriebssystem
10
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
11
WebControls
Beispiel 4: ASP.NET Darlehensrechner
12
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
13
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
14
Aufbau einer Anwendung
C:\Inetpub\wwwroot
\MyApp2
\MyApp1
rc1.aspx
rc2.aspx
web.config
\bin
am1.aspx
global.asax
assembly1.dll
web.config
assembly2.dll
15
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
16
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
17
Event Modell
Client feuert Event – Server verarbeitet Event
Web Client
Event
Message
Server
Parse Message
Event
Aufruf Event
Handler
Event Handler
Antwort
Verbindung zwischen Event und Handler durch "On"
vor Eventnamen und Verwendung als Attribut
// ListBox ruft bei jeder Änderung SelectedIndexChanged auf
<asp:ListBox ID="MyListBox" RunAt="server"
OnSelectedIndexChanged="OnNewSelection" />
18
Lebenszyklus einer Seite
Control Events
Page_Load
1. Change Events
Textbox1_Changed
2. Action Events
Button1_Click
Page_Unload
19
Page_Load Event
Wird bei jeder neuen Instanz der Seite
ausgelöst
•
•
Alle Input Werte sind bereits vorhanden
Noch keine Ausgabe an den Client erfolgt
<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>
20
Code und Daten trennen
Code-behind
Code innerhalb der <script> Tags wird in .cs
Datei ausgelaget
•
.aspx File enthält keinen Code
Page Direktive verbindet .aspx und .cs Datei
<%@ Page Inherits="SeiteBerechnen" Src="HCalc2.cs" %>
Diese Technik nennt man Code-behind
21
Code-behind
Beispiel 5: ASP.NET Darleh.rechner 2
22
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
23
HTML Controls
abgeleitet von System.Web.UI.HtmlControls
Unterschied zu normalen HTML Tags
<input type="text">
// normales HTML input Feld
<input type="text" runat="server" /> // HTML Control
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>
24
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
25
Rich Controls
Beispiel 6: Kalender Demo
26
Validation Controls
Beispiel 7: ASP.NET Darleh.rechner 3
27
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
28
Custom Controls
Beispiel 8: Hello World
29
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
30
User Controls
Beispiel 9: Login
31
Fragen?
Uff...
32