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

32
1 oftwareentwicklung mit .NE eil 3 SP.NET eb Forms r. Ralph Zeller

description

Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller. Internet. Web Form. Web Applikationen. - PowerPoint PPT Presentation

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

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

1

Softwareentwicklung mit .NETTeil 3

ASP.NETWeb Forms

Dr. Ralph Zeller

Page 2: Softwareentwicklung mit .NET Teil 3 ASP.NET Web 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

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

3

Alles begann mit HTMLBeispiel 1: HTML Web Form

Page 4: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

4

HTML Buch

Englisch: Peachpit Press, 2000 Deutsch: Markt und Technik, 2001

Elizabeth Castro

Page 5: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

7

Formulare in ASPBeispiel 2: ASP Hypothekar Rechner

Page 8: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

9

Formulare in ASPBeispiel 3: ASP Hypothekar Rechner 2

Page 10: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

10

Neu: ASP.NET

Pattform für Web Applikationen

Neues Ausführungsmodell

Web Client

Betriebssystem

ASP.NETApplikationen

IIS

.NETFramework

Page 11: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

12

WebControlsBeispiel 4: ASP.NET Hyp. Rechner

Page 13: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

13

ASP.NET Hyp. 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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

14

ASP.NET Anwendungen

Eine Anwendung besteht aus• ASP.NET Pages

• .aspx Files mit WebForms

• .cs, .vb, … Files mit Code

• Komponenten (Assemblies)

• Konfigurationsdateien

• config.web

• global.asax

Sämtliche Elemente einer Anwendung müssen sich in einem Verzeichnis befinden

Page 15: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

15

am1.aspx

config.web

C:\Inetpub\wwwroot

global.asax config.web

rc2.aspxrc1.aspx

\MyApp1 \MyApp2

assembly1.dll assembly2.dll

\bin

Aufbau einer Anwendung

Page 16: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

22

Code-behindBeispiel 5: ASP.NET Hyp. Rechner 2

Page 23: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

26

Rich ControlsBeispiel 6: Kalender Demo

Page 27: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

27

Validation ControlsBeispiel 7: ASP.NET Hyp. Rechner 3

Page 28: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

29

Custom ControlsBeispiel 8: Hello World

Page 30: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

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: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

31

User ControlsBeispiel 8: Login

Page 32: Softwareentwicklung mit .NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller

32

Fragen?

Uff...