Ralf Westphals Readers' Digest Nr. 9 ------------------------------------ Liebe Entwickler, die Tage werden wieder länger, die Zeit, die wir draußen verbringen, kürzer. Also gibt es auch wieder mehr Gelegenheit zum Lesen. Passend zum Herbst daher hier eine neue Ausgabe meines Readers´ Digest. Ich hoffe, es ist wieder für jeden etwas dabei. Der Herbst bringt aber nicht nur mehr Lesezeit in dunkleren Stunden, sondern ist traditionell auch Veranstaltungszeit. Wenn Sie möchten, können wir uns auf folgenden Entwickler-Events auch persönlich unterhalten. Ich würde mich freuen: -Advanced Developers Conference, 10.-11. November, Ulm, http://www.ms-adc.de/ADC2004/index.htm Dort halte ich zwei Vorträge zum Thema "Programmieren mit Patterns" und "Code reduzieren mit Domain Specific Languages". -Advanced Developers Workshop, 8.-9. November, Ulm, http://www.ms-adc.de/adw/index.htm Vor der ADC halte ich einen Workshop, in dem ich mit den Teilnehmern in zwei Tagen eine komplette Anwendung bauen möchte. Statt einzelner Technologien steht hier deren Integration in einem Projekt im Vordergrund. Es kommen zum Einsatz: ADO.NET, WinForms, WebServices, System.Net, System.Threading. -SQL Server Days, 15.-16. November, München, http://www.sqldays.de/ Auf den SQL Server Days werde ich über O/R Mapping, d.h. über den OO-Zugriff auf relationale Datenbanken sprechen. Ein Thema, dass mich im letzten halben Jahr beschäftigt hat und zunehmend wichtiger wird. ADO.NET ist eine schöne Sache - aber erfordert immer noch, dass wir in vielen Projekten 30-50% Code nur für den Datenbankzugriff schreiben. OO APIs versprechen, den Aufwand dafür stark zu senken. Während im Java-Lager O/R-Mapping schon lange ein Thema ist und solide Tools existieren, ist der Ansatz beim .NET Framework eher neu. Das Feld der Werkzeuge ist noch unübersichtlich. Meine zwei Favoriten sind derzeit FastObjects mit dem zukünftigen O/R Mapper Open Access von Versant (http://www.versant.com/products/openaccess/dotnet) und NDO von Mirko Matytschak (http://www.advanced-developers.de/NDO/). -.NET Akademie, 22.-26. November, bei Erlangen, http://www.sigs-datacom.de/sd/seminare/sw_akademie/index.htm Die .NET Akademie führt wieder eine Woche lang in den Umgang mit dem .NET Framework 1.1 ein. Außer mir sind namhafte Autoren und Sprecher als Trainer bei der .NET Akademie: Christian Weyer, Holger Schwichtenberg, Bernd Marquardt und Jan Hermelink. Im November werden wir auch erstmals eine komplette Applikation über alle Tage der .NET Akademie als Beispiel behandeln, um die Technologien im Zusammenhang zu zeigen. Und noch eines kommt mit dem Herbst: dotnetpro.tv. Für die dotnetpro (www.dotnetpro.de) drehe ich jetzt monatlich ein Videointerview mit einem Experten, der ein technisches Thema erklärt. Die erste Folge wird "Zero Touch Deployment" behandeln, der Experte ist Neno Loje. Seien Sie gespannt auf die nächste dotnetpro. dotnet.tv bzw. .NET TV (www.dotnettv.de) hingegen - auch das ist neu - ruht derzeit, da es an Sponsorengeldern fehlt. Das ist sehr schade, aber muss auch nicht so bleiben. Ich hoffe, Ihnen zukünftig auch wieder .NET TV bieten zu können. Für den Augenblick wünsche ich Ihnen aber ersteinmal viel Spaß beim Lesen! Ralf Westphal Training, Coaching, Consulting & Development http://www.ralfw.de Tel +49 (0)170 3200 458 ralfw@ralfw.de Associate of thinktecture www.thinktecture.com In-depth support for software architects and developers Independent Microsoft Regional Director http://www.regionaldirectors.de Weblog: http://weblogs.asp.net/ralfw Newsletter: http://www.ralfw.de/readersdigest/index.htm .NET TV: http://www.dotnettv.de ===================================================================== Lesenswerte Artikel ------------------- :::Anwendungsarchitektur einmal anders Hexagonal Architecture http://c2.com/cgi/wiki?HexagonalArchitecture Application Architecture http://weblogs.asp.net/ralfw/category/5133.aspx Anwendungsarchitektur wird immer wichtiger, weil sich komplexe Anwendungen nicht mehr ad hoc "zusammenschrauben" lassen. Früher war es einfacher, als es weniger technologische Optionen gab. Aber heute lohnt sich das Nachdenken über Architektur. Mit dem Schlagwort "N-Tier statt C/S" ist es aber nicht getan. Ich meine, bevor man sich für N-Tier oder C/S entscheidet, sollte man eine allgemeinere Sichtweise auf Applikationsarchitekturen entwickeln. Hier sind zwei Links zu Texten, die sich damit befassen. Der erste ist schon recht alt - aber, wie ich finde - immer noch lesenswert. Der zweite verweist in mein Weblog, wo ich in einer Serie von Postings einmal versucht habe, eine veränderte Sicht auf die Anwendungsarchitektur zu entwickeln. Mein Credo: Wir müssen weg vom Denken, dass in der Mitte oder am Anfang einer Anwendung ein Fenster steht. Schreiben Sie mir gern, was Sie von meinem Ansatz halten. :::Schreiben einer portierbaren Datenzugriffsschicht http://www.microsoft.com/germany/ms/msdnbiblio/show_all.asp?siteid=600699 Wenn Sie mit mehreren Datenbanksystemen in Ihren Anwendungen leben müssen, können Sie versuchen, mit einem generischen Provider wie System.Data.OleDb zu leben. Oder kapseln Datenbankabhängigkeiten hinter einem Dienstinterface. Der Artikel zeigt dafür einen Ansatz. :::.NET Organisation des Datenzugriffs in .NET Framework-Anwendungen http://www.sigs-datacom.de/sd/publications/pub_article_show.htm?&AID=1387&TABLE=sd_article Mein Artikel zum Thema Datenbankzugriffsschicht. Er ist etwas allgemeiner gefasst als der vorstehende. :::How Microsoft Lost the API War http://www.joelonsoftware.com/articles/APIWar.html Interessantes Essays zur Frage, ob Microsoft auch in Zukunft noch so erfolgreich sein wird, wie bisher. :::An Extensive Examination of Data Structures Part 1 (An Introduction to Data Structures) http://msdn.microsoft.com/library/en-us/dv_vstechart/html/datastructures_guide.asp Part 2 (Queue, Stack and HashTable) http://msdn.microsoft.com/library/en-us/dv_vstechart/html/datastructures_guide2.asp Part 3 (Binary Trees and BST) http://msdn.microsoft.com/library/en-us/dv_vstechart/html/datastructures_guide3.asp Part 4 (Building a better Binary Search Tree) http://msdn.microsoft.com/library/en-us/dv_vstechart/html/datastructures_guide4.asp Part 5 (From Trees to Graphs) http://msdn.microsoft.com/library/en-us/dv_vstechart/html/datastructures_guide5.asp Part 6 (Effectively Representing Sets) http://msdn.microsoft.com/library/en-us/dv_vstechart/html/datastructures_guide6.asp Patterns sind in aller Munde. Aber es gibt sie nicht erst seit dem lesenswerten Buch "Entwurfsmuster" von Gamma et al. Entwurfs- oder Anti-Muster mögen neu sein. Aber eine andere Form von Mustern sind Datenstrukturen. Die Artikelserie stellt einige wichtige/nützliche Datenstrukturen jenseits von Array und Stack vor. Pragmatisch und grundlegend. :::A Skip List in C# http://www.thecodeproject.com/csharp/SkipList1.asp Und hier noch ein Artikel zu einer weiteren Datenstruktur, die mir bei der Implementation der Lösung zum ersten dotnetpro Contest geholfen hat. Eine Skip List ist eine Alternative zu binären Bäumen - genauso schnell bzw. schneller, aber einfacher zu implementieren. :::COM+/Enterprise Service Components are not a legacy technology http://www.softinsight.com/bnoyes/PermaLink.aspx?guid=4cefd3e8-7e8b-4df0-8d48-a5bc135b792d Als der .NET Fx erstmals vorgestellt wurde, haben viele Entwickler .NET Remoting gesehen und gedacht: Endlich! Endlich wird das Verteilen von Anwendungen einfacher, weil COM+ überflüssig wird. Andere haben sich gefragt, warum Microsoft COM+ nur in ".NET Enterprise Services" umbenannt hat, statt es gleich durch einen reinen .NET Applikationsserver zu ersetzen. Der Artikel gibt Hinweise darauf, warum COM+/.NET ES weiterhin Sinn macht. :::.NET Remoting Use-Cases and Best Practices http://www.ingorammer.com/RemotingFAQ/RemotingUseCases.html Wer sich schon mal die Frage gestellt hat, wann Remoting am besten einzusetzen wäre im Vergleich zu COM+ oder WebServices, der findet im Artikel von Ingo Rammer - einem meiner Kollegen bei www.thinktecture.com - einen guten Leitfaden. :::Underpinnings of the Session State Implementation in ASP.NET http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/ASPNetSessionState.asp Die Zustandslosigkeit des UI einer ASP.NET-Anwendung unterscheidet sie von WinForms-Applikationen. Überwinden können Sie diesen Unterschied mit Session State. Dino Esposito beleuchtet die Details dieser Technologie. :::ASP.NET Caching: Techniques and Best Practices http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/aspnet-cachingtechniquesbestpract.asp Die Performance möchte man immer steigern. Gerade bei Web-Anwendungen ist bei hohem Benutzeraufkommen wichtig. "Dickere Server" oder optimierter Code sind ein Weg dahin. Ein anderer: Dynamische Seiten nicht immer wieder für jeden Anwender dynamisch aufbauen zu lassen. Viel schneller ist es, die Seiten so lang wie möglich unverändert zu lassen und aus einem Cache zu servieren. Der Artikel fasst knapp und übersichtlich zusammen, wie das bei ASP.NET geht. Lesenswerte Bücher ------------------ Diesmal betreffen alle Buchempfehlungen das Thema Unit Testing. Je mehr ich mich damit beschäftige, desto wichtiger erscheint es mir. Und im Grunde ist es ja auch einfach. Das wichtigste Tool dafür ist NUnit (http://www.nunit.org/) oder eine seiner Alternativen. Pragmatische Einführungen in die Disziplin des Unit Testing bieten dann diese Bücher: :::Hunt & Thomas, Pragmatic Unit Testing In C sharp With NUnit http://www.amazon.de/exec/obidos/ASIN/0974514020/ralfwestphal-21 :::Newkirk, Test-Driven Development in Microsoft .NET http://www.amazon.de/exec/obidos/ASIN/0735619484/ralfwestphalh-21 :::Jeffries, Extreme Programming Adventures in C sharp http://www.amazon.de/exec/obidos/ASIN/0735619492/ralfwestphalh-21 Eine allgemeine Einführung vom Extreme Programming-Guru Kent Beck bietet: :::Beck, Test Driven Development by Example http://www.amazon.de/exec/obidos/ASIN/0321146530/ralfwestphalh-21 Interessante Links ------------------ :::Vergessen Sie auch immer, wie Connection Strings für verschiedene Datenquellen aufgebaut sind? Diese Seite hilft Ihnen aus der Klemme: http://www.connectionstrings.com/ :::Wollen Sie mal einen Blick hinter die Kulissen bei Microsoft in den USA werfen? Dann schalten Sie Channel 9 ein. Dort gibt es viele Videos, die die Menschen hinter den Technologien und dem Marketing von Microsoft zeigen: http://channel9.msdn.com/ :::An Datenbanksystemen kann man immer etwas aussetzen. Die Jet Engine ist zwar gratis, aber "bringt es nicht immer". MSDE ist auch gratis, aber schwer zu installieren und hat Limitationen. SQL Server ist leistungsfähig, aber oft zu teuer. Mir hat ein neues Produkt gut gefallen, dass komplett für den .NET Fx in C# entwickelt wurde: VistaDB. Es kombiniert einen echten SQL-basierten DB Server mit einer kleinen Engine. Einfach mal anschauen... http://www.vistadb.net Web Sites von Magazinen für .NET Entwickler ------------------------------------------- ASP.NET Professional, http://www.aspnet-professional.de/ CODE Magazine, http://www.code-magazine.com (engl.) DNJ, http://www.dnjonline.com/ (engl.) dot.net Magazin, http://www.dotnet-magazin.de dotnetpro, http://www.dotnetpro.de/ MSDN Magazine, http://msdn.microsoft.com/msdnmag/ (engl.) .NET Developer´s Journal, http://www.sys-con.com/dotnet/index.cfm (engl.) Windows Developer Network, http://www.windevnet.com (engl.) ================== 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 in unregelmäßigen Abständen mehrfach pro Jahr.