ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich...

48
ASP.NET Überblick und technischer Einstieg

Transcript of ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich...

Page 1: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

ASP.NETÜberblick und technischer Einstieg

Page 2: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

2

Was ist neu?

Code wird jetzt grundsätzlich kompiliert!

VB-Script ist (endlich) abgeschafft!

Die Metabase ist abgeschafft!

WebForms

WebServices

Statemanagement

Servererweiterungen ohne ISAPI

...

Page 3: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

3

System.Web

Caching

Configuration

Services UI

SessionState

HtmlControls

WebControls

Description

Discovery

Security

Protocols

ASP.NET Klassen

Page 4: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

4

Das ASP-Prinzip

ASP-Datei

ASP.DLLinterpretieren

HTML

Server

Browser

Page 5: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

5

Das ASP.NET-Prinzip

ASPX-Datei

XSPISAPI.DLL.NET Klasse erstellen

gen<xx>.vb

gen<xx>.DLL

kompilieren

HTML

Controls rendern

Server

CommonLanguageRuntime

Browser

Page 6: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

6

IIS

WebForms

WebServices

Common Language Runtime

ASP.NET in der Übersicht

app.aspx

<HTML><script>…</script>…</HTML>

app.asmx

class X {

[WebMethod]

public int

method1()

{ … }

}

HTTP

SOAP

Page 7: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

7

WebServices

Einfaches ProgrammiermodellErstellen Sie eine ASMX-Datei, die eine Klasse mit den Methoden enthält, die Sie zur Verfügung stellen möchten

Das Hinzufügen des Attributs WebMethod zu einer Public-Methode macht sie automatisch zu einem WebService

ASP.NET macht den “Rest”• Erzeugen der Service-Beschreibung als

WSDL-Datei (WebService Description Language)• Compile on demand

Page 8: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

8

WebServices

Page 9: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

9

WebForms

Keine Scriptsprachen mehr!Verwenden „echter“ Sprachen: VB.NET, C#, ...

Seite wird beim ersten Aufruf komplett auf dem Server kompiliert

Server sendet dann die kompilierte Seite als HTML an den Browser

Seiten können serverseitige UI-Controls verwendenDiese Controls werden WebControls genannt

Page 10: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

10

WebControls

Erkennbar am Zusatz runat="server"

Erzeugen serverseitig HTML 3.2-konformen Output

Zugriff auf Control-Eigenschaften anstelle eines x-fachen "Request.<Controlname>"

Konsistenter Code: z.B.:• <asp:TextBox runat="server">• <asp:TextBox TextBoxMode="Password">• <asp:TextBox Rows="5">

Einheitliches Objektmodell

Eventgesteuertes ProgrammiermodellVB for the Web

Page 11: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

11

WebControls

WebControls merken sich Ihren Zustand (Viewstate)nach einem POST stehen die eingegebenen Werte automatisch wieder in den Controls

realisiert über ein verstecktes Feld im HTML-Code, den der Server generiert

Controls können zusammengesetzt werden

Einfaches Beispiel2 Textfelder für die Eingabe von Vor- und Nachname einer Person

Page 12: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

12

WebControls

Page 13: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

13

Das DataGrid Control

Funktioniert wie das DataGrid Control in VBbindet Daten aus einer Datenquelle an das Control

serverseitig wird auf der Basis der Daten eine HTML-Tabelle erstellt und an den Browser geschickt

Aussehen der HTML-Tabelle kann über Templates angepasst werden

Page 14: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

14

DataGrid Control

Page 15: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

15

HTML und Code trennen

Code übersetzen csc.exe /target:library MyClass.cs

vbc.exe /target:library MyClass.vb

ASPX-Datei um folgende Zeile ergänzen

Diese Technik nennt man CodeBehind!

<%@Page Inherits="MyClass" Src="MyClass.cs"%><%@Page Inherits="MyClass" Src="MyClass.cs"%>

Page 16: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

16

CodeBehind

Page 17: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

17

ASP.NET Anwendungen

Eine Anwendung besteht ausASP.NET Pages

• WebForms• WebServices

Komponenten (assemblies)

Konfigurationsdateien• config.web• global.asax

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

Page 18: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

18

am1.aspx

config.web

C:\inetpub\applications

global.asax config.web

rc2.aspxrc1.aspx

\MyApp1 \MyApp2

assembly1.dll assembly2.dll

\bin

Aufbau einer Anwendung

Page 19: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

19

ASP und ASP.NET

Beide Anwendungsarten können parallel betrieben werden

Die Anwendungsmigration erfordert ÄnderungenScripte müssen innerhalb des Blocks <script runat=server> … </script> deklariert werden

Syntaktische Änderungen in VB.NET gegenüber VB-Script

Page 20: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

20

ASP und ASP.NET

Von VB-Script nach VB.NETParameter sind standardmäßig als ByVal deklariert

Die Schlüsselwörter SET und LET sind nicht mehr vorhanden

Es gibt keine Default-Eigenschaften mehr• RS("Name").Value anstelle von RS("Name")

Page 21: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

21

Installation

ASP.NET Anwendungen sind grundsätzlich voneinander isoliert

Verschiedene Anwendungen können parallel mit verschiedenen Versionen einer Komponente arbeiten

Installation einer ASP.NET Anwendung durch Erstellen eines Verzeichnisses mit anschließendem Filecopy

Keine Registryänderungen (REGSVR32)

Keine Änderungen in der IIS-Metabase

Kein Neustart des Webservers

UninstallVerzeichnis löschen

Page 22: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

22

Komponente installieren

Code übersetzen csc.exe /target:library MyClass.cs

vbc.exe /target:library MyClass.vb

Filecopy in das bin-Verzeichnis der Anwendungcopy MyClass.dll \wwwroot\<appname>\bin\

Klasse anlegen und benutzen

Page 23: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

23

Komponente entfernen

Entfernen der Komponente aus dem bin-Verzeichnis der Anwendung

del MyClass.dll

Page 24: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

24

Komponente aktualisieren

Filecopy der Komponente in dasbin-Verzeichnis der Anwendung

Aufrufen dieser Komponente innerhalb einer ASP.NET Anwendung

Ändern Sie den Sourcecode und erstellen Sie eine neue Version der Komponente

Führen Sie erneut ein Filecopy der Komponente in das bin-Verzeichnis der Anwendung aus

Page 25: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

25

Komponenten

Page 26: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

26

Konfiguration

Konfigurationsdaten werden in XML-Dateien abgelegt“human-readable and human-writable”

Keine speziellen APIs mehr (IIS-Metabase)

Einfaches Handling für Entwickler und Administratoren

Datei CONFIG.WEB

Page 27: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

27

Konfiguration

App SettingsDatei CONFIG.WEB im root-Verzeichnis

global gültige Standardeinstellungen sind in folgender Datei zu finden

• <windir>\Microsoft.NET\Framework\<version>\config.web

App EventsDatei GLOBAL.ASAX im root-Verzeichnis

Page 28: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

28

App Settings

CONFIG.WEB im root-Verzeichnis erstellen

Zugriff auf diese Daten mit folgendem CodeDim Config as HashTable

Config = Context.GetConfig("appsettings")

Dim MyDsn = Config("dsn")

<configuration> <configuration>

<appsettings><appsettings>

<add key="dsn" <add key="dsn" value="localhost;uid=sa;pwd=;Database=foo"/>value="localhost;uid=sa;pwd=;Database=foo"/>

</appsettings></appsettings>

</configuration></configuration>

Page 29: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

29

App Events

Bei einer unbehandelten Exception wird das Event Application_Error gefeuert

Zugriff auf Request-Objekt vorhanden

Zugriff auf Exception-Objekt vorhanden

Mögliche VorgehensweiseEintrag in Eventlog erstellen

Einsatz der Framework-Klassen für den Zugriff auf das Eventlog

Page 30: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

30

Settings und Events

Page 31: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

31

Page Tracing

Folgende Direktive am Seitenanfang einfügen<%@ Page Trace="True" %>

Trace-Aufrufe an den gewünschten Stellen hinzufügenTrace.Write("MyApp", "Button Clicked")

Trace.Warn("MyApp", "Value: " + value)

Seite mit dem Browser aufrufen

Page 32: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

32

App Tracing

CONFIG.WEB im root-Verzeichnis erstellen

Zugriff auf die Aufzeichnungen per URL (à spezieller HTTP-Handler)

http://localhost/approot/Trace.axd

<configuration> <configuration>

<trace enabled="true" <trace enabled="true" requestlimit="10"/>requestlimit="10"/>

</configuration></configuration>

Page 33: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

33

Tracing

Page 34: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

34

Debugging

CONFIG.WEB im root-Verzeichnis erstellen

Debugger einbinden (-> “attachen”)

Breakpoints setzen

Seite bzw. Service im Browser aufrufen

<configuration> <configuration>

<compilation debugmode="true"/><compilation debugmode="true"/>

</configuration></configuration>

Page 35: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

35

Debugging

Page 36: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

36

Statemanagement

Cookieless sessionSession ID wird in die URL eingebaut

Cookie auf der Clientseite nicht mehr notwendig

passiert automatisch, Code ist nicht erforderlich

Bei statischen und dynamisch generierten Seiten

External Session State Statusinformationen werden extern gespeichert

Crash-Resistent, überlebt Neustarts

Page 37: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

37

Cookieless Sessions

Für Session IDs werden keine Cookies mehr benötigtMitführen der Session ID in URL

Codeänderungen sind nicht erforderlich

Page 38: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

38

Cookieless Sessions

CONFIG.WEB im root-Verzeichnis erstellen

Folgende Zeilen hinzufügen:

<configuration> <configuration>

<sessionstate cookieless="true"/><sessionstate cookieless="true"/>

</configuration></configuration>

Page 39: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

39

Cookieless Sessions

Page 40: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

40

External Session State

ASP State Service auf dem Rechner startennet start aspstate

CONFIG.WEB im root-Verzeichnis der Anwendung erstellen und diesen Rechner referenzieren

<configuration> <configuration>

<sessionstate inproc="false" <sessionstate inproc="false" server="localhost" />server="localhost" />

</configuration></configuration>

Page 41: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

41

External Session State

Page 42: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

42

ASP.NET Architektur

Unmanaged Code

Managed Code

...HTTP Handler

HTTP Module

HTTP Module

HTTP Runtime

Host (IIS, Internet Explorer)

HTTP Request

Page 43: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

43

HTTP Handler

Funktionalität von ASP.NET an spezielle Anforderungen anpassen

möglich über das "Einklinken" in den Request-Mechanismus

Vergleichbar mit ISAPI-Extensions

einfach zu implemetieren

Diesen Code nennt man HTTP Handler

Beispiel für einen HTTP HandlerTransformieren von Dokumenten per XSL

Page 44: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

44

HTTP Handler

Handler-Komponente erstellen

Komponente in das bin-Verzeichnis der Anwendung kopieren

Den HTTP-Handler der Anwendung per CONFIG.WEB bekannt machen

<configuration> <configuration>

<httphandlers><httphandlers>

<add verb="*" path="*.bar" <add verb="*" path="*.bar" type="class,assembly"/>type="class,assembly"/>

</httphandlers></httphandlers>

</configuration></configuration>

Page 45: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

45

HTTP Handler

Page 46: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

46

Fragen?

Page 47: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

47

Mehr Informationen

MSDN onlinewww.microsoft.com/germany/msdn

www.microsoft.com/net

ASP.NET QuickstartSamples, Samples, Samples, ...

ASP.NET Siteswww.aspng.com

www.asp101.com

www.IBuySpy.com

Artikel im VBA-Magazin 1/2001

Page 48: ASP.NET Überblick und technischer Einstieg. 2 Was ist neu? Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase.

48

Glossar

API – Application Programming Interface: Definierte Programmierschnittstelle für den Zugriff auf SystemfunktionenIIS – Internet Information Server: Der Webserver von MicrosoftISAPI- Internet Server API: Mit dieser Schnittstelle können Erweiterungen für den IIS entwickelt werden. Solche Erweiterungen können nur mit C++ programmiert werden.Cookie: Kennung, die auf der Festplatte eines Benutzers abgelegt wird. Mit dieser Kennung kann eine Webseite herausfinden, ob dieser Benutzer die Seite zuvor schon besucht hat. Die Kennung wird auch Session ID genanntXML - eXtensible Markup Language: Textbasiertes, allgemeines Datenformat, das Grundregeln für den Aufbau eigener Datenformate definiert.XSL - XML Stylesheet Language: XML-basierte Sprache, mit der Transformationen von XML-Daten definiert werden können.CLR – Common Language Runtime: gemeinsame Laufzeitumgebung für alle .NET Anwendungen. MSIL – Microsoft Intermediate LanguageManaged Code: In der .NET Plattform wird kein nativer Code mehr erzeugt. Stattdessen generieren Compiler unter .NET eine Zwischensprache (MSIL), die dann unter Aufsicht der CLR bei Bedarf in nativen Code übersetzt und ausgeführt wird. Deshalb wird der von den Compilern erzeugte Code auch Managed Code genannt.