Die Fehlerliste aus Lektion M2.2 hatte sechs Zeilen, alle zum Datenzugriff. Hinter ihnen warten Stellen, an denen der Compiler nichts sagt und das Programm erst zur Laufzeit stolpert. Diese Lektion geht beide Arten durch, in der Reihenfolge, in der das Auftragsbuch sie trifft.
Das Muster ist immer dasselbe. Eine API ist (1) in .NET auf Windows schon da, (2) nur mit einem Paket da, (3) anders geworden oder (4) gar nicht mehr da. Welche der vier Arten es ist, zeigt Ihnen ein Test, kein Raten. Deshalb haben Sie das Sicherheitsnetz zuerst gebaut.
Was ist wo
Microsofts Dokumentation nennt die Windows Compatibility Pack, das Paket Microsoft.Windows.Compatibility, die rund 20.000 APIs für Windows-Technologien
dazugibt: Registry, Ereignisprotokoll, WMI, Leistungsindikatoren, Verzeichnisdienste, Windows-Dienste, Codepages und mehr. Und sie nennt Technologien,
für die es in .NET keinen Ersatz gibt. Für das Auftragsbuch haben wir nachgesehen, was auf net10.0-windows mit UseWindowsForms ohne weiteres Paket
übersetzt:
| API | Auftragsbuch | auf net10.0-windows |
|---|---|---|
Microsoft.Win32.Registry |
Fenstermaße (B12) | ohne Paket da |
System.Diagnostics.EventLog |
Fehlermeldungen (B12) | ohne Paket da |
System.Drawing mit PrintDocument |
Rechnungsdruck (B7) | ohne Paket da |
System.Configuration mit ConfigurationManager |
Einstellungen (B2) |
ohne Paket da |
System.Management (WMI) |
nicht benutzt | braucht ein Paket |
ServiceController, SerialPort |
nicht benutzt | brauchen ein Paket |
System.Data.SqlClient |
Datenzugriff (B4) | braucht ein Paket, und es ist ein anderes |
WebBrowser |
Kundenkarte (B9) | da, aber auf dem Internet Explorer aufgebaut |
Encoding.GetEncoding(1252) |
Export (B8) | da, aber die Codepage ist nicht angemeldet |
Und was es nicht mehr gibt, nach Microsofts Dokumentation: Anwendungsdomänen (AppDomain.CreateDomain wirft PlatformNotSupportedException),
.NET Remoting, Code Access Security, Windows Workflow Foundation und System.EnterpriseServices. Einige dieser Aufrufe übersetzen trotzdem und
werfen erst zur Laufzeit. Suchen Sie sie früh, mit einem Test. Das Auftragsbuch benutzt keine davon; die Modulprüfung hat eine.