1 softwareentwicklung mit.net teil 3 asp.net web forms dr. ralph zeller
Post on 05-Apr-2015
108 Views
Preview:
TRANSCRIPT
1
Softwareentwicklung mit .NETTeil 3
ASP.NETWeb Forms
Dr. Ralph Zeller
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
3
Alles begann mit HTMLBeispiel 1: HTML Web Form
4
HTML Know how
Englisch: Peachpit Press, 2000 Deutsch: Markt und Technik, 2001
Online:
• http://www.selfhtml.org/
Buch:
• Elizabeth Castro
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>
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)
7
Formulare in ASPBeispiel 2: ASP Darlehensrechner
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
9
Formulare in ASPBeispiel 3: ASP Darlehensrechner v2
10
Neu: ASP.NET
Pattform für Web Applikationen
Neues Ausführungsmodell
Web Client
Betriebssystem
ASP.NETApplikationen
IIS
.NETFramework
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
12
WebControlsBeispiel 4: ASP.NET Darlehensrechner
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
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
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
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
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
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" />
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
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
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" %>
22
Code-behindBeispiel 5: ASP.NET Darleh.rechner 2
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
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
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
26
Rich ControlsBeispiel 6: Kalender Demo
27
Validation ControlsBeispiel 7: ASP.NET Darleh.rechner 3
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
29
Custom ControlsBeispiel 8: Hello World
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
31
User ControlsBeispiel 9: Login
32
Fragen?
Uff...
top related