1 / 48

ASP.NET Überblick und technischer Einstieg

ASP.NET Überblick und technischer Einstieg. Was ist neu?. Code wird jetzt grundsätzlich kompiliert! VB-Script ist (endlich) abgeschafft! Die Metabase ist abgeschafft! WebForms WebServices Statemanagement Servererweiterungen ohne ISAPI. ASP.NET Klassen. System.Web. Services. UI.

naiara
Télécharger la présentation

ASP.NET Überblick und technischer Einstieg

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ASP.NETÜberblick und technischer Einstieg

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

  3. ASP.NET Klassen System.Web Services UI Description HtmlControls Discovery WebControls Protocols Caching Security Configuration SessionState

  4. Das ASP-Prinzip ASP-Datei ASP.DLL Server interpretieren Browser HTML

  5. Das ASP.NET-Prinzip ASPX-Datei Server XSPISAPI.DLL .NET Klasse erstellen gen<xx>.vb kompilieren Common Language Runtime gen<xx>.DLL Controls rendern Browser HTML

  6. <HTML> <script> … </script> … </HTML> IIS WebForms HTTP app.aspx class X { [WebMethod] public int method1() { … } } WebServices SOAP Common Language Runtime app.asmx ASP.NET in der Übersicht

  7. WebServices • Einfaches Programmiermodell • Erstellen 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 alsWSDL-Datei (WebService Description Language) • Compile on demand

  8. WebServices

  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 verwenden • Diese Controls werden WebControls genannt

  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 Programmiermodell • VB for the Web

  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 Beispiel • 2 Textfelder für die Eingabe von Vor- und Nachname einer Person

  12. WebControls

  13. Das DataGrid Control • Funktioniert wie das DataGrid Control in VB • bindet 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

  14. DataGrid Control

  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"%>

  16. CodeBehind

  17. ASP.NET Anwendungen • Eine Anwendung besteht aus • ASP.NET Pages • WebForms • WebServices • Komponenten (assemblies) • Konfigurationsdateien • config.web • global.asax • Sämtliche Elemente einer Anwendung müssen sich in einem Verzeichnis befinden

  18. Aufbau einer Anwendung C:\inetpub\applications \MyApp2 \MyApp1 rc1.aspx rc2.aspx \bin am1.aspx config.web global.asax config.web assembly1.dll assembly2.dll

  19. ASP und ASP.NET • Beide Anwendungsarten können parallel betrieben werden • Die Anwendungsmigration erfordert Änderungen • Scripte müssen innerhalb des Blocks <script runat=server> … </script> deklariert werden • Syntaktische Änderungen in VB.NET gegenüber VB-Script

  20. ASP und ASP.NET • Von VB-Script nach VB.NET • Parameter 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")

  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 • Uninstall • Verzeichnis löschen

  22. Komponente installieren • Code übersetzen • csc.exe /target:library MyClass.cs • vbc.exe /target:library MyClass.vb • Filecopy in das bin-Verzeichnis der Anwendung • copy MyClass.dll \wwwroot\<appname>\bin\ • Klasse anlegen und benutzen

  23. Komponente entfernen • Entfernen der Komponente aus dem bin-Verzeichnis der Anwendung • del MyClass.dll

  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

  25. Komponenten

  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

  27. Konfiguration • App Settings • Datei CONFIG.WEB im root-Verzeichnis • global gültige Standardeinstellungen sind in folgender Datei zu finden • <windir>\Microsoft.NET\Framework\<version>\config.web • App Events • Datei GLOBAL.ASAX im root-Verzeichnis

  28. App Settings • CONFIG.WEB im root-Verzeichnis erstellen • Zugriff auf diese Daten mit folgendem Code • Dim Config as HashTable • Config = Context.GetConfig("appsettings") • Dim MyDsn = Config("dsn") <configuration> <appsettings> <add key="dsn" value="localhost;uid=sa;pwd=;Database=foo"/> </appsettings> </configuration>

  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 Vorgehensweise • Eintrag in Eventlog erstellen • Einsatz der Framework-Klassen für den Zugriff auf das Eventlog

  30. Settings und Events

  31. Page Tracing • Folgende Direktive am Seitenanfang einfügen • <%@ Page Trace="True" %> • Trace-Aufrufe an den gewünschten Stellen hinzufügen • Trace.Write("MyApp", "Button Clicked") • Trace.Warn("MyApp", "Value: " + value) • Seite mit dem Browser aufrufen

  32. App Tracing • CONFIG.WEB im root-Verzeichnis erstellen • Zugriff auf die Aufzeichnungen per URL (à spezieller HTTP-Handler) • http://localhost/approot/Trace.axd <configuration> <trace enabled="true" requestlimit="10"/> </configuration>

  33. Tracing

  34. Debugging • CONFIG.WEB im root-Verzeichnis erstellen • Debugger einbinden (-> “attachen”) • Breakpoints setzen • Seite bzw. Service im Browser aufrufen <configuration> <compilation debugmode="true"/> </configuration>

  35. Debugging

  36. Statemanagement • Cookieless session • Session 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

  37. Cookieless Sessions • Für Session IDs werden keine Cookies mehr benötigt • Mitführen der Session ID in URL • Codeänderungen sind nicht erforderlich

  38. Cookieless Sessions • CONFIG.WEB im root-Verzeichnis erstellen • Folgende Zeilen hinzufügen: <configuration> <sessionstate cookieless="true"/> </configuration>

  39. Cookieless Sessions

  40. External Session State • ASP State Service auf dem Rechner starten • net start aspstate • CONFIG.WEB im root-Verzeichnis der Anwendung erstellen und diesen Rechner referenzieren <configuration> <sessionstate inproc="false" server="localhost" /> </configuration>

  41. External Session State

  42. ASP.NET Architektur Unmanaged Code HTTP Request Host (IIS, Internet Explorer) HTTP Runtime Managed Code HTTP Module HTTP Module HTTP Handler ...

  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 Handler • Transformieren von Dokumenten per XSL

  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> <httphandlers> <add verb="*" path="*.bar" type="class,assembly"/> </httphandlers> </configuration>

  45. HTTP Handler

  46. Fragen?

  47. Mehr Informationen • MSDN online • www.microsoft.com/germany/msdn • www.microsoft.com/net • ASP.NET Quickstart • Samples, Samples, Samples, ... • ASP.NET Sites • www.aspng.com • www.asp101.com • www.IBuySpy.com • Artikel im VBA-Magazin 1/2001

  48. Glossar • API – Application Programming Interface: Definierte Programmierschnittstelle für den Zugriff auf Systemfunktionen • IIS – Internet Information Server: Der Webserver von Microsoft • ISAPI- 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 genannt • XML - 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 Language • Managed 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.

More Related