Ralf Westphals Readers' Digest ------------------------------ Liebe Entwickler, die Menge der Veröffentlichungen zum Thema "Softwareentwicklung auf der Microsoft Plattform" ist angesichts der Zahl von Zeitschriften, Büchern und Web-Sites kaum noch für den in immer dringende Projekte eingebundenen Entwickler zu bewältigen. Da es zu meinem Job als Softwaretechnologievermittler und Microsoft MSDN Regional Director gehört, viel zu lesen, habe ich mir überlegt, ob und wie ich in dieser Situation helfen kann. Meine Antwort: Statt durch Artikel oder Buch zur Informationsflut selbst beizutragen, möchte ich in diesem Newsletter einmal auf Lesenswertes, bereits Geschriebenes in verschiedenen Medien hinweisen. Meine Auswahl ist natürlich subjektiv und enthält nur, was mir persönlich positiv aufgefallen ist - vielleicht hilft sie Ihnen ja aber doch ein wenig bei der Bewältigung des Zeitschriften- und Bücherstapels. Ich wünsche viel Spaß beim Lesen! Ralf Westphal Freier Autor und Berater Microsoft MSDN Regional Director www.ralfw.de Lesenswerte Artikel ------------------- *Produktivität erhöhen durch gute Vorlagen, Jörg Neumann, dotnetpro 6/2003, S. 28 http://www.microsoft.com/germany/ms/msdnbiblio/show_all.asp?siteid=600360 Wie man VS.NET mit eigenen Item/Project-Typen erweitert ist bisher noch nicht so häufig gezeigt worden. Jörgs Artikel macht das knapp und pragmatisch. Als Buch zum Thema ist empfehlenswert: Inside Visual Studio .NET, MSPress, http://www.amazon.de/exec/obidos/ASIN/3860636839/ralfwestphalh-21 *Regular Expressions - so parsen Sie Texte in .NET, dotnetpro 6/2003, Marcus Heege, S. 77 Reguläre Ausdrücke sind ein ideales Mittel zur ad hoc Analyse von Texten. Sei es für die Validation einer Datumseingabe oder eines ganzen Programmtextes. Allerdings ist die Syntax von Regulären Ausdrücken nicht ganz einfach. Während sie in Perl zum täglichen Handwerkszeug gehören, sind VB-Programmierer bisher meist daran "vorbei gekommen". Das ist schade, denn sie machen das Leben - nach ein wenig Lernaufwand - um vieles einfacher. Marcus´ Artikel ist daher (wie auch Patrick A. Lorenz' Artikel in der dotnetpro 7/2003) sehr empfehlenswert. *Expressiv: Reguläre Ausdrücke in .NET-Anwendungen, Patrick A. Lorenz, dotnetpro 7/2003, S. 52 *Machen Sie mehr aus Ihren Fehlern!, Jörg Neumann, dotnetpro 7/2003, S. 36 Fehlerbehandlung findet in vielen Programmen immer noch eher nebenbei statt. Und wenn Fehler abgefangen werden, dann sind die gemeldeten Informationen oft nicht sehr aussagekräftig: Die Fehlermeldung ist kurz und macht kaum Aussagen über den Kontext des Fehlers. Dabei bietet die .NET Framework Infrastruktur von sich aus darüber schon viele Informationen. Jörgs Artikel demonstriert eine sehr praktische Komponente, die Fehlerkontextinformationen zusammenfasst und die Fehlerbehandlung bzw. Weiterverarbeitung unterstützt (z.B. autom. Anwendungsneustart). *Eingriff ins System: Subclassing mit .NET, Jörg Neumann, dotnetpro 7/2003, S. 74 http://www.dotnetpro.de/community/freearticles/subclassing.aspx Leider suggeriert der Titel, es ginge um objektorientierte Programmierung und die Ableitung von Klassen. Dabei zeigt der Artikel sehr prägnant, wie WinForms-Anwendungen von low-level Win32 Programmiertechniken profitieren können. Es geht im Artikel um das Subclassing von Fenstern, d.h. das Abfangen und Verarbeiten von Windows Nachrichten (z.B. WM_PAINT), wie es früher in VB6 nur mit SpyWorks möglich war. Wenn auch diese Art der Programmierung mit dem .NET Framework viel an Wert/Notwendigkeit verloren hat, so ist sie doch immer noch möglich und ist sogar einfacher als bisher. Für Freunde der "Bitfummelei" und WinForms Control-Tüftelei ein lesenswerter Artikel. *Ruhe bewahren! So überleben Sie den Datenbank-GAU, Wilfried Färber, dotnetpro 7/2003, S. 91 Backups sind wichtig. Darüber herrscht kein Zweifel. Aber wie werden effektive und im Ernstfall funktionierende Backup- bzw. Restore-Prozeduren für Datenbanken (hier: SQL Server) aufgesetzt? Wilfried zeigt, wie es geht. *Das neue Cache-Objekt, Jürgen Kotz, ASP.NET Professional 6/2003, S. 34 In ASP-Anwendungen konnten Session-übergreifende Daten nur im Application-Objekt gehalten werden. Es diente damit als Cache - allerdings ohne jeglichen Komfort. Für die Aktualisierung von Cache-Daten gab es keinerlei Unterstützung. Hier bietet ASP.NET jetzt deutlich mehr mit einem speziellen Cache-Objekt. In ihm können Inhalte für Zeitspannen abgelegt werden und eine Anwendung wird auf Wunsch über den Ablauf der Lebenszeit eines Cacheinhalts informiert. Für Entwickler performancekritischer ASP.NET Anwendungen ein sehr nützlicher Artikel. *Wolf im Schafspelz - Browsererkennung mit ASP.NET, dot.net magazin 3/2003, S. 70 http://www.microsoft.com/germany/ms/msdnbiblio/show_all.asp?siteid=600350 Um die Benutzeroberfläche einer Web-Anwendung beim Anwender optimal zu zeigen, muss das auszugebende HTML an die Fähigkeiten dessen Browsers angepasst werden. Das ist nur möglich, wenn die Anwendung die Hersteller und Version des Browsers kennt. Ein seit den Zeiten der CGI-Programmierung wiederkehrendes Problem. Christian zeigt, wie es in ASP.NET Anwendungen gelöst wird. *Erweitern Sie ihre Assemblies nach dem Kompilieren, Mirko Matytschak, MSDN Online Deutschland http://www.microsoft.com/germany/ms/msdnbiblio/show_all.asp?siteid=600352 Ausführbare Dateien scheinen eine Black Box zu sein. Man schaut nicht hinein und kann sie auch nicht mehr verändern. Aber: weit gefehlt! Man kann .NET Assemblies sehr wohl nach der Erzeugung noch verändern und neue Funktionalität hinzufügen. Das dient der Entzerrung des eigenen Programmcodes durch eine "Separation of Concerns" im Sinne der Aspektorientierten Programmierung (AOP). Oder pragmatischer ausgedrückt: Automatische Objektpersistenz oder transparente Parametervalidation lassen sich dadurch in Anwendungen "einweben". Mirko demonstriert, wie diese Technik grundsätzlich funktioniert. Ein sehr interessantes, in der üblichen Entwicklerliteratur bisher nicht behandeltes Thema. *Jetzt lerne ich ADO.NET, Ralf Westphal & Christian Weyer, Markt+Technik 2003 http://www.microsoft.com/germany/ms/msdnbiblio/show_all.asp?siteid=600255 Vorabveröffentlichung des Buchmanuskriptes. Eine Einführung in die ADO.NET Programmierung mit einem ausführlichen Theorieteil, der in die Grundlagen für "schmerzfreie" Datenbankprogrammierung mit dem .NET Framework einführt: Objekt-relationales Mapping. *Extend the ASP.NET WebMethod Framework by Adding XML Schema Validaton, Aaron Skonnard & Dan Sullivan, MSDN Magazine July 2003 http://msdn.microsoft.com/msdnmag/issues/03/07/XMLSchemaValidation/default.aspx Einen WebService mit VS.NET zu schreiben, ist sehr einfach. Eigentlich. Denn der Teufel steckt im Detail. Genügende Sicherheit ist eine oft bemängelte Lücke der heutigen XML Web Services. Und wie steht es mit der Robustheit? Wie geht ein WebService mit SOAP-Anfragen um, die mehr oder weniger inkorrekt im Sinne des durch seine Methoden definierten Schemas sind? Es findet keine Validation der eingehenden Daten statt. Aarons Artikel zeigt, wie das geändert werden kann. Sehr erhellend und ein weiterer Beweis für die Erweiterbarkeit des .NET Framework mit eigenen Mitteln. *Seitenvariablen automatisch im Viewstate speichern, Ralf Westphal, ASP.NET Professional 3/2003 http://www.microsoft.com/germany/ms/msdnbiblio/show_all.asp?siteid=600240 ASP.NET verbessert das Web-Programmiermodell erheblich, indem es Inhalte von Formularfeldern nach einem Postback automatisch wieder einsetzt. Web Forms sind damit äußerlich genauso zustandsbehaftet wie Windows Dialoge. Werte von Variablen in Web-Forms-Klassen profitieren von diesem Fortschritt jedoch nicht. Sie verlieren bei jedem Postback ihren Zustand. Der Artikel zeigt, wie Sie dieses Defizit leicht beheben und das Web-Programmiermodell noch bequemer machen können. *Manipulate XML Data Easily with the XPath and XSLT APIs in the .NET Framework, Dino Esposito, MSDN Magazine July 2003 http://msdn.microsoft.com/msdnmag/issues/03/07/XPathandXSLT/default.aspx Handliche Darstellung der Nutzung von XPath und XSLT in .NET Anwendungen. Es geht nicht um die Theorie ("Was ist XPath bzw. XSLT?"), sondern darum, wie die zugehörigen Klassen (z.B. XPathNavigator, XsltTransform) eingesetzt werden. Lesenswerte Bücher ------------------ *Feature Based Programming, Stefan Richter, Addison-Wesley 2003, http://www.amazon.de/exec/obidos/ASIN/3827320771/ralfwestphalh-21 Wie lassen sich Projekte termingerecht realisieren? Ist der Rational Unified Process der Heilsweg? Oder ist Extreme Programming die Lösung? Das eine scheint vielen zu schwergewichtig, das andere zu lückenhaft. Stefan Richter beschreibt einen dritten Weg, den er selbst in mehreren Jahren in seiner Firma erkundet hat. Der Charme des Buches liegt in seinem pragmatischen, "lebenserfahrenen" Ansatz und in der Kürze der Beschreibung. Und nicht zuletzt lebt der Autor jeden Tag seine Methode und hat bisher noch jedes Projekt "on time" abgeschlossen. Eine beeindruckende und mutmachende Bilanz. ================== Sie erhalten diesen Newsletter, weil Sie mit mir auf die eine oder andere Weise persönlich Kontakt hatten, z.B. durch ein Gespräch auf einer Konferenz oder durch eine Anfrage per Email oder durch eine explizite Registrierung. Ich hoffe, Sie empfinden den Newsletter daher als positive kostenlose Dienstleistung. Sollte das nicht der Fall sein, deregistrieren Sie sich bitte jederzeit durch einen Reply auf den Newsletter mit einem Betreff wie "Deregistrierung" oder "Abmeldung". Anmeldungen für den Newsletter sind natürlich auch jederzeit möglich. Am besten durch eine Email an readersdigest@ralfw.de mit einem eindeutigen Betreff wie "Registrierung" oder "Anmeldung". Sollten Sie Anregungen für die Gestaltung des Newsletter haben, freue ich mich auf eine Email von Ihnen an readersdigestfeedback@ralfw.de. Der Readers' Digest erscheint periodisch ca. alle 14 Tage.