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