1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller.

Post on 05-Apr-2015

107 views 4 download

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...