asp.net 4 - sisis.rz.htw-berlin.de · asp.net 4.0 konzepte und techniken zur programmierung von...
TRANSCRIPT
-
Matthias FischerJörg Krause
ASP.NET 4.0Konzepte und Techniken zurProgrammierung von Websites
HANSER
-
1 Über dieses Buch 27
2 ASP.NET und das Framework 37
3 Entwicklungswerkzeuge 61
4 Protokolle des Web 89
5 Programmiersprachen des Web 133
6 Konfiguration des Projekts 249
7 Arbeitsweise und Funktion 273
8 Applikationen erstellen 345
9 Programmierung von Seiten 379
10 Steuerelemente und WebParts 413
11 Datenbindung und Validierung 505
12 Navigationsmodelle 555
13 Datenbanken und Datenzugriff 591
14 Globalisierung und Lokalisierung 697
15 Master-Seiten und Themes 727
16 AJAX - Asynchrone Programmierung 747
-
Schnellübersicht
17 Dynamische Daten 783
18 Model View Controller 811
19 Webdienste 855
20 Sicherheit und Benutzer 887
21 Optimierung des Datenverkehrs 959
22 Steuerelemente entwickeln 977
23 Gerätespezifische Anpassung 1023
24 Handler und Module 1043
25 Erweiterungsmodell Provider 1079
26 Ressourcen 1103
27 GDI und Silverlight 1141
6
-
Auf einen Blick 5
Über die Autoren 7
Inhaltsverzeichnis 9
1 Über dieses Buch 27
1.1 Intention 27
1.2 Das Konzept hinter diesem Buch 281.2.1 Übersicht über die Teile 28
1.2.2 Was dieses Buch nicht leistet 28
1.3 Die Zielgruppe für dieses Buch 29
1.4 Wie dieses Buch zu lesen ist 30
1.4.1 Verwendete Programmiersprache 30
1.4.2 Hinweiselemente und Formatierungen 30
1.4.3 Augmentierung mit der TexxToor-Technologie 31
1.5 Anmerkungen der Autoren 32
2 ASP.NET und das Framework 37
2.1 Was verbirgt sich hinter dem Begriff .NET? 372.1.1 Das .NET-Framework 4.0 38
2.1.2 Compiler und Interpreter 39
2.1.3 Sprachunabhängigkeit dank MSIL-Code 40
2.1.4 Common Type System 40
2.2 Überblick über das Framework 41
2.2.1 Die Laufzeitumgebung Common Language Runtime 41
9
-
Inhaltsverzeichnis
2.2.2 Die Foundations 42
2.3 Programmierprinzipien 44
2.3.1 Basiselemente einer Applikation: WebForms 44
2.3.2 Spezielle Verzeichnisse 46
2.3.3 Eingebetteter Code - Code Inline 47
2.3.4 Hinterlegter Code - Code Behind 48
2.4 Hinweise zum Stil - Codekonventionen 55
2.4.1 Schreibweise von Namen im Code 55
2.4.2 Hinweise zur Benennung von Standardtypen 56
2.4.3 Hinweise für Web-Programmierer 58
3 Entwicklungswerkzeuge 61
3.1 Einführung 613.1.1 Ausführungen Visual Studio 2010 62
3.1.2 Installation von Visual Studio 62
3.2 Überblick über Visual Studio 2010 64
3.2.1 Aufbau der IDE 64
3.2.2 Projekte 65
3.2.3 Web Seite 68
3.3 Erste Schritte 69
3.3.1 „Hallo Welt"-Programm 69
3.3.2 Umgang mit Datenbanken in Visual Studio 74
3.4 Fehlersuche und Debugging 75
3.4.1 Arten von Fehlern 75
3.4.2 Werkzeuge 78
3.5 Expression Produkte 83
3.5.1 Expression Studio 83
3.6 Die Kommandozeilenwerkzeuge 85
3.6.1 Die Werkzeuge des Frameworks 85
3.6.2 WerkzeugespeziellfurASP.NET 87
4 Protokolle des W e b 89
4.1 Das Referenzmodell 89
4.2 Die Internet-Protokollfamilie 90
4.2.1 Wichtige Protokolle der Internet Protocol Suite 92
10
-
Inhaltsverzeichnis
4.3 Die Hochsprachenprotokolle 100
4.3.1 File Transfer Protocol (FTP) 100
4.3.2 Network News Transfer Protocol (NNTP) 100
4.3.3 Hypertext Transfer Protocol (HTTP) 100
4.3.4 Wie dynamische Webseiten entstehen 104
4.4 Die Bausteine einer Webseite 106
4.5 XML, XPath und XSLT 109
4.5.1 XML-Grundlagen 109
4.5.2 Die Grammatik eines XML-Dokuments definieren 113
4.5.3 XPath 116
4.5.4 XSLT 122
4.6 Hilfskiassen des .NET-Frameworks 127
4.6.1 Definition Uniform Resource Identifier (URI) 127
4.6.2 URI-Unterstützung im Framework 129
5 Programmiersprachen des Web 133
5.1 Einführung in C# 133
5.1.1 Notation und Verwendung 134
5.1.2 Objektschreibweise 135
5.1.3 Abarbeitung von Code in ASP.NET 135
5.1.4 Umgang mit Compiler-Warnungen 137
5.2 Die Sprache C# 137
5.2.1 Namensräume 137
5.2.2 Variablen und Datentypen 139
5.2.3 Kommentare, Konstanten, Operatoren 146
5.2.4 Anweisungen 151
5.2.5 Schleifenanweisungen 156
5.2.6 Objektorientierte Programmierung 162
5.2.7 Arrays und Kollektionen 196
5.2.8 Fehlerbehandlung, Ausnahmen und Ereignisse 210
5.2.9 Verwaltete Funktionszeiger 217
5.3 Einführung in JavaScript 221
5.3.1 Einführung 222
5.3.2 Notation und Verwendung 222
5.3.3 Kompatibilität 223
11
-
Inhaltsverzeichnis
5.4 Die Sprache JavaScript 224
5.4.1 Imperative Elemente 224
5.4.2 Ausdrücke und Operatoren 226
5.4.3 Anweisungen und Kontrollfluss 228
5.4.4 Fehlerbehandlung 231
5.4.5 Objektorientierung 233
5.4.6 Vererbung 237
5.4.7 Eingebaute Objekte 239
5.4.8 DOM-Manipulation 245
5.4.9 Ereignisse (Events) 248
6 Konfiguration des Projekts 249
6.1 Konfiguration von Applikationen: web.config 249
6.1.1 Die Konfigurationsdatei in ASP.NET 4 250
6.1.2 Struktur der Konfigurationsdatei 251
6.1.3 Prinzipieller Umgang mit Konfigurationsdateien 253
6.2 Konfiguration des Systems: machine.config 253
6.2.1 Optionen des Compilers 253
6.2.2 Den Arbeitsprozess konfigurieren 255
6.2.3 Besondere Aufgaben für den Arbeitsprozess 259
6.3 Zugriff auf die Konfiguration 260
6.3.1 Anwendung der Klasse WebConfigurationManager 261
6.3.2 Schreibender Zugriff auf die Konfiguration 263
6.4 Eigene Konfigurationsabschnitte 265
6.4.1 Aufbau des Konfigurationsabschnitts der web.config 265
6.4.2 Definition eines einfachen Konfigurationsabschnitts 267
7 Arbeitsweise und Funktion 273
7.1 Wie ASP.NET intern funktioniert 274
7.1.1 Die Architektur der Anforderungsverarbeitung 274
7.1.2 Was in ASP.NET wirklich funktioniert 274
7.1.3 Die Lebensdauer einer Anforderung 275
7.1.4 Wie die Anforderung verarbeitet wird 280
7.1.5 Die Laufzeitumgebung 282
7.1.6 HttpContext und HttpApplication 288
7.1.7 Der Weg durch die ASP.NET-Pipeline 292
7.1.8 Module und Handler 293
12
-
Inhaltsverzeichnis
7.2 Die Lebenszyklen 294
7.2.1 Die integrierte Pipeline der IIS7 294
7.2.2 Die Verarbeitungspipeline der Applikation 295
7.2.3 Der Lebenszyklus der Seite 298
7.2.4 Die Ereignisse des Lebenszyklus der Seite 299
7.2.5 Bemerkungen zum Lebenszyklus der Steuerelemente 301
7.3 Der ViewState - Status der Steuerelemente 303
7.3.1 Warum Sie den ViewState verstehen sollten 304
7.3.2 Die wahre Rolle des ViewState 314
7.3.3 Probleme mit dem ViewState 315
7.4 Prozesse und Threads 324
7.4.1 Die Verwaltung des Arbeitsprozesses 324
7.4.2 Informationen über den Arbeitsprozess 327
7.4.3 Informationen über die Applikationsdomäne 330
7.4.4 Threads verstehen und benutzen 333
7.4.5 Die Konfiguration des ThreadPools 334
7.4.6 Optimierung typischer Aufgaben 336
7.4.7 Installation eines Performance Counters 337
7.4.8 Threads und Asynchrone Operationen 340
8 Applikationen erstellen 345
8.1 Die Standardobjekte 3458.1.1 Die Standardobjekte 346
8.2 Daten senden und empfangen 348
8.2.1 Den Datenfluss steuern 348
8.2.2 Die Standardmethoden der Datenübertragung 351
8.2.3 Header erzeugen und analysieren 354
8.2.4 Servervariablen 354
8.2.5 Den Inhaltstyp bestimmen 356
8.3 Sitzungen (Sessions) 358
8.3.1 Grundlagen 358
8.3.2 Ablageart von sitzungsgebundenen Daten 359
8.3.3 Ablageform der sitzungsgebundenen Daten 361
8.3.4 An Sitzungen gebundene Ereignisse 363
8.3.5 Umgang mit Sitzungs-Cookies 363
8.3.6 Konfiguration des Sitzungsmanagements 363
13
-
Inhaltsverzeichnis
8.3.7 Sitzungsvariablen verwenden 365
8.4 Cookies 366
8.4.1 Cookies als Informationsspeicher 366
8.4.2 Cookies praktisch verwenden 369
8.5 Applikationsmanagement 372
8.5.1 Einführung in das Applikationsereignismodell 372
8.5.2 Die Datenspeicherung: Applikationsvariablen 374
8.5.3 Die Datei global.asax 377
9 Programmierung von Seiten 379
9.1 Die Direktiven der Seiten 3799.1.1 Die Direktiven 380
9.1.2 Die Direktive @Page 381
9.1.3 Die Direktive ©Import 384
9.1.4 Die Direktive ©Register 384
9.1.5 Die Direktive @lmplements 385
9.1.6 Die Direktive ©MasterType 385
9.1.7 Die Direktive ©PreviousPageType 386
9.1.8 Die Direktive ©OutputCache 386
9.2 Aufbau einer Seite und die Klasse Page 387
9.2.1 Aufbau der Seite 387
9.2.2 Code-Blöcke 388
9.2.3 Code-Render-Blöcke 388
9.2.4 Kommentare 389
9.2.5 Ausgabeausdrücke 389
9.2.6 Ausdrücke 390
9.2.7 Einbindung externer Objekte 391
9.3 Das Zurücksenden der Seite - Der PostBack 392
9.3.1 Die Natur der Webformulare 392
9.4 Seitenübergang 396
9.4.1 Übergabe der Programmsteuerung 397
9.4.2 Kontext-Handler und Seitenreferenzierung 400
9.5 Asynchrone Seiten 403
9.5.1 Den richtigen Handler für die Seite wählen 403
9.5.2 Asynchrone Aufgaben 409
-
Inhaltsverzeichnis
10 Steuerelemente und WebParts 413
10.1 Das Entwurfszeitverhalten 41410.1.1 IntelliSense 415
10.1.2 PropertyGrid 415
10.1.3 Smart Tags 415
10.2 HTML-Steuerelemente 416
10.2.1 Einführung in die Steuerelemente-Welt 416
10.2.2 Prinzipieller Umgang mit HTML-Steuerelementen 418
10.2.3 Gemeinsame Eigenschaften und Methoden 425
10.2.4 Basisoperationen mit Steuerelementen 426
10.2.5 Ereignisse der Steuerelemente verarbeiten 428
10.2.6 Gestalterische Elemente 432
10.2.7 Dateien per HTTP hochladen (Upload) 434
10.3 Webserver-Steuerelemente 437
10.3.1 Übersicht über die Webserver-Steuerelemente 438
10.3.2 Einsatzprinzipien und Basiseigenschaften 441
10.3.3 Text auf der Seite steuern 444
10.3.4 Texteingabefelder erzeugen und auswerten 447
10.3.5 Schaltflächen erzeugen und verwenden 449
10.3.6 Listen-Steuerelemente 452
10.4 Komplexe Steuerelemente 459
10.4.1 Kalender anzeigen 459
10.4.2 AdRotator 466
10.4.3 XML anzeigen 466
10.4.4 TreeView 466
10.5 Das neue Steuerelementverhalten in ASP.NET 4 468
10.5.1 Kompatibilität mit bisherigen Versionen sicherstellen 468
10.5.2 Client-IDs 469
10.6 WebParts 471
10.6.1 Die Natur des WebParts 472
10.6.2 Funktionsweise 472
10.6.3 Erstellen von WebParts 476
10.6.4 Personalisieren von WebParts 478
10.6.5 Erweiterung des WebPart-Personalisierungsproviders 479
10.7 Benutzersteuerelemente 489
10.7.1 Grundlagen der Benutzersteuerelemente 490
15
-
Inhaltsverzeichnis
10.7.2 Wie Benutzersteuerelemente entstehen 490
10.7.3 Programmierung von Benutzersteuerelementen 493
10.7.4 Techniken der Benutzersteuerelemente 496
11 Datenbindung und Validierung 505
11.1 Grundlagen der Datenbindung 50511.1.1 Die Syntax der Datenbindung 506
11.1.2 Datenbindung in beide Richtungen 507
11.1.3 Datenbindung von XML-Datenquellen 508
11.2 Datengebundene Steuerelemente 508
11.2.1 Das Steuerelement Repeater 509
11.2.2 Das Steuerelement DataList 510
11.2.3 Das Steuerelement GridView 511
11.2.4 Das Steuerelement FormView 518
11.2.5 Das Steuerelement DetailsView 518
11.2.6 Das Steuerelement DataPager 518
11.2.7 Das Steuerelement ListView 518
11.3 Datenbindung in Vorlagen 519
11.3.1 Schreibweise der Vorlagen 519
11.3.2 Die Datenbindung im Code 520
11.3.3 Die Bindung komplexer Objekte 521
11.3.4 Vorbereiten einer individuellen Datenquelle 522
11.3.5 Automatische Listen mit DataList 524
11.3.6 Umgang mit dem Anzeigestatus und zwei Alternativen dazu 531
11.4 Asynchrone Datenbindung 535
11.5 Einführung in die Validierung 536
11.5.1 Die Validierung im Detail 537
11.5.2 Validierung und HTML 537
11.5.3 Validierung auf der Serverseite 537
11.5.4 Die API der Seitenvalidierung 538
11.6 Wichtige Kontroll-Steuerelemente 540
11.6.1 Das Vergleichs-Steuerelement 540
11.6.2 Das Bereichskontroll-Steuerelement 542
11.6.3 Das Regulärer Ausdruck-Steuerelement 542
11.6.4 Selbstdefinierte Kontrollsteuerelemente 549
16
-
Inhaltsverzeichnis
12 Navigat ionsmodelle 555
12.1 Konzepte für die Navigation 555
12.1.1 Die Steuerdatei web.sitemap 555
12.2 Steuerelemente für die Navigation 558
12.2.1 Das Menu-Steuerelement (Menü) 558
12.2.2 Pfade mit SiteMapPath darstellen 561
12.3 Der Sitemap-Provider 562
12.4 Entwicklung eines eigenen Sitemap-Providers 563
12.4.1 Vorbereitende Schritte 563
12.4.2 SQL-basierte Navigation 567
12.5 Steuerung virtueller Pfade 571
12.5.1 Den Virtual Path Provider verwenden 572
12.5.2 Den Virtual Path Provider registrieren 572
12.5.3 Voraussetzungen für den Virtual Path Provider 573
12.5.4 Hilfreiche Klassen für Pfad-und Dateioperationen 574
12.5.5 Einen VirtualPathProvider selbst entwickeln 576
12.5.6 Probleme und Grenzen des VirtualPathProvider 588
13 Datenbanken und Datenzugriff 591
13.1 DatenzugriffmitADO.NET 59113.1.1 PrinzipderArbeitmitADO.NET 591
13.1.2 DieArchitekturvonADO.NET 593
13.1.3 Verbindung zu einer Datenbank aufbauen 596
13.1.4 Verbindungsorientierte Ereignisse 599
13.1.5 Asynchrone Befehlsausführung 601
13.1.6 SQL-Befehle an die Datenbank senden 603
13.1.7 Datensätze lesen 605
13.1.8 Typsicherer Zugriff auf Daten 610
13.1.9 Behandlung komplexer Abfragen mit DataReader 611
13.1.10 Detaillierte Informationen über eine Tabelle ermitteln 613
13.1.11 Gespeicherte Prozeduren verwenden 614
13.2 Prinzip der Datenquellen 617
13.2.1 Datenquellenkomponenten 617
13.2.2 Auf IDataSource basierende Datenquellen 618
13.2.3 Die Schnittstelle IDataReader 620
17
-
Inhaltsverzeichnis
13.3 DatenverwaltungmitADO.NET 62013.3.1 Datenverwaltung im DataSet 621
13.3.2 Die Struktur einer Tabelle im DataSet bestimmen 628
13.3.3 Das DataSet und XML 629
13.4 Der Datenadapter 633
13.4.1 Einführung in die Klasse DataAdapter 633
13.4.2 Datensichten mit DataView 635
13.4.3 Aktualisieren einer Datenbank mit CommandBuilder 640
13.4.4 Die Ereignisse des Datenadapters 644
13.4.5 Informationen zu typisierten DataSets 645
13.5 XML und unterstützende Formate 645
13.5.1 XMLin.NET 645
13.5.2 XML mit XSLT transformieren 652
13.6 LINQ - Language Integrated Query 661
13.6.1 Sprachliche Grundlagen 662
13.6.2 Aggregatoren und Selektoren 668
13.6.3 LINQ-to-Objects 669
13.6.4 LINQ-to-XML 672
13.6.5 LINQ-To-SQL 675
13.7 Entity Framework 685
13.7.1 Grundlagen 685
13.7.2 Konzepte 686
13.7.3 Umstieg von LINQ-to-SQL auf das Entity Framework 688
13.7.4 Erzeugen des Entitäten Daten Modells (EDM) 688
13.7.5 Konzeptionelles Modell ohne Assistent erstellen 693
14 Globalisierung und Lokalisierung 697
14.1 Grundlagen der Globalisierung 69714.1.1 Klassen für Globalisierungseinstellungen 698
14.2 Mehrsprachige Seiten programmieren 700
14.2.1 LokalisierungsfunktioneninASP.NET 701
14.2.2 Prinzip der Sprachcodes 702
14.2.3 Einstellungen des Browsers ermitteln 703
14.2.4 Einrichten der Kultur für die aktuelle Sitzung 706
14.2.5 Kulturspezifische Informationen für Kalender 708
18
-
Inhaltsverzeichnis
14.3 Ressourcen für die Lokalisierung 710
14.3.1 Ressourcen-Dateien als Basis 710
14.3.2 Verwendung von binären Ressourcen-Dateien 716
14.3.3 Ressourcen in Assemblies speichern 720
14.4 Praxistipps zur Lokalisierung 721
14.4.1 Bereitstellung der Lokalisierungsfunktionen 721
14.4.2 Konfiguration in web.config 722
15 Master-Seiten und Themes 727
15.1 Master-Seiten 72715.1.1 Prinzip der Master-Seiten 728
15.1.2 Eine Master-Seite erstellen 729
15.1.3 Verwendung der Master-Seite 730
15.1.4 Konfiguration mit der Master-Direktive 732
15.1.5 Die Standardvorlage für Webseiten 732
15.2 Das Design der Seiten (Theme) 734
15.2.1 Überblick 735
15.2.2 CSS 737
15.2.3 Skins 744
16 AJAX - Asynchrone Programmierung 747
16.1 Applikationen für das Web 2.0 747
16.2 Herkunft und Natur der Ajax-Technologie 749
16.2.1 Die Architektur von Ajax 749
16.2.2 Ajax ohne Verwendung eines Frameworks 750
16.3 AJAX - Microsofts Ajax-Implementierung 753
16.3.1 Der ScriptManager 753
16.3.2 AJAXdebuggen 754
16.3.3 Skript-Referenzen hinzufügen 754
16.3.4 Referenzen zu Webdiensten hinzufügen 754
16.3.5 Umgang mit Master-Seiten 755
16.3.6 Das UpdatePanel-Steuerelement 755
16.3.7 Das UpdateProgress-Steuerelement 757
16.3.8 Das Timer-Steuerelement 760
16.4 Die AJAX-Client-Bibliothek 761
16.4.1 Umgang mit der Client-Bibliothek 762
16.4.2 Das Typsystem 763
19
-
Inhaltsverzeichnis
16.4.3 Debuggen mit der Client-Bibliothek 775
16.5 Neuerungen mit ASP.NET 4 775
16.5.1 Live Datenbindungen 775
16.5.2 DataView und DataContext 777
17 Dynamische Daten 783
17.1 Grundlagen dynamischer Daten 783
17.1.1 Funktionen 783
17.1.2 Hintergrund 784
17.2 Technische Grundlagen 785
17.2.1 OR-Mapping 786
17.2.2 URL-Routing 786
17.2.3 Funktionsweise dynamischer Datenanwendungen 787
17.3 Vorlagen für die Präsentationsebene 788
17.3.1 Seitenvorlagen 789
17.3.2 Entity-Vorlagen 790
17.3.3 Feldvorlagen 792
17.3.4 Filtervorlagen 795
17.4 Steuerelemente für dynamische Daten 795
17.5 Anwendungsbeispiel 798
17.5.1 Erstellen einer datengetriebenen Webanwendung 798
17.5.2 Erweitern und Anpassen der Anwendung 802
18 Model View Controller 811
18.1 Das MVC-Konzept 81118.1.1 Grundlagen 812
18.1.2 Das MVC-Entwurfsmuster 812
18.2 lmplementierunginASP.NET 813
18.3 URL-Routing 814
18.3.1 Funktionsweise 814
18.3.2 Das Standardverhalten des Routing 815
18.3.3 Funktionsweise MVC-lmplementierung 816
18.3.4 MVC und der IIS6 818
18.3.5 Routen mit Webforms verwenden 820
18.4 MVC praktisch einsetzen 823
18.4.1 Ein Einführungsbeispiel 823
20
-
Inhaltsverzeichnis
18.4.2 Erweiterung der Beispielanwendung 826
18.5 Validierung 836
18.5.1 Einleitung 836
18.5.2 Eingabe-Validierung 837
18.5.3 Model Validation 841
18.6 Weitere Funktionen 845
18.6.1 Benutzersteuerelemente 845
18.6.2 Action und RenderAction 847
18.6.3 Areas 848
18.6.4 Themes 850
19 Webdienste 855
19.1 Einführung in Webdienste 855
19.1.1 Grundlagen der Webdienste 855
19.1.2 Die Protokolle der Webdienste 856
19.1.3 Öffentliche Webdienste konsumieren 863
19.2 ASMX-Webdienste 864
19.2.1 Webdienste anbieten 864
19.2.2 Praktische Umsetzung eines Dienstes 865
19.3 WCF-Webdienste 870
19.3.1 Endpunkte: Adresse, Bindung, Vertrag 871
19.3.2 Die WCF-Bindungen 875
19.3.3 Einführung in Dienstverträge 878
19.3.4 Datenverträge 881
19.3.5 WCF-Webdienste für ASP.NET-AJAX 883
19.3.6 Debugging-Tipps 885
20 Sicherheit und Benutzer 887
20.1 Das Sicherheitskonzept 887
20.1.1 Sicherheitskonzepte in Webservern 887
20.1.2 Sicherheit und die IIS 888
20.2 ASP.NET-Sicherheitsfunktionen der IIS 889
20.2.1 Formen der Benutzerauthentifizierung 889
20.2.2 Personalisierung 898
20.2.3 Windows-Authentifizierung 899
20.3 Mitgliedschaft und Rollen 900
20.3.1 Die Autorisierungsmodule 901
21
-
Inhaltsverzeichnis
20.3.2 Dienste der Benutzer- und Rollenverwaltung 901
20.3.3 Das Erweiterungsmodell 901
20.4 Benutzerdatenverwaltung mit Profilen 930
20.4.1 Personalisierung und Benutzerdaten 931
20.4.2 Erweiterung des Profilproviders 934
20.4.3 Implementierung des Providers 937
20.4.4 Ein Profilprovider mit AJAX-Unterstützung 948
20.5 Die Anmeldesteuerelemente 952
20.5.1 Einführung in die Anmeldesteuerelemente 952
20.5.2 Das Login-Steuerelement 953
20.5.3 Das LoginView-Steuerelement 954
20.5.4 Das PasswordRecovery-Steuerelement 955
20.5.5 Das ChangePassword-Steuerelement 956
20.5.6 Das CreateUserWizard-Steuerelement 957
21 Optimierung des Datenverkehrs 959
21.1 CachinginASP.NET 95921.1.1 Einführung 959
21.1.2 Speicherung von Seiten 960
21.1.3 Speicherung von statischen Teilen einer Seite im Cache 962
21.1.4 Speicherung von Seiten mit MVC 963
21.1.5 Automatischer Start - den Cache vorwärmen 963
21.2 Programmgesteuerte Beeinflussung des Cache 964
21.2.1 Das HttpCachePolicy-Objekt 965
21.2.2 Speicherung von Daten während der Laufzeit 966
21.2.3 Warum ein Element aus dem Cache entfernt wurde -CacheltemRemovedReason 968
21.3 Erweiterung des Cache in ASP.NET 4 968
21.3.1 Einen eigenen Cache-Provider konfigurieren 968
21.3.2 Dynamische Auswahl des Cache-Providers 969
21.3.3 Einen eigenen Cache-Provider schreiben 969
21.4 Allgemeine Tipps zur Optimierung 973
21.4.1 Caching verwenden 973
21.4.2 Funktionen deaktivieren, die nicht benötigt werden 973
21.4.3 Fehlerhilfen nach der Freigabe abschalten 974
21.4.4 Nachdenken über die Gestaltung von Applikationen 974
22
-
Inhaltsverzeichnis
22 Steuerelemente entwickeln 977
22.1 Grundlagen kundenspezifischer Steuerelemente 977
22.1.1 Zusammengesetzte kundenspezifische Steuerelemente 978
22.2 Entwicklung eigener Steuerelemente 989
22.2.1 Kontrolle des Ausgabeverhaltens eines Steuerelements 989
22.2.2 Stile und Attribute für Steuerelemente 996
22.3 Datengebundene Steuerelemente 998
22.3.1 Aufbau datengebundener Steuerelemente 999
22.3.2 Entwicklung eines datengebundenen Steuerelements 1000
22.4 Vorlagenbasierte Steuerelemente 1003
22.4.1 Einführung 1004
22.4.2 Der Aufbau der Vorlagen 1005
22.4.3 Wie die Vorlagen-Eigenschaft funktioniert 1006
22.4.4 Vorlagen verarbeiten 1007
22.4.5 Erweitertes Beispiel für ein vorlagenbasierte Steuerelement 1010
22.5 Entwurfszeitverhalten 1013
22.5.1 Visual Studio unterstützen 1014
22.5.2 Das „Drag und Drop"-Verhalten modifizieren 1016
22.5.3 Bessere Entwurfszeitunterstützung 1019
22.5.4 Entwurfszeitverhalten datengebundener Steuerelemente 1019
22.5.5 Entwurfszeitverhalten vorlagengebundener Steuerelemente 1020
23 Gerätespezif ische Anpassung 1023
23.1 Adaptives Steuerelementverhalten 1023
23.1.1 Das Standardverhalten der Steuerelemente 1024
23.2 Adapter einsetzen 1026
23.2.1 Die Klasse ControlAdapter 1027
23.2.2 Die Klasse PageAdapter 1030
23.3 Gerätespezifische Filter 1031
23.3.1 Aufbau der Browserdefinitionsdatei 1032
23.3.2 Eigene Filter definieren 1033
23.4 Einen Steuerelementadapter entwickeln 1035
23.4.1 Vorbereitung 1035
23.4.2 Der Adapter 1035
23.4.3 Konfiguration des Steuerelementadapters 1040
23
-
Inhaltsverzeichnis
23.5 Einen Seitenadapter entwickeln 1040
23.5.1 Beispieladapter 1040
23.5.2 Konfiguration des Seitenadapters 1041
24 Handler und Module 1043
24.1 Module, Handlers und die IIS 1043
24.2 Module 1044
24.2.1 Module und die IIS7-Architektur 1044
24.2.2 Native Module 1045
24.2.3 Verwaltete Module 1048
24.2.4 Basisimplementierung 1049
24.2.5 Ein Modul erstellen 1050
24.2.6 Interaktionen zwischen Modulen 1053
24.3 Module installieren und konfigurieren 1054
24.3.1 Konfigurieren des Servers und der Entwicklungsumgebung 1055
24.3.2 Die IIS7/IIS7.5 konfigurieren 1055
24.3.3 Konfiguration mit der IIS-Managementkonsole 1055
24.4 Http-Handler 1056
24.4.1 Eingebaute Handler 1056
24.5 Synchrone Handler 1056
24.5.1 Typische Szenarios mit HTTP-Handlern 1057
24.5.2 Vorbereitende Schritte 1057
24.5.3 Einen Handler programmieren 1058
24.5.4 Der Einstiegspunkt in den Handler 1058
24.5.5 Beispiele für typische Handler 1060
24.5.6 Weitere Methoden der Verwendung von Handlern 1062
24.6 Asynchrone Handler 1064
24.6.1 Der Thread-Pool und asynchrone Handler 1064
24.7 Handler installieren und konfigurieren 1070
24.7.1 Konfigurieren des Servers und der Entwicklungsumgebung 1071
24.7.2 Konfiguration der IIS7-Einstellungen 1071
24.7.3 Konfiguration mit der IIS-Managementkonsole 1072
24.7.4 Konfigurieren eines generischen Handlers 1073
24.8 Module und Handler testen und debuggen 1073
24.8.1 Debuggen mit den IIS 1073
24.8.2 Probleme beim Debugging des Worker-Prozesses 1076
-
Inhaltsverzeichnis
24.8.3 Tracing für Handler 1077
25 Erweiterungsmodell Provider 1079
25.1 Konzept der Provider 1079
25.1.1 Die Schwerpunkte des Providermodells 1080
25.2 Die Standardprovider 1081
25.2.1 Eingebaute Provider 1082
25.2.2 Erweiterung der Standardprovider 1083
25.3 Die Anatomie der Provider 1083
25.3.1 Einen Provider verfügbar zu machen 1084
25.3.2 Bemerkungen zur Entwicklung eigener Provider 1087
25.4 Erstellen eines providerbasierten Dienstes 1090
25.4.1 Den Dienst erzeugen 1091
25.4.2 Den Provider erstellen 1093
25.4.3 Konfiguration des Providers 1097
25.4.4 Den Dienst verwenden 1099
26 Ressourcen 1103
26.1 Programmierung eigener Ressourcenprovider 1103
26.1.1 Das Providermodell erweitern 1104
26.1.2 Vorarbeiten 1105
26.1.3 Den Provider implementieren 1107
26.1.4 Entwurfszeitunterstützung 1114
26.1.5 Ressourcen online bearbeiten 1124
26.2 Erweiterung der Ausdruckssyntax 1130
26.2.1 Definition privater Ausdrucks-Generatoren 1130
26.2.2 Den Ausdrucks-Generator erweitern 1131
26.3 Dynamische Ausdrücke ohne Code 1136
26.3.1 Dynamische Ausdrücke auf nicht kompilierten Seiten 1136
26.3.2 Mehr Informationen 1137
26.4 Entwurfszeitunterstützung 1137
26.4.1 Umgang mit Visual Studio zur Entwurfszeit 1138
26.4.2 Fehlersuche zur Entwurfszeit 1138
27 GDI und Silverlight 1141
27.1 Grundlagen GDI+ 1141
27.1.1 Einführung 1142
25
-
Inhaltsverzeichnis
27.1.2 Vektorgrafik 1143
27.2 Dynamische Grafiken erzeugen 1148
27.2.1 Funktionsweise 1148
27.2.2 Ein dynamisches Captcha erstellen 1149
27.3 Silverlight 1152
27.3.1 Einführung in Silverlight 1152
27.3.2 Architektur von Silverlight 1153
27.3.3 Silverlight und XAML 1155
27.3.4 Der Layout-Manager 1159
27.3.5 Beispielanwendung WCF-Taschenrechner 1163
27.3.6 Silverlight-Hosting und-Verteilung 1171
27.4 Grafische Steuerelemente 1174
27.4.1 Das Chart-Steuerelement (Diagramm) 1174
Index 1181
26