Dr. Holger Schwichtenberg. Microsoft NET 3.0 Crashkurs

Dr. Holger Schwichtenberg Microsoft •NET 3.0 Crashkurs # # %s%jxj Inhaltsverzeichnis Vorwort Über den Autor Dr. Holger Schwichtenberg Leser-Serv...
Author: Damian Holst
8 downloads 0 Views 13MB Size
Dr. Holger Schwichtenberg

Microsoft •NET 3.0 Crashkurs

#

#

%s%jxj

Inhaltsverzeichnis Vorwort Über den Autor Dr. Holger Schwichtenberg Leser-Service Themeneinschränkungen Ihre Entwicklungsumgebung für .NET Hinweise zu den Listings 1

Einführung Wasist.NET? Definition Zielevon.NET Technische Merkmale des .NET Framework Kernbausteine Standardisierung bei ECMA und ISO .NET Connected Plattformen Microsoft .NET Framework ECMA SSCLI (Rotor) Novell Mono Geschichte und Versionen .NET 1.x .NET 2.0 (Whidbey) .NET 3.0 (WinFX) Erweiterungenzu.NET .NET 3.5 (Orcas) ECMA SSCLI (Rotor) Mono Produkte Notwendige Produkte Optionale Produkte Details zu einigen Produkten Entscheidung zwischen der deutschen und der englischen Version Installation Betriebssysteme, die bereits .NET enthalten Installation des .NET Framework Redistributable Installation von Visual Studio 2005

XXIII XXVI XXVII XXVIII XXIX XXXI 1 2 2 2 3 4 6 7 7 8 8 8 9 9 9 9 10 11 12 12 12 12 13 14 16 18 18 19 19

Inhaltsverzeichnis

2 World Wide Wings - Das mehrschichtige Fallbeispiel in diesem Buch Einleitung Szenario Datenmodell Mehrschichtarchitektur Objektmodell Implementierung Softwarevoraussetzungen für das Fallbeispiel Installation und Konfiguration Mögliche Fehler Dokumentation Aktualisierungen Fragen zu diesem Fallbeispiel

23 24 24 27 28 29 30 31 32 32 33 34 35

3

37 38 38 40 42 43 44

Ihre ersten drei .NET-3.0-Anwendungen Motivation Erstellung einer Konsolenanwendung in C# 2005 an der Kommandozeile Erstellung einer Webanwendung mit Visual Studio 2005 Erweiterung des Beispiels Schritte für die Erweiterung Erstellung einer Windows-Anwendung in Visual Basic mit Visual Studio 2005

4 Grundkonzepte des .NET Framework 3.0 Zwischensprache Anwendungstypen Laufzeitumgebung Programmiersprachen Klassenbibliothek Namensräume Umfang der Klassenbibliothek FCL versus BCL Implementierung der FCL Objektorientierung Referenztypen Wertetypen (Strukturen) Typnamen und Namensräume (Namespaces) Neuheiten im Typkonzept seit .NET 2.0 Softwarekomponentenkonzept Der Softwarekomponentenbegriff im .NET Framework Aufbau von Assemblies Signierte Assemblies Befreundete Assemblies (Friend Assemblies) Speicherorte für Assemblies

49 50 52 54 55 59 60 64 65 65 66 67 69 70 72 74 74 76 77 78 79

Inhaltsverzeichnis

Metadaten Komponentenkonfiguration Assembly-Referenzen Anwendungsdienste (Application Services) Installation von .NET-Anwendungen XCopy-Installation Microsoft Windows Installer (MSI) Kommandozeilenwerkzeuge GUI-Werkzeuge No-Touch-Deployment (NTD) Click-Once-Deployment (COD) Weitere Fähigkeiten der Laufzeitumgebung Speicherbereinigung (Garbage Collector) Prozessabgrenzung durch Application Domains Sicherheit (Code Access Security) Mehrschichtige .NET-Anwendungen Benutzerschnittstellensteuerung Geschäftslogik Ressourcenzugriff Verteilte .NET-Anwendungen ASP.NET-basierte XML-Webservices (ASMX) .NETRemoting Windows Communication Foundation (WCF) Zukunft von .NETRemoting Interoperabilität Interoperabilität zu klassischen C-Bibliotheken Interoperabilität zu COM Interoperabilität zu anderen Komponentenplattformen .NETauf64-Bit-Systemen Entscheidungsdiagramm Datentypen Leistung Kompatibilität zwischen den .NET-Versionen Weiterbetreiben mit der alten CLR Betreiben mit einer neuen CLR Neukompilierung Visual Studio-Kompatibilität Ermitteln der CLR-Version 5 Visual Studio 2005 Einleitung Grundfunktionen Neuerungen in der Entwicklungsumgebung Produktvarianten

____JÖI

79 81 82 83 84 85 85 86 86 86 86 87 87 88 90 94 95 96 96 97 98 98 100 100 101 101 101 102 102 103 105 105 106 107 107 109 110 110 113 114 114 115 116

Inhaltsverzeichnis

Fensterverwaltung Projektverwaltung Projektvorlagen Projektmappen Projektelemente Ordnerstruktur Projekteigenschaften Verweise (Komponenten- und Projektreferenzen) Speichern und Autowiederherstellung Projektkonvertierung Code-Editoren IntelliSense-Funktionen Farbdarstellung Änderungsverfolgung Zeilennummern und Zeilenumbruch Coderegionen Refactoring (Umgestalten) Codeformatierung Kommentare Hintergrundkompilierung Grafische Editoren (Designer) Designer für Windows Forms, WPF und Webforms Designer für nichtvisuelle Komponenten Designer für Workflows Designer für Klassendiagramme Arbeit mit Datenquellen Datenverbindungen (Data Connections) Datenquellen (Data Sources) Kompilierung und Ausführung Übersetzungskonfigurationen Fehlerliste Microsoft Build (MS Build) Debugger Start des Debugger Funktionen im Haltemodus Bearbeiten und Fortsetzen (Edit & Continue) Steuerung der Debugger-Anzeige Direktfenster (Intermediate Window) Objekttestcenter (Object Test Bench, OTB) Einschränkungen auf 64-Bit-Systemen Weitere Funktionen Aufgabenliste Server-Explorer

118 121 121 122 124 124 125 126 126 127 128 128 131 131 132 132 132 134 134 134 135 135 136 136 136 137 137 138 141 141 142 143 143 143 144 144 145 147 147 148 148 148 149

Inhaltsverzeichnis

Objektbrowser und Klassenansicht (Object Browser/Class View) Codedefinitionsfenster (Code Definition Window) Visual SourceSafe 2005 (VSS) Clients Erstellen einer SourceSafe-Datenbank Integration in Visual Studio 2005 Visual Studio 2005 Team System (VSTS) Team Foundation Server (TFS) Produktvarianten Modellierung Statische Codeanalyse Testen Leistungsmessung 6 Visual Basic 2005 (VB 8.0) Einleitung Compiler Syntaktische Grundlagen Objektorientierung Klassen Generische Klassen Partielle Klassen Vererbung Ereignisse Schnittstellen Namensräume Deklaration von Namensräumen Import von Namensräumen Verweis auf Wurzelnamensräume mit global Datentypen Typprüfung Arrays Wertelose Wertetypen (Nullable Types) Operatoren Schleifen Verzweigungen Funktionszeiger (Delegates) Annotationen (.NET-Attribute) Fehlerbehandlung Eingebaute Objekte und Funktionen Kommentare und XML-Dokumentation Zeigerprogrammierung (Unsicherer Code)

______K

150 152 152 152 153 154 156 157 157 158 159 161 168 171 172 173 173 174 174 177 179 180 182 183 183 183 184 184 185 185 185 186 187 189 189 189 190 191 192 193 193

Inhaltsverzeichnis

C# 2005 (C# 8.0)

195

Einleitung Compiler Syntaktische Grundlagen Objektorientierung Klassen Generische Klassen Partielle Klassen Vererbung Ereignisse Schnittstellen Namensräume Deklaration von Namensräumen Import von Namensräumen Verweis auf Wurzelnamensräume mit global:: Datentypen Zeichenketten Typkonvertierung Initialisierung Wertelose Wertetypen (Nullable Types) Arrays Operatoren Schleifen Verzweigungen Funktionszeiger (Delegates) Annotationen (.NET-Attribute) Fehlerbehandlung Eingebaute Objekte und Funktionen Kommentare und XML-Dokumentation Zeigerprogrammierung (Unsicherer Code)

196 196 197 197 197 200 200 201 202 204 204 204 205 205 205 206 206 207 207 209 209 212 215 216 217 217 218 218 219

Konsolenanwendungen Einführung Erzeugen einer Konsolenanwendung Konsolenanwendungen in Visual Studio 2005 Klasse System.Console Write() und WriteLineO Read() und ReadLine() Klassen System.Environment Neuerungen in .NET 2.0

221 222 222 223 224 225 225 226 226

9 Softwarekomponenten Der Softwarekomponentenbegriff im .NET Framework Komponententypen Erstellung von nichtvisuellen Komponenten Festlegung von Assembly-Eigenschaften Erstellung einer signierten Assembly Erstellung einer gemeinsamen Assembly Befreundete Assemblies Interoperabilität mit COM Zugriffvon.NET auf COM ZugriffvonCOMauf.NET Konfiguration von Assemblies 10 MT-Klassenbibliothek 2.0 Einleitung System System.Object System.Console System.Type System.Collections System.IO Dateisystem Dateiinhalte System.Configuration Neuheiten ab .NET 2.0 ConfigurationManager Verschlüsselte Sektionen Anwendungseinstellungen (Application Settings) Nutzung der Anwendungseinstellung System.Diagnostics Prozesse Ereignisprotokolle System.Net HTTP-und FTP-Unterstützung System.Net.Networklnformation.* Netzwerkstatus System.Net.Mail und System.Net.Mime System.Text Textcodierung Reguläre Ausdrücke System.DirectoryServices Allgemeines Objektmodell Objektmodell für die Suche

229 230 230 232 235 236 237 238 238 238 239 240 243 244 244 245 247 247 250 251 251 254 255 255 256 257 259 260 261 262 264 266 266 269 270 271 272 272 272 273 274 275

Inhaltsverzeichnis

System.DirectoryServices.ActiveDirectory System.DirectoryServices.Protocol System.Management System.Resources Erstellung von Ressourcendateien Zugriff auf Ressourcendateien Streng typisierte Ressourcen System.Security System.Security.SecureString System.Security.AccessControl.*

277 278 278 281 282 282 284 284 285 286

Datenzugriff mit ADO.NET 2.0 Einführung Neuerungen im Überblick Die ADO.NET-Architektur Datenprovider von Microsoft Datenprovider von anderen Herstellern Ermittlung der installierten Datenprovider Der Weg der Daten von der Datenquelle bis zum Verbraucher Datenbankverbindungen (Connection) Verbindungen aufbauen und schließen Verbindungspooling Verbindungszeichenfolgen zusammensetzen mit dem ConnectionStringBuilder Verbindungszeichenfolgen aus der Konfigurationsdatei auslesen Ermittlung der verfügbaren Microsoft SQL Server Datenbankbenutzerkennwörter ändern Daten lesen mit einem Datareader Ablauf Beispiel Behandlung von Null-Werten Multiple Active Results Sets (MARS) Daten lesen und verändern mit einem Dataset Das Objektmodell Daten lesen mit DataSets Datensichten (Dataviews) Daten ändern mit Datasets Typisierte DataSets (Typed DataSets) Umwandlung zwischen DataSet und XML Umwandlung zwischen Dataset und Datareader Serialisierung und Remoting für DataSets Befehlsausführung mit Command-Objekten Methoden der Befehlsklassen Transaktionen

291 292 292 294 295 296 296 297 299 299 300 301 302 302 302 303 305 305 306 307 308 309 310 314 315 318 319 321 321 322 322 323

Inhaltsverzeichnis

Parameter für Befehle Asynchrone Befehlsausführung Datenproviderunabhängiger Datenzugriff durch Providerfabriken Benachrichtigungen über Datenänderungen (Query Notifications) Massenkopieren (Bulkcopy/Bulkimport) Providerstatistiken Datenbankschema auslesen Positionierung von ADO.NET und Ausblick

•*—»,

Xl

"

324 325 328 330 333 337 338 339

12 Datenzugriff mit System.Xml 2.0 XML-Programmierung Neuerungen in .NET 2.0 Neuerungen in .NET 3.0 XML-DOM Alternative XML-Zugriffsformen XmlReader XmlWriter XPathNavigator (XPath Data Model) Ableiten eines Schemas aus XML-Dokumenten XML Style Sheet Transformations (XSLT)

341 342 342 342 343 345 346 349 351 353 354

13 .NETRemoting Einleitung Neuerungen in .NET 2.0 Formatters und Channels Hosting Art der Objektnutzung Channel-Erzeugung Aktivierung und Lebenszyklus Remoting- Beispiel Konfiguration Quellcode Ergebnisse Deklarative Remoting-Konfiguration

357 358 358 358 361 361 362 363 367 368 368 375 379

14 ASRNET-basierte XML-Webservices (ASMX) Einleitung Neue Funktionen Webservices erstellen mit ASP.NET 2.0 Webservices nutzen Generierung der Proxy-Klasse Aufruf der Proxy-Klasse Gemeinsame Proxy-Typen (Proxy Type Sharing)

381 382 382 383 387 388 389 390

Inhaltsverzeichnis

Asynchroner Aufruf Authentifizierung Weitere Möglichkeiten RAD-Datenbindung für von Webservices gelieferte Daten Fehlerbehandlung Generierung der Server-Schnittstellen Statische Generierung von Serialisierungs-Assemblies (sgen.exe) Benutzerdefinierte Serialisierung Zustandsbehaftete Webservices Web Services Enhancements (WSE) 3.0 Vergleich zwischen .NET Remoting und ASRNET-basierten XML-Webservices 15 Windows Communication Foundation (WCF) Einleitung Architektur Bindungen (Binding) Assemblies Kompatibilität Werkzeuge Visual Studio-Integration ServiceModel Registration Tool Service Configuration Editor WCF Service Trace Viewer COM+ Service Model Configuration Tool WS-AtomicTransaction Configuration Utility Implementierung von WCF-Diensten Dienstklasse Datenklassen Erstellung einer Endpunktkonfiguration Bereitstellen eines Metadaten-Dienstes Konfiguration der Fehlerübermittlung Hosting (WCF-Server-Prozess) Best Practices: Selbsttest Erstellung eines WCF-Clients Vorüberlegungen Erstellen eines Proxy Konfigurationseinstellungen Auswahl der Konfiguration Aufrufeines WCF-Servers Steuerung der Proxy-Klasse Erweitern der generierten Klassen WCF-Sicherheit Sicherheitsmechanismen Sicherheitsmodi

390 391 392 392 392 393 394 395 395 396 397 399 400 400 402 404 404 405 405 405 405 406 406 406 406 406 408 415 420 421 421 426 426 426 427 428 429 429 429 430 431 431 431

Inhaltsverzeichnis

Authentifizierungsverfahren Beispiel Übermittlung der Identität Ermitteln der aktuellen Identität Nutzung der Identität Zugriffsrechte Protokollierung Beispiele in World Wide Wings Weitere Funktionen Funktionen des Service Model Metadata Utility Tool (svcutil.exe) Ein-Weg-Kommunikation (One-Way) Duplex-Kommunikation Asynchrone WCF-Aufrufe Sitzungen Gemeinsame Proxy-Typen (Proxy Type Sharing) Weitere Möglichkeiten Fazit 16 Windows Workflow Foundation (WF) Einleitung World Wide Wings-Buchungs-Workflow Architektur Bestandteile des Workflow-Konzeptes Workflow-Formate Workflow-Werkzeuge Designer Debugging Kommandozeilenwerkzeuge Workflow-Arten Workflow-Aktivitäten Aktivitätsbaum Überblick über die mitgelieferten Aktivitäten Weitere Aktivitäten Zustandsmodell Workflow-Hosting Server-Prozess WF-Dienste konfigurieren und der Laufzeitumgebung hinzufügen Start der Workflow-Laufzeitumgebung Workflows erzeugen und starten Ereignisse der Laufzeitumgebung behandeln Steuerung von Workflows Datenaustausch mit Workflows Interne Kommunikation über Attribute und Abhängigkeitseigenschaften Parameteraustausch mit dem Workflow-Host

XV

431 432 432 433 433 433 434 437 440 440 441 442 443 444 444 446 447 449 450 450 452 453 454 454 455 456 457 457 458 458 458 459 459 460 461 461 461 462 462 463 463 463 465

Inhaltsverzeichnis

Datenaustauschdienste Kommunikation mit Webservices Aufruf von Webservices WorkflowQueuingService Bedingungen Regelsätze (RuleSets) Persistenz Anlegen der Datenbank Aktivierung des Persistenzdienstes in einem WF-Host Persistierung eines Workfiows Form der Persistierung Laden eines persistierten Workfiows Ablaufverfolgung (Tracking) Anlegen der Datenbank Aktivieren des Ablaufverfolgungsdienstes Umfang der Ablaufverfolgung Auslesen der Ablaufverfolgungsdaten Scheduling Fehlerbehandlung Transaktionen Kompensation Weitere Möglichkeiten

466 470 470 473 473 474 476 477 479 480 480 481 481 482 484 484 484 486 486 487 488 489

Webanwendungen mit ASP.NET 2.0-Webforms Einleitung Überblick über ASP.NET-Webforms Neuheiten in ASP.NET 2.0-Webforms Beispielanwendung Das Webform-Programmiermodell Abstraktion durch Serversteuerelemente (Adaptive Rendering) Kompatibilität zu Windows Forms Objektorientierung Steuerelement-Hierarchie (Objektbaum) Ereignisbehandlung Seitenübergänge Trennung von Layout und Programmcode Übersetzungsvorgang und Verbreitung Steuerelement-Typen Bestandteile eines Webprojekts Entwicklungsumgebung Visual Web Developer Grundfunktionen Neuerungen im VWD Migration

491 493 493 494 496 497 499 499 500 502 502 504 505 506 510 512 513 513 514 515

Inhaltsverzeichnis

____J£Ü1

Webprojektmodelle Arbeit mit dem Webform-Designer Übersetzung von Webanwendungen Start von Webanwendungen WebserverfurASP.NET ASP.NET Development Server Internet Information Server (IIS) Serversteuerelemente Einfache Steuerelemente Validierungssteuerelemente (Validatoren) Komplexe Steuerelemente Selbst definierte Steuerelemente Steuerelemente für kleine Endgeräte Steuerelemente von Drittanbietern Datensteuerelemente und Datenbindung Datensteuerelemente Datenbindung Datenquellensteuerelemente Halbautomatische Datenbindung GridView DataList Details View und FormView TreeView Benutzerdefinierte Datenbindung Webparts Bestandteile eines Webportals Inhalt einer WebPartZone Anzeigemodi Eigene Webparts erstellen Konfiguration XML-Konfigurationsdateien Administration Nutzung von Softwarekomponenten Interaktion zwischen ASP.NET und dem Webserver mit den eingebauten Objekten.... Nutzung von anderen .NET-Softwarekomponenten Zustandsverwaltung Zustandsverwaltung auf Sitzungsebene Zustandsverwaltung auf Seitenebene Zustandsverwaltung auf Anwendungsebene Anwendungsbeispiel Logik auf dem Client und AJAX Einfache Client-Skripte Client-Rückrufe (Script Callbacks)

516 524 531 531 532 533 534 534 534 536 538 540 545 545 545 546 547 548 553 554 557 558 558 560 560 561 561 561 562 563 563 564 568 568 569 569 570 571 572 572 573 573 574

XVIII

Inhaltsverzeichnis

Navigation Navigationselemente URL-Rewriting Sicherheit Authentifizierung Benutzerverwaltung Anwendungsidentität Layout-Vorgaben Vorlagenseiten Layout-Themen (Themes) Individuelle Inhalte Profildaten Mehrsprachige Websites (Lokalisierung) Zwischenspeicherung (Caching) Seiten-Caching Fragment-Caching Cache Invalidation durch die Datenbank Datenquellensteuerelement-Caching Installieren und Konfigurieren von Webanwendungen Weitere Möglichkeiten von ASRNET Vergleich mit der Java-Welt

574 575 576 578 578 579 581 585 585 586 588 588 589 595 595 595 596 598 599 599 600

18 Windows-Oberflächen mit Windows Forms 2.0 Einleitung Überblick über Windows Forms Funktionsüberblick Windows Forms entwickeln mit Visual Studio 2005 Neuheiten in Windows Forms 2.0 Funktionen der World Wide Wings-Desktop-Anwendung Anwendungsfälle Gezeigte Funktionen Architektur Hauptmenü Konfiguration Stammdatenverwaltung Call Center-Anwendung Fenster Vorgefertigte Formulare Anzeigen eines Fensters DoEvents Das Visual Basic 2005-Anwendungsmodell Fenster mit Unterfenstern (Multi-Document-Interface) Visuelle Vererbung Dialogfenster

601 602 602 602 603 604 606 606 607 607 608 609 610 611 613 614 614 615 616 617 619 620

Inhaltsverzeichnis

Steuerelemente Allgemeine Eigenschaften von Steuerelementen Steuerelementhierarchie Liste der verfügbaren Steuerelemente Container Menüs Symbolleisten Statusleiste Datenbindung Datenbindung per Rapid Application Development (RAD) Datenbindung an Objektmengen (Mehrschichtiges Datenbinden) Individuelle Datenbindung mit DataBindings Manuelle Datenbindung DataGridView Zeichnen mit GDI+ Drucken PrintDocument PrintPreviewDialog PrintDialog Berichterstellung mit Report-Generatoren Mehrsprachige Anwendungen (Lokalisierung) Drag & Drop (»Ziehen & Fallenlassen«) Zwischenablage Weitere Möglichkeiten von Windows Forms Systeminformationen XP Visual Styles Erstellung von Windows-Steuerelementen (Benutzersteuerelemente) Nutzung von Windows Forms-Steuerelementen im Internet Explorer Click-Once-Deployment 19 Windows Presentation Foundation (WPF) Überblick über WPF Funktionen der World Wide Wings- WPF- Anwendung Extensible Application Markup Language (XAML) XAML-Grundkonzepte XAML-Serialisierung XAML-Namensräume Verbindung von XAML und Programmcode (Code-Behind) Abhängigkeitseigenschaften (Dependency Properties) XAML Markup Extensions XAML-EditorenfürWPF WPF-Designer für Visual Studio Microsoft Expression Blend

XIX

621 621 622 622 624 625 626 626 627 627 629 630 631 631 632 634 634 635 635 636 636 638 639 640 640 640 640 641 642 645 646 650 651 651 653 653 654 656 657 657 657 659

Inhaltsverzeichnis

XAMLPad Andere Anbieter Anwendungen und Fenster WPF-Anwendungsobjekt Fenster Dialogfenster Visuelle Elemente und Steuerelemente (Controls) Allgemeine Eigenschaften von visuellen Elementen Liste der verfügbaren Steuerelemente Panel-Elemente Steuerelementhierarchie Ereignissystem Routed Events Trigger Befehlssystem WPF-Befehlsbindungen (Command Binding) Vordefinierte Befehle Datenbindung Datenbindungsziele Datenquellen Datenbindungsrichtung Beispiel Formatvorlagen (Styles) Definition einer Formatvorlage auf Fensterebene Definition einer Formatvorlage auf Anwendungsebene Formatvorlagen und Trigger Transformationen Animationen Zeichnen Weitere Möglichkeiten von WPF

663 664 665 665 666 667 667 669 669 670 673 674 674 675 675 676 677 679 679 679 679 680 682 682 683 684 684 685 688 688

Enterprise Services und Transaktionen Serviced Components Dienste Voraussetzungen und Optionen Registrierung der Assembly im Application Server COM+-Transaktionsdienste Beispiel Automatische Feststellung des Endzustands (AutoComplete) Fernaufruf von Serviced Components Services without Components (SWC) System.Transactions Implizite Transaktionen mit TransactionScope

689 690 690 690 691 692 693 696 696 696 698 698

Inhaltsverzeichnis

^^^JQH

.NET-Klassen als Teilnehmer von Transaktionen Automatische Umschaltung zwischen lokalen und verteilten Transaktionen (Explizite Transaktionen)

699 699

21 Zusatzkomponenten .NET Enterprise Library Bestandteile Status Installation Windows PowerShell (WPS) Status Commandlets und Objekt-Pipelining Navigationsprovider Skripte Sicherheit Erweiterungen Weitere Informationen AJAX-Erweiterungen für ASP.NET Web 2.0 und AJAX Microsoft-AJAX Produkte Installationspakete und Quellcode Visual Studio-Integration ScriptManager JavaScript-Erweiterungen Partielle Seitenerzeugung Webservice-Aufrufe Extender Ausblick

701 702 702 703 703 704 705 705 707 707 707 707 708 708 708 709 710 711 711 711 711 717 722 723

22 Ausblick und Fazit .NET 3.5 und Visual Studio 9.0 »Orcas« - ein Blick in die Zukunft Neue Funktionen im .NET Framework Neue Funktionen in Visual Studio Bewertung: Wo steht .NET?

725 726 726 727 728

23 Die Entwicklergemeinde und andere Informationsquellen Zeitschriften Zeitschriften mit dem Schwerpunkt ».NET« Zeitschriften, die regelmäßig über .NET berichten Bücher Newsgroups, Foren und Weblogs

731 732 732 733 733 733

Inhaltsverzeichnis

Websites Angebote von Microsoft Codezone.de Codezone Premier Sites dotnetframework.de Weitere Websites Organisationen .NET Code Wise Community International .NET Association (INETA) Microsoft Most Valuable Professionals (MVPs) Regional Directors Community Leader/Influencer Program (CLIP) Veranstaltungen Schulungen und Workshops Konferenzen User Group Treffen Feedback an Microsoft

734 734 734 734 736 736 737 737 737 737 737 738 738 738 738 739 739

Literaturverzeichnis

741

Stichwortverzeichnis

747