Startseite > Archiv > Artikel von Ralf Westphal

Artikel von Ralf Westphal

Als Abonnent haben Sie vollen Zugriff auf alle Artikel im Archiv. Zum Download eines Artikels und/oder der zugehörigen Quelltexte, klicken Sie den gewünschten Artikel einfach an.


Autonom statt Ressource

(dotnetpro 09/2010, Seite 54)
Wie lauten die beiden wichtigsten und zugleich schwierigsten Fragen in Bezug auf Softwareteams? "Woher bekommen wir wirklich gute Entwickler?“ Und: „Woher bekommen wir wirklich gute Entwickler?“

Staffel-Ende mit Happy End

(dotnetpro 09/2010, Seite 132)
Am Ende einer Fernsehserie mündet alles in das Gefühlstaumel-Happy-End. Wo Hollywood vorlegt, will dotnetpro nicht zurückstehen. Aus einer Brownfield-Anwendung wird Software, die nach den Prinzipien des Clean Code Developers aufgebaut ist.

Nicht nur außen schön

(dotnetpro 08/2010, Seite 126)
Was haben ein Topmodel und ein Blockschaltbild gemein? Beide schauen toll aus. Während aber in dem einen noch Intelligenz, Gefühl undWissen stecken können, bleibt das andere eine Sammlung von Farbflächen ohne ein Mehr an Information. Schaltpläne mit Event-Based Components bieten hier wesentlich mehr Zusammenhänge.

Kulturfrühstück

(dotnetpro 08/2010, Seite 52)
Neulich in einem Entwicklerteam: Einmütig wird entschieden, in Zukunft agil zu entwickeln. Alle sind motiviert. Der Chef hat seinen Segen gegeben.

Wanted! Feedback für Evolvierbarkeit

(dotnetpro 07/2010, Seite 64)
Erinnern Sie sich noch, wie Sie laufen gelernt haben?Na gut, vielleicht ist das ein bisschen zu lange her.Wie steht es aber mit dem Fahrradfahren? Oder dem Schwimmen? Oder dem Autofahren? Egal.

Stecker mit System

(dotnetpro 07/2010, Seite 126)
Anonym ist in. Zumindest unter Komponenten. Denn wenn keine Komponente die andere kennt, können sie leicht ausgetauscht werden. Damit sind sie testbar, wiederverwendbar und aggregierbar. Und der Theorie lässt Ralf Westphal Praxis folgen: Die Beispiel-Anwendung dreht Wörter um, ganz so, als wären die Buchstaben unabhängig.

Zusammenstecken – funktioniert

(dotnetpro 06/2010, Seite 132)
Wer Hardwareplatinen zusammenbastelt, hat es mit diskreten Bauteilen zu tun: Kondensatoren, Transistoren, ICs und Widerstände.Warum gibt es solche Bauteile nicht auch in der Software? „Gibt es“, sagt RalfWestphal und führt Sie ein in die Welt der Event-Based Components.

Wie viel Matsch ergibt ein Brownfield?

(dotnetpro 06/2010, Seite 56)
Da stehen Sie nun auf einem Haufen Sand, heben ein Sandkörnchen auf und pusten es weg. Worauf stehen Sie dann? Immer noch auf einem Haufen Sand.

Die Gegend auskundschaften

(dotnetpro 05/2010, Seite 124)
Würden Sie sich als Mensch mit Persönlichkeitsspaltung bezeichnen? Wenn ja, haben Sie die besten Voraussetzungen, durchgängig sauberen Code zu schreiben. Denn Sie schlüpfen je nach Anforderung in die Rolle des Feature-Entwicklers oder die des Clean Coders. Für alle anderen gilt: Lernen, worauf Sie künftig achten müssen. Diesmal am Beispiel einer verteilten Lesezeichenanwendung.

Am Ball bleiben

(dotnetpro 05/2010, Seite 60)
Fühlen Sie sich vertraut mit IEnumerable und yield return? Wie steht es mit Lambda-Ausdrücken? Beide sind .NET-Features, die es seit Jahren gibt. Also,was meinen Sie, wann nützt yield return?

Vom Nutzen des schnell Klickbaren

(dotnetpro 04/2010, Seite 48)
Er ist in Verruf geraten, der Programmierer, der mit einem RAD-Werkzeug zack-zack ein Programm raushaut.

Attraktiv möbliert

(dotnetpro 04/2010, Seite 124)
Eben mal ein paar Objekte wegschreiben und per Schlüssel wiederholen: Lassen Sie in so einem Fall die relationale Datenbankkiste nur ja im Keller stehen. Dafür gibt es Lösungen wie das Lounge Repository. Wie es entstanden ist und wie es funktioniert? Bitte treten Sie ein, wir führen Sie durch die Lounge und erzählen ihre Entstehungsgeschichte.

Parasit Support

(dotnetpro 03/2010, Seite 48)
Menschen verändern sich wohl nur, wenn sie Widerstand begegnen. Erst wenn sie auf ihrem Lebensweg an eine Wand stoßen, ändern sie ihren Kurs. Und selbst dann nicht unbedingt.

Chill out

(dotnetpro 03/2010, Seite 10)
Sie hören „Persistenz“ und denken „relationales Datenbanksystem und O/R-Mapper“. Für viele Einsatzszenarien ist das richtig so.Aber es geht auch viel einfacher. Im Lounge Repository legen Sie einfach Objekte ab. Im Dateisystem.MitWiederkehr.

Software, meisterhaft

(dotnetpro 02/2010, Seite 40)
Wäre es nicht ideal, wenn Sie sich einen neuen Entwickler für Ihr Team im Laden aussuchen könnten? Volle Regale, an denen Sie als Teamleiter oder Geschäftsführer vorbeischlendern.

Alles verstanden?

(dotnetpro 02/2010, Seite 130)
Idealerweise sagt der Name einer Funktion, was sie tut oder was sie zurückgibt. Bei einem sogenannten Fluent Interface wird das wesentlich weiter getrieben:Mehrere aneinander gekettete Methodenaufrufe formen einen Satz, der sowohl für Menschen als auch für den Compiler gut verständlich ist.

Lernen von anderen

(dotnetpro 01/2010, Seite 124)
Wer mitreden will über automatisiertes Testen oder testorientiertes Entwickeln, muss es selbst ausprobieren. dotnetpro-Autor Golo Roden hat sich dieser Übung unterzogen und kann nun mitreden. Sein Beispiel gerät zu einem Lehrstück, wie testorientiertes Entwickeln in Angriff zu nehmen ist.

Milieustudien

(dotnetpro 01/2010, Seite 48)
Im Gesundheitswesen gilt: „Der Erreger ist nichts, das Milieu ist alles.“ Werden also zum Beispiel Bakterien im Magen mit Antibiotika behandelt, so mag das zunächst Hilfe gegen akute Beschwerden bringen.

Neues aus dem Softwareuniversum

(dotnetpro 12/2009, Seite 110)
Nicht nur das reale Universum expandiert, sondern auch das Softwareuniversum. Nun hat es die Ebene der Anwendungsarchitektur erreicht. Der Effekt: Architektur abstrahiert, immer mehr weg von konkreter Technik, hin zu echten logischen Konzepten.

Vive la différence!

(dotnetpro 12/2009, Seite 62)
Werner Heisenberg sagte: „Die fruchtbarsten Entwicklungen haben sich überall dort ergeben, o zwei unterschiedliche Arten des Denkens zusammentrafen.“ Und schon Heraklit bemerkte: „Das Entgegengesetzte wirkt zusammen, aus dem Verschiedenen ergibt sich die schönste Harmonie.“

Ein Sumpf wird grün

(dotnetpro 11/2009, Seite 130)
Eine bestehende monolithische Anwendung mit Unit-Tests nachzurüsten ist möglich, wenn auch kein Spaziergang. Es besteht kein Grund, davor Angst zu haben. Ein kleines Programm zum Wortezählen hat gezeigt, wie der Weg dorthin mit Integrationstests beginnt und über aufgetrennten Code führt. Das Ziel: Separate Komponenten und Kontrakte – und schon sind Unit-Tests möglich.

Verflixte Sucht

(dotnetpro 11/2009, Seite 52)
Sucht ist, wenn man ohne äußeren Zwang nicht anders kann. So würde ich zumindest erst mal laienhaft kurz und knapp formulieren.

Den Sumpf trockenlegen

(dotnetpro 10/2009, Seite 130)
Wer Software schreibt, sollte sie sofort auch selbst testen. Aber nicht irgendwie, sondern automatisiert mit Unit-Tests. Das ist keine wirklich neue Erkenntnis. Dennoch ist solches Vorgehen immer noch keine selbstverständliche Praxis. Da stellt sich die Frage: Warum nicht?

Kontrolle ist gut, Vertrauen ist besser

(dotnetpro 10/2009, Seite 44)
Neuerdings gibt es Fußgängerampeln, die anzeigen, in wie vielen Sekunden sie auf Grün schalten. Haben Sie die schon einmal gesehen? 28, 27, 26 … 5, 4, 3, 2, 1 − gehen! Sozusagen ein Fortschrittsbalken für Fußgänger.

Schamlos schemalos

(dotnetpro 09/2009, Seite 64)
Was ist die Wurzel aus sieben? Meine Antwort ist: etwas weniger als drei. Wie finden Sie das? Wie lautet Ihre Antwort? Ist sie 2,64? Oder halten Sie 2,6457 für richtiger?

Geliebter Beruf

(dotnetpro 09/2009, Seite 13)
Sie lieben Microsoft .NET? Wie sieht es aber mit Ihrem Job aus? Gibt es zwischen ihm und Ihnen eine innige, wohlwollende Beziehung? Oder muss man sie mehr als Hassliebe bezeichnen? ProDevCollege und dotnetpro sind dieser Frage nachgegangen. Ralf Westphal berichtet über die Ergebnisse.

Doppelt genäht hält besser

(dotnetpro 09/2009, Seite 130)
Wer seine Software als Komponenten entwickelt, hat beim Outsourcing die Nase vorn. Denn eine solide Komponentenorientierung stellt alle Instrumente zur Verfügung, um Dienstleister so genau wie möglich zu beauftragen – damit das fertige Produkt so aussieht, wie es gedacht war, und sich Korrekturen minimieren.

Entwickler selbst backen

(dotnetpro 08/2009, Seite 52)
Wann ist zu Ihrem Team eigentlich das letzte Mal ein gut ausgebildeter .NET-Entwickler gestoßen? Ja, ich meine einen Entwickler, der einfach fit mit dem .NET Framework ist, solide OOP-Kenntnisse mitbringt und darüber hinaus überzeugt Clean Code entwickelt (www.cleancode-developer.de).

VIP-Tipp: Unbedingt lesen!

(dotnetpro 08/2009, Seite 45)
Im VIP-Tipp stellt ein Experte Buchtitel vor, die er persönlich für besonders lesenswert hält. Der VIP-Tipp soll als Entscheidungshilfe für Softwareentwickler bei der Auswahl der passenden Fach lektüre dienen. Die Aktion ist eine Kooperation zwischen der Fachbuchhandlung Lehmanns (www.lob.de/viptip), dem Seminar - anbieter Professional Developer College (www.prodevcollege.de) und der dotnetpro (www.dotnetpro.de).

Schnuppern am Application Space - Teil 2

(dotnetpro 08/2009, Seite 124)
Mit seinem Heckle-Service hat Christian Weyer eine Beispielanwendung für Windows Azure vorgestellt. Ralf Westphal hat einen sehr ähnlichen Zwischenrufdienst mithilfe des Application Space konzipiert. Nun werden die Clients für Referent und Teilnehmer implementiert.

In der Höhle

(dotnetpro 07/2009, Seite 56)
Es gibt so Antworten, die nerven mich. Die sind nicht per se falsch, aber auch nicht per se richtig. Verstehen Sie, was ich meine? Sie sind eben in manchen Zusammenhängen passend. Ein Beispiel: „Das haben unsere Kunden nicht gefordert.“

Appspace im Einsatz

(dotnetpro 07/2009, Seite 131)
Mit seinem Heckle-Service hat Christian Weyer eine Beispielanwendung für Windows Azure vorgestellt. Ralf Westphal konzipiert hier einen sehr ähnlichen Zwischenrufdienst mithilfe des Application Space.

Appspace Grundlagen

(dotnetpro 07/2009, Seite 124)
Es geht auch einfach. Komponenten über die Weiten des Internets miteinander kommunizieren zu lassen, muss nicht schwierig sein. Das Baukastensystem Application Space vereinfacht vielschichtige Aufgaben.

Gut gezielt ist halb getroffen

(dotnetpro 06/2009, Seite 58)
Heute frage ich mal ganz direkt: Was ist eigentlich Ihr Ziel bei der Softwareentwicklung? Mit welchem Ziel arbeiten Sie an Ihrem Code? Haben Sie eine Antwort parat?

Kolumne

(dotnetpro 06/2009, Seite 126)
Parallelverarbeitung können Sie auch anders implementieren als mit den üblichen Threads. Mit dem richtigen Framework können Sie einfach Aufgaben für Dienste zur Ausführung „einplanen“, indem Sie ihnen Nachrichten schicken. Die Concurrency and Coordination Runtime von Microsoft macht das möglich.

Im Westen nichts Übliches

(dotnetpro 05/2009, Seite 60)
Auszug aus einem Software-Dienstleistungsvertrag: „§3 Gewährleistung: Die Auftragnehmerin wird die Leistungen nach diesem Vertrag auf der Grundlage der anerkannten Regeln und dem ihr bekannten Stand der Technik unter Beachtung der branchenüblichen Sorgfalt erbringen, […]“

Alles fließt koordiniert

(dotnetpro 05/2009, Seite 120)
Mit Microsofts Concurrency Coordination Runtime lassen sich die Details des Multithreadings verbergen. Sequenzielle Prozessschritte können Sie über Ports miteinander koppeln und dadurch parallelisierbar machen.

Kanalfahrt ohne Hindernisse

(dotnetpro 04/2009, Seite 124)
Langsam dämmert die Erkenntnis: Softwareentwicklung erfordert künftig einen neuen Ansatz: den der Parallelverarbeitung. Klingt kompliziert, muss es aber nicht sein. Microsoft bietet einen Mechanismus, der das Entwickeln mit Threads abstrahiert. Dazu gehört aber auch ein neuer Denkansatz seitens des Entwicklers.

Gedanken anlässlich der 50. Sandbox

(dotnetpro 04/2009, Seite 58)
Wer hätte das gedacht? In diesem Heft finden Sie die 50. Ausgabe meiner Sandbox-Serie.

Die Unmöglichkeit zu schätzen

(dotnetpro 04/2009, Seite 56)
Lassen Sie mich passend zu Ostern die Frage stellen: Wie lange brauchen Sie eigentlich, um ein Osterei zu bemalen? Wie lange für eine Farbe, wie lange für ein Blümchen- und Häschen-Muster? Darauf sollten Sie schnell Antworten finden können.

PISA für Entwickler

(dotnetpro 03/2009, Seite 131)
Nach den ersten stürmischen Jahren ihres überschaubaren Lebens ist die Softwareentwicklung an einem Punkt angekommen, an dem sie und ihre Protagonisten, die Entwickler, erst einmal innehalten und sich auf ein Wertesystem besinnen sollten. Das meint zumindest dotnetpro-Philosoph Ralf Westphal und plädiert für den „Clean Code Developer“.

Wider die blinde Integration

(dotnetpro 03/2009, Seite 48)
Microsofts Technologien sind gut verzahnt; da kann man nicht meckern. VSTO ist ein Wunder an Integrationsleistung: Eine „Uralt-Technologie“ wie Word schmiegt sich in etwas Moderneres wie Visual Studio ein und kann mit dem modernsten .NET 3.5 gesteuert werden.

Grundlagen skalierbarer Parallelverarbeitung

(dotnetpro 02/2009, Seite 128)
Parallelverarbeitung muss nicht schwierig sein. Zwar gilt es, bei der Koordinierung gleichzeitiger Aktivitäten mehr zu bedenken als bei der üblichen synchronen sequenziellen Verarbeitung. Doch davon sollten Sie sich nicht ins Bockshorn jagen lassen.

Auf zu mehr Professionalität

(dotnetpro 02/2009, Seite 48)
Wann ist ein Softwareentwickler eigentlich ein professioneller Softwareentwickler? Diese Frage treibt mich in der einen oder anderen Weise schon länger um.

Die Wahrheit beginnt zu zweit

(dotnetpro 01/2009, Seite 54)
Wie können wir eigentlich wissen, was richtig ist? Was ist so ganz allgemein richtig? Sicherlich sollten wir bei der Softwareentwicklung zeitlose, fundamentale Prinzipien ebenso berücksichtigen wie technologiespezifische Best Practices. Oder was ist in Ihrem konkreten Einzelfall richtig?

Ein Framework zum Umgang mit Parallelverarbeitung

(dotnetpro 01/2009, Seite 128)
Die Zukunft der Softwareentwicklung liegt in der Parallelverarbeitung – daran führt früher oder später kein Weg vorbei. Nur wenn das Potenzial jeder Anwendung in dieser Hinsicht erkannt und ausgeschöpft wird, kann sie von der wachsenden Zahl an Prozessorkernen profitieren.

Unemotionale Entscheidungen

(dotnetpro 12/2008, Seite 52)
Die aktuelle globale Finanzkrise erinnert mich daran, dass ich vor Jahren auch einmal in die Spekulationswelt hineingeschnuppert hatte

Eine Architektur für Legacy-Code, Teil 4

(dotnetpro 12/2008, Seite 126)
Das Migrieren einer bestehenden Anwendung kann eine spannende Sache sein – wenn Sie es richtig angehen. Im letzten Teil der Serie führen Sie die Erkenntnisse der Analyse der Anwendung zusammen und gießen sie zu einem neuen Innenleben für die Software. Dabei machen Sie diese gleich fit für künftige Anpassungen.

Übung macht den Meister

(dotnetpro 11/2008, Seite 38)
Heute schon Programmieren geübt? Damit Sie mich richtig verstehen: Ich meine nicht, ob Sie heute schon programmiert haben.

Eine Architektur für Legacy-Code, Teil 3

(dotnetpro 11/2008, Seite 118)
Den Legacy-Code einer bestehenden Anwendung zu durchforsten, um ihn für Erweiterungen oder eine neue .NETVersion vorzubereiten: wie öde! Oder auch nicht – wenn Sie richtig dabei vorgehen und sich nicht in Codedetails verzetteln. Mit den entsprechenden Werkzeugen ist es kein Problem, sich unbekanntem Code zu nähern.

Die Zukunft ist asynchron

(dotnetpro 10/2008, Seite 121)
Zwischen einem Flaschenzug und einer Computeranwendung besteht prinzipiell kein Unterschied. Beide setzen eine Kette von synchronisierten Aktionen in Gang. Doch die Entwicklung der Hardware hin zu Mehrfachprozessoren verlangt von der Softwareentwicklung eine neue Sicht auf Funktionen – nämlich eine asynchrone.

Kommt es immer darauf an?

(dotnetpro 10/2008, Seite 68)
Sollte der serverseitige Programmcode in einer verteilten Software zustandslos sein? Sollten Sie Ihre relationalen Daten immer normalisieren? Sollten die Passwörter in einer Benutzerdatenbank normalerweise als Hash-Werte abgelegt werden?

Die individuelle Architektur

(dotnetpro 09/2008, Seite 123)
Architektur ist wesentlich mehr als das Aufbauen von Anwendungsschichten. Denn die Anforderungen sind für jede Anwendung anders. Ralf Westphal, Content Manager der prio.conference 2008, erklärt im Interview, was die Teilnehmer auf der Konferenz lernen können.

Aus dem Gestern ins Morgen

(dotnetpro 09/2008, Seite 64)
Dass bei Software die Geschwindigkeit eine große Rolle spielt, ist ja nichts Neues. Nun sind aber neuerdings auch noch Flexibilität und Skalierbarkeit gefragt. Software soll nicht nur schnell laufen, sondern ich auch ständig wandelnden Anforderungen leicht anpassen lassen und natürlich stetig steigende Lasten schultern – ohne zu murren. So wünschen es sich Kunden und Chefs allerorts. Warum auch nicht?

Eine Architektur für Legacy-Code, Teil 2

(dotnetpro 09/2008, Seite 124)
Legacy-Code muss nicht vom Mainframe stammen. Auch .NET-1.0-Code gilt bereits als „Vermächtnis“ von früher. Gehen Sie bei einer Migration systematisch vor! Erarbeiten Sie sich die Problemdomäne. Entwerfen Sie den SOLL-Zustand. Dann können Sie damit beginnen, alten Code Stück für Stück iterativ vom IST zum SOLL zu übertragen.

Sag, wie hältst Du es mit

(dotnetpro 08/2008, Seite 60)
Passiert es Ihnen auch immer wieder, dass mehr oder weniger gute Bekannte das Gespräch mit „Du verstehst doch etwas von Computern ...“ in eine nicht immer spannende Richtung drehen?

Eine Architektur für Legacy-Code

(dotnetpro 08/2008, Seite 132)
Sie sollen eine Software auf das aktuelle .NET Framework 3.5 migrieren. Dabei soll das Projekt auch architektonisch fit für die Zukunft werden. Was für ein öder Job, denken Sie? Alten Code durchforsten und irgendwie umbauen? dotnetpro rät: Machen Sie's richtig. Denn dann macht es auch Spaß!

Der Preis ist heiß

(dotnetpro 07/2008, Seite 46)
Softwareentwicklung könnte so schön sein, wenn es da nicht den Chef und den Vertrieb gäbe.

Methodik des Softwarebaus

(dotnetpro 07/2008, Seite 136)
Das Entwickeln von Software braucht mehr Regeln. Diese These vertritt dotnetpro-Autor Ralf Westphal und hat sich aufgemacht, diesen Missstand zu beheben. Denn wo Regeln herrschen, muss sich niemand den Kopf zerbrechen und hat Zeit und Muße für die anwendungsspezifischen Probleme.

Lernen durch Erklären

(dotnetpro 06/2008, Seite 38)
Heute möchte ich Ihnen ver- raten, warum ich Facharti- kel schreibe und Vorträge auf Konferenzen halte. Aber kei- ne Sorge, ich werde Sie nicht mit biografischen Details oder frühkindlichen Prägun- gen langweilen. Ich hoffe vielmehr, dass es Ihnen hilft, Probleme leichter zu lösen.

Kolumne: Konventionen beim Softwareentwurf: Microkernel

(dotnetpro 06/2008, Seite 126)
Wie beim Hausbau braucht auch die Entwicklung von Software Konventionen, um Qualität erreichen zu können. Leider gibt es derzeit davon zu wenig. Mehr Konventionen würden den Entwickler besser leiten, ihm Arbeit und Entscheidungen abnehmen sowie mehr Zeit verschaffen, sich um das eigentliche Problemfeld der Software zu kümmern.

Visualisierung von Noten

(dotnetpro 06/2008, Seite 61)
Zu jedem ordentlichen Softwareprojekt gehört ein Review. Man tritt zurück vom Implementierungsgeschäft und betrachtet das Ganze: Was ist gut gelaufen? Was ist schlecht gelaufen? Was gilt es hervorzuheben? Auch für das Mustervisualisierungsprogramm dnpPatViz soll noch ein Review erfolgen. Hier einige Schlaglichter davon.

Sandbox

(dotnetpro 05/2008, Seite 64)
Schon Freddy Quinn sagte: „Man ist so alt, wie man sich fühlt.“ Und Udo Jürgens’ „Mit 66 Jahren“ wurde nun sogar durch ein Musical in Hamburg geadelt.

Microsoft Microkernel Unity im Einsatz

(dotnetpro 05/2008, Seite 136)
Alle wollen sich über Social Networking Sites vernetzen. Und in diesen Zeiten propagiert dotnetpro genau das Gegenteil: Entkopplung ist angesagt. Aber nicht ohne Grund. Bessere Testbarkeit und mehr Flexibilität sind die Vorteile. Das Framework Unity von Microsoft hilft Ihnen dabei und dotnetpro hilft Ihnen dabei, ihn richtig einzusetzen.

Architektur-Kolumne mit Aufmacher

(dotnetpro 04/2008, Seite 136)
Aus einer Handvoll Kundenanforderungen folgt die beste Architektur aller Zeiten. Ohne Zweifel? Ohne Alternativen? Nein: Es gibt keine beste Architektur, denn diese hängt nicht zuletzt vom zugrunde liegenden Wertesystem ab. Und auf den Geschmack kommt es dann auch noch an.

Sandbox

(dotnetpro 04/2008, Seite 71)
So haben Sie Ihre Vorgesetzten gerne: getrieben von dem Wunsch nach Erfolg. Aus diesem Grund verlassen Sie sich auf Erfolgsmodelle: Was einmal geklappt hat, wird auch beim nächsten Mal zum gewünschten Ergebnis führen. Und falls nicht, dann könnte es sein, dass Sie es noch nicht richtig angewandt haben, das Erfolgsmodell. Dann probieren Sie es am besten einfach nochmal, mit mehr Energie. Motto: Mehr vom Selben kann nicht schaden. In Politik und Famili- enleben ist das zumindest ein viel befolgtes Rezept: Wenn die Zahl der Steuersünder steigt, dann erlässt man am besten weitere Steuergesetze.

Grundlagen transaktionaler Ressourcen

(dotnetpro 04/2008, Seite 28)
Alle kennen sie, alle nutzen sie: Transaktionen. Aber wie funktionieren Transaktionen, und wie kann ihr Nutzen über die Datenbankprogrammierung hinaus ausgedehnt werden? Ralf Westphal erklärt, wie Sie transaktionale Ressourcen selbst implementieren.

Wertesystem als Grundlage

(dotnetpro 03/2008, Seite 120)
Was man nicht messen kann, kann man auch nicht kontrollieren. Zur Steuerung gehört aber noch der Plan, wie die Messwerte im Idealfall aussehen sollen. Ein Wertesystem also. Dass es so etwas auch für die Architektur geben muss, dafür plädiert Ralf Westphal.

Spezialisiert im Netz

(dotnetpro 03/2008, Seite 45)
Dass mich das Thema Spezialisierung umtreibt, haben Sie bestimmt bemerkt, wenn Sie diese Kolumne schon einmal gelesen haben. Meine Meinung mögen Sie in dieser Hinsicht für gefestigt halten oder für realitätsfern oder gar engstirnig. Aber ich bin weit davon entfernt, das Thema für mich geklärt zu haben. Mein Gefühl sagt mir, dass Spezialisierung Not tut – aber in Gesprächen merke ich auch, dass meine Argumente noch nicht knackig genug sind. Das liegt daran, glaube ich, dass ich das Thema noch nicht gut genug verstehe.

Mustererkennung visualisieren: Die grafische Umsetzung

(dotnetpro 03/2008, Seite 135)
dnpPatViz, das Mustererkennungsprogramm für jegliche Art von textlich erfassbaren Mustern, gedeiht. Nun fehlt für die nächste Version nur noch die grafische Anzeige von Mustern in Form von Bögen. Dazu erhält die Software noch ein UserControl, das diese Aufgabe übernimmt – und dazu noch einen FileAdapter für Midi-Daten.

dotnetpro.tv

(dotnetpro 02/2008, Seite 36)
dotnetpro.tv ist der Videokanal für Software entwickler. Sein Sende - platz ist die Heft-CD der dotnetpro. Macher Ralf Westphal inter viewt darin Experten zu Technologiethemen im Umfeld von .NET.

Mustererkennung visualisieren: Erkennung implementieren

(dotnetpro 02/2008, Seite 134)
Nochmal Mustererkennung: zur Vertiefung des ungewohnten Konzepts der Pile-Datenstrukturen und zur Implementierung des Mechanismus. Außerdem stellt sich heraus, dass die Architektur vielleicht doch noch verändert werden muss. Doch damit steht Version 1 des dotnetpro-Projekts einer Software zur Visualisierung von Mustervorkommen endlich.

Fragen Hilft

(dotnetpro 01/2008, Seite 75)
Wissen Sie noch, wie es beim letzten Mal war, als Sie eine Bewerbung geschrieben haben? Können Sie sich noch an die Aufregung erinnern, sich präsentieren zu müssen? War das ein positives Gefühl, haben Sie sich angespornt und sicher gefühlt?

dotnetpro.TV Automatischer Build, Teil 2

(dotnetpro 01/2008, Seite 50)
Nur in wenigen Softwareteams ist ein formalisierter Buildprozess eine Selbstverständlichkeit. Das Wissen darüber befindet sich häufig nur in den Köpfen weniger Mitarbeiter, die für das Bauen und Ausliefern zuständig sind.

Mustererkennung visualisieren: Die Erkennung konzipieren

(dotnetpro 01/2008, Seite 136)
Der Mensch erkennt Muster sehr einfach, wenn sie sich grafisch aufbereitet präsentieren. Das dotnetpro-Projekt dnpPatViz entwickelt ein entsprechendes Programm für beliebige Signalquellen. Diesmal geht es um die Implementierung der eigentlichen Mustererkennung.

Eiskalter Schauer

(dotnetpro 12/2007, Seite 53)
Es ist ein bitterkalter Wintermorgen. Sie kratzen das Eis vom Wagen, steigen ein und drehen den Zündschlüssel, aber der Wagen springt nicht an. Sie bleiben ruhig, versuchen es noch einmal. Ohne Erfolg. Sie werden ungeduldig und denken das erste Mal daran, wie Sie auch ohne Auto zur Arbeit kommen könnten. Doch der Wagen lässt sich nicht davon beeindrucken.

dotnetpro.tv

(dotnetpro 12/2007, Seite 46)
dotnetpro.tv ist der Videokanal für Software entwickler. Sein Sende - platz ist die Heft-CD der dotnetpro. Macher Ralf Westphal interviewt darin Experten zu Technologiethemen im Umfeld von .NET. Das Thema diesmal:Automatischer Build, Teil 1

Das bringt 2008

(dotnetpro 12/2007, Seite 12)
Ist es nicht untechnisch, sich über das Morgen Gedanken zu machen? Egal. dotnetpro macht es trotzdem. dotnetpro hat Experten befragt, was ihrer Meinung nach das Morgen für .NET-Entwickler bringt. So viel schon mal vorweg: Die Zukunft ist oberflächlich.

Mustererkennung visualisieren

(dotnetpro 12/2007, Seite 136)
Muster helfen, die Welt zu erkennen. Deshalb spielen sie eine wichtige Rolle, egal ob in der Sprache, beim Hören von Musik, in der Kunst oder Informatik. In eine visuelle Darstellung gebracht, lassen sie sich sehr viel leichter erkennen – beispielsweise mit Bögen wie in der Anwendung The Shape of Song.

Muskelspiele

(dotnetpro 11/2007, Seite 49)
Kundenkontakt ist in! Das ist eine der Errungenschaften der agilen Vorgehensmodelle wie XP. Sie propagieren, dass Entwickler möglichst nah am Kunden operieren sollen, um Informationsverlust durch „Stille Post“-Spiele über Hierarchieebenen hinweg oder durch Abteilungswände hindurch zu vermeiden.

dotnetpro.tv

(dotnetpro 11/2007, Seite 42)
Grenzenlose Kommunikation mit den BizTalk Services, Teil 2

Das AOP-Framework PostSharp in der Praxis

(dotnetpro 11/2007, Seite 138)
Der Post-Compiler PostSharp kann Assemblies nach der Kompilierung „veredeln“, indem er sie um Code erweitert. Mithilfe seines AOP-Frameworks Laos ermöglicht er die Implementierung eigener Aspekte und erlaubt das aspektorientierte Programmieren unter .NET.

Aspektorientierte Programmierung mit .NET

(dotnetpro 10/2007, Seite 136)
Das Hauptprogramm ist ein Parameter des Aspekts. Verstehen Sie nicht? Dann lesen Sie diesen Artikel. Aspekte werden oft nicht aufgerufen, sondern rufen ihrerseits auf. Sie umschließen den eigentlichen, funktionalen Code. Wenn man es richtig anstellt, werden Aspekte aber nahezu unsichtbar und ermöglichen dem Entwickler die Konzentration auf den funktionalen Code. Dafür gibt es mehrere Möglichkeiten. Achtung: Mitdenken unbedingt erforderlich!

Polyphone Softwareentwicklung

(dotnetpro 10/2007, Seite 73)
Steigende Komplexität fordert Widerstand heraus. Ein Beispiel: Die Geschichte der westlichen Musik hat ihre Wurzeln in einstimmigen, das heißt monophonen kirchlichen Gesängen, von denen die Gregorianischen Choräle noch heute einen Eindruck vermitteln.

Grenzenlose Kommunikation mit den BizTalk Services

(dotnetpro 10/2007, Seite 58)
Auch wenn das Schlagwort des Enterprise Service Bus (ESB) aus der SOA-Welt zu häufig in allen erdenklichen Kontexten in den Ring geschickt wird, sind einige der Basisideen durchaus gut. Mit einem ESB kann beispielsweise verhindert werden, dass zu viele Services direkt mit anderen Services kommunizieren. Dies wirft nämlich die Problematik auf, dass jeder Service jeden anderen genau kennen muss und vor allem genau die „technische Sprache“ sprechen muss wie die zu kontaktierenden Dienste.

prio Interview

(dotnetpro 10/2007, Seite 12)
Interview mit Ralf Westphal, Content Manager der prio conference

Forsches Forschen

(dotnetpro 09/2007, Seite 57)
Neulich beim „Rhetoriktraining für Softwareprofis“ des Professional Developer College (www.prodevcollege. de) ist mir etwas klar geworden. Ein Teilnehmer des Seminars hielt seinen Abschlussvortrag zum Thema „Software global effizient mit abschätzbarem Budget entwickeln“ und ließ in mir eine ganze Scheinwerferbatterie aufgehen.

dotnetpro.tv

(dotnetpro 09/2007, Seite 46)
ADO.NET Sync Services Viele Anwendungen müssen mit Daten aus einer Datenbank arbeiten, ohne ständig auf diese zugreifen zu können. Denken Sie zum Beispiel an eine Software für einen Außendienstmitarbeiter: Während seiner Kundenbesuche hat er keine Verbindung zu seinem Firmennetzwerk, er muss aber trotzdem auf einen Teil seiner Daten zugreifen und zum Beispiel auch neue Bestellungen eingeben können.

Datenkonsistenz beim Multithreading sichern

(dotnetpro 09/2007, Seite 128)
Die Zukunft ist parallel. Höhere Leistungsfähigkeit wird sich bei Computern künftig nur noch durch den Einsatz mehrerer, parallel arbeitender Prozessoren erreichen lassen. Je mehr Programmfäden gleichzeitig arbeiten, desto drängender wird aber das Problem der Daten - konsistenz. dotnetpro stellt einen Lösungsansatz vor: Software Transactional Memory.

Abschied vom Text

(dotnetpro 08/2007, Seite 81)
Vor Kurzem habe ich einige Vorträge auf der Software Architect 2007 Konferenz in London gehalten, aber auch Zeit gefunden, ein paar Sessions anzuhören. Seit meinem Studium interessiert mich das Thema Programmiersprachen. Somit lag es nahe, eine Session über Domain Specific Languages (DSL) zu besuchen.

dotnetpro.tv: es bangt die Ameise!

(dotnetpro 08/2007, Seite 64)
Und noch einmal ist es Zeit für die Ameisensimulation Ant- Me! Das Projekt simuliert eine Welt, in der es verschiedene wichtige Dinge gibt, die eine Ameise zum Hauptinhalt ihres Lebens zählen kann: Einen Ameisenhügel, Waldboden, Nahrung und Feinde. Der Spieler, Herr über alle Ameisen des eigenen Volkes, legt zuvor das Verhalten der Ameise fest und muss zum Zeitpunkt der Simulation um das Überleben jeder einzelnen Ameise bangen.

Programmieren wie die Nachtigallen

(dotnetpro 07/2007, Seite 47)
Dass Programmierer nicht wirklich lernen, Code zu lesen, habe ich ja schon in einer früheren Sandbox [1] beklagt. Jetzt bin ich darauf aber nochmals durch die Lektüre eines sehr lesenswerten Buches [2] gestoßen – und habe wieder bitterlich geweint. Es ist einfach nur zu wahr, dass „You teach people how to program by showing them how to write programs“ ein Trugschluss ist.

Mach mich zur Ameise

(dotnetpro 07/2007, Seite 32)
Man stelle sich das Aufgabenfeld des Schöpfers vor nun doch geraumer Zeit vor: Die Welt braucht dringend kleine Wesen, die herumliegende Äpfel wegtragen, störende Zuckerberge abbauen und die immer bedrohlichere Übermacht von kleinen, blauen Käfern in Zaum halten.

Monolithische Anwendungen aufteilen

(dotnetpro 07/2007, Seite 135)
Am Anfang war eine einfache Anforderung, die zu einem Problem lösenden kleinen Programm führte. Doch das war monolithisch und schon nach kurzer Zeit den sich verändernden Anforderungen nicht mehr gewachsen. Einmotten und neu schreiben? Von wegen. dotnetpro zeigt, was Sie in so einem Fall machen können.

Zeit der Stille

(dotnetpro 06/2007, Seite 63)
Schlafen Sie gern? Sicherlich – auch wenn der eine vielleicht mehr und der andere weniger Schlaf braucht. Und wie steht´s mit Urlaub? Machen Sie gern Urlaub? Aber selbstverständlich! Wer macht nicht gern Urlaub? Auch Feierabend und Wochenende als „kleine Urlaube“ sind Ihnen sicherlich sehr willkommen.

Das ist dotnetpro.tv

(dotnetpro 06/2007, Seite 44)
Sag mir, wer du bist.

Zustandsmaschinen programmieren

(dotnetpro 06/2007, Seite 138)
Bekommen Sie auch manchmal Zustände? Das könnte zum Beispiel sein, wenn Ihnen die Analyse einer einfachen Textdatei nicht gleich gelingt, oder Sie Mühe mit einem Wizard haben. Es geht dabei auch um Zustände. Denn im Kern von Textanalyse/Parsing, Wizards, Befehlsprotokollen und vielen anderen Problemfeldern stehen sogenannte Zustandsmaschinen.

Blog as blog can

(dotnetpro 05/2007, Seite 49)
In der Wissenschaft geht es schon extrem zu, da heißt es: publish or perish. Wer nicht veröffentlicht, wer nichts zu veröffentlichen hat, der geht als Wissenschaftler unter – auch, wenn er ein noch so guter Lehrer sein mag. Denn zur Wissensschaffung gehört Feedback. Das heißt, andere müssen davon erfahren, welche Erkenntnis man gewonnen hat, müssen sie nachvollziehen können und sind dann aufgefordert, sie zu kommentieren.

dotnetpro.tv

(dotnetpro 05/2007, Seite 44)
Der Club der anonymen Surfer wird immer kleiner, denn nahezu jede Website fordert inzwischen eine Registrierung. Und schon hat man wieder sein Passwort preisgegeben oder sich schon wieder ein neues ausgedacht. Weder der eine noch der andere Fall sind besonders erstrebenswert.

Komponenten auf das Deployment vorbereiten

(dotnetpro 05/2007, Seite 138)
Natürlich soll Code funktional korrekt sein. Aber darüber hinaus soll er auch nicht manipulierbar sein, beim Kunden nachvollziehbar laufen, wenig Mühe beim Deployment machen, historisiert sein und automatisch produziert werden. Also geht es im letzten Teil der kleinen Serie zum Thema Komponentenorientierung um solche Dinge wie Strong Names, Instrumentierung und Tracing, Versionsverwaltung und Build-Prozesse.

Erwartungsmanagement

(dotnetpro 04/2007, Seite 47)
Wieder so ein Vortrag, bei dem Ihre ganze Aufmerksamkeit auf den Kampf mit dem Schlaf gerichtet ist. So unterfordert Sie der Referent. Oder andersherum: Sie sind frustriert, weil der Referent ein Überflieger ist und Sie schon lange abgehängt hat.

Anbieten statt anfordern

(dotnetpro 03/2007, Seite 71)
Was sind „ausgezeichnete Kenntnisse in ASP.NET“? Oder was bedeuten „fundierte Kenntnisse in der .NET-basierten Entwicklung mit C#“? Oder was macht den Besitz von „überdurchschnittliche[r] Kommunikationsfähigkeit” aus?

dotnetpro.tv

(dotnetpro 03/2007, Seite 62)
Das ist dotnetpro.tv: Bisher erschienene Folgen

Komponenten automatisch testen und dynamisch einbinden

(dotnetpro 03/2007, Seite 138)
"Echte" Komponenten lassen sich unabhängig voneinander entwickeln und automatisch testen. Sie sind so transparent, dass man sie sogar gegen Attrappen ersetzen kann. Daher lassen Sie sich auch dynamisch in andere Lösungen einbinden. dotnetpro zeigt die Werkbank, an der Sie solche Komponenten entwickeln und testen können.

Mono – Teil 2

(dotnetpro 02/2007, Seite 38)
Sie haben Kunden, die sich von Ihnen Software für ihre Linux-Rechner wünschen? Sie haben eine coole Shareware- Idee und wollen damit auch Mac-User beglücken? Sie wollen Ihre Webapplikation bei einem günstigen ISP unter Linux hosten lassen? Dann mussten Sie in der Vergangenheit zu Java, Objective-C oder PHP wechseln. Denn .NET setzt ja Windows in der einen oder anderen Variante als Betriebssystem voraus.

Kekse, Kekse!

(dotnetpro 02/2007, Seite 48)
Neulich auf der prio conference in Baden-Baden ist es wieder passiert. Ein Teilnehmer hat eine weit verbreitete Haltung ausgesprochen. „Ich schreibe mir meine Infrastruktur selbst und bin dadurch flexibel. Deshalb brauche ich von den Publikationen Hilfe bei den konkreten Problemen, das heißt Tipps und Tricks für den Projektalltag und nicht große Softwareentwicklerwelt.”

Bankingkomponente in Softwarezellen

(dotnetpro 02/2007, Seite 128)
Komponenten sind praktisch, weil es wiederverwendbare Bausteine sind. Aber manchmal behindern Komponenten auch die eigene Arbeit, etwa wenn sie die Testbarkeit der Applikation verschlechtern. Das aber lässt sich ändern. dotnetpro zeigt, wie Sie eine bestehende Komponente umstrukturieren können und ihr ein Interface-orientiertes Design geben.

Einstieg in den praktischen Softwareentwurf, Teil 8

(dotnetpro 01/2007, Seite 128)
Über sieben Folgen hinweg hat Ralf Westphal seine Musiksoftware modelliert und konstruiert. Jetzt endlich ist die Zeit der Umsetzung in Code gekommen. Dabei zeigt sich deutlich: Die Mühe hat sich gelohnt. Verständlichkeit, Wartbarkeit, Produktivität und Testbarkeit sind allein aufgrund des überlegten Designs deutlich erhöht.

Der Berg ruft

(dotnetpro 01/2007, Seite 61)
Niemand kann mehr alle softwaretechnischen Werkzeuge und Materialien beherrschen, die für die Programmierung in einer Problemdomäne relevant sein könnten. Die Zahl der Optionen steigt, das Feld wird immer unübersichtlicher.

Mono – Die Alternative

(dotnetpro 01/2007, Seite 40)
Als Windows-Nutzer entwickeln und testen wir wie selbstverständlich mit dem meistverbreiteten Betriebssystem. Auch bei unseren Kunden finden sich zum allergrößten Teil homogene Windows-Umgebungen – auf unsere Empfehlung natürlich. Selbst mobile Geräte werden von uns mit Windows-Programmen bestückt. Also alles in Ordnung?

Alles eine Frage der Haltung

(dotnetpro 12/2006, Seite 41)
SOA steht für Service Oriented Architecture. Eigentlich. Diese Auflösung des Akronyms zeigt an: Hier geht es um Technologie. Doch das führt in die Irre. Denn bei SOA geht es nicht um Technologie, sondern um eine Haltung. Das ist mir bei der Lektüre von Rainer Graus Artikel in der dotnetpro [1] noch einmal klar geworden. Das Akronym SOA sollte stehen für Service Oriented Attitude.

Einstieg in den praktischen Softwareentwurf, Teil 7

(dotnetpro 12/2006, Seite 130)
Die Komponenten der Anwendung sind spezifiziert. Die Implementierung kann beginnen. Doch wo genau erfassen Sie den Code? dotnetpro zeigt auf, nach welchen Regeln Sie das Softwaremodell in gut organisierten Code transformieren können. So sichern Sie wesentliche Qualitätsmerkmale wie Wartbarkeit, Flexibilität, Verständlichkeit und Testbarkeit.

Einstieg in den praktischen Softwareentwurf, Teil 6

(dotnetpro 11/2006, Seite 130)
„Welche Operationen wünscht sich ein Client von seinem Service?“ Die Modellierung der Kontrakte zwischen den Komponenten steht im Mittelpunkt dieser Folge zum Softwareentwurf. Verfolgen Sie die Wertströme bis an ihr Ziel. Bilden Sie für jedes Client-Service-Paar einen Vertrag über die Zusammenarbeit. Und was kommt dabei heraus? Code!

Öffentliche Qualität

(dotnetpro 11/2006, Seite 70)
Früher hat mich vor allem Softwaretechnologie interessiert. Damals habe ich das CP/M BIOS direkt anprogrammiert und sogar verändert. Damals habe ich mich mit den Feinheiten der 3-D-Grafikprogrammierung beschäftigt. Damals waren ADO.NET Details für mich wichtig. Das hat sich in den letzten Jahren verändert. Jetzt beschäftigen mich weniger die Technologien als vielmehr der Kontext, in dem sie eingesetzt werden. Die Architektur von Software ist für mich zum zentralen Thema geworden, also die Frage, wie Code organisiert sein sollte, damit er nicht nur funktionalen, sondern auch nicht-funktionalen Anforderungen genügt. In diesem Zusammenhang stehen Aspekte wie systematische Codeproduktion, Korrektheitstests oder ganz allgemein Softwarequalität.

LINQ – Language Integrated Query

(dotnetpro 11/2006, Seite 46)
Die Version 2.0 des .NET Framework setzte einen Meilenstein in der Weiterentwicklung von C#. Generics, die sich auch im IL-Code widerspiegeln, kennzeichnen eines der wichtigsten Features von diesem Release. Partial classes, nullable types und access modifiers bei Properties sind einige der weiteren Features von C# 2.0.

Einstieg in den praktischen Softwareentwurf, Teil 5

(dotnetpro 10/2006, Seite 138)
Halbzeit Den Aufwand schätzen, die Releases planen, das Datenmodell definieren: Darum geht es in dieser Folge zum Softwareentwurf. Die Grundlage dafür bilden auch hier die Features, die bereits am Anfang der Projekts definiert wurden. Mit diesen Schritten ist die Hälfte des Weges zum fertigen Produkt zurückgelegt. Die Implementierung rückt in greifbare Nähe.

SharePoint für Entwickler

(dotnetpro 10/2006, Seite 52)
Dass sich der Microsoft SharePoint Portal Server und sein kleiner Bruder, die Windows SharePoint Services, für webbasierte Zusammenarbeit, Dokumentenverwaltung und zentrale Informationsablage eignen, ist vielen Lesern der dotnetpro vielleicht bekannt.

Einstieg in den praktischen Softwareentwurf, Teil 4

(dotnetpro 09/2006, Seite 140)
Am Anfang ist der Anwender. Als Client benutzt er über das Frontend die Funktionen, die die Software als Service anbietet. Dieses Modell von Konsumenthier und Service - anbieter dort zieht sich durch die gesamte Softwarearchitektur. dotnetpro zeigt, wie Sie auch die Funktionen der Benutzerschnittstelle auf diese Weise systematisch modellieren.

Der Preis ist heiß

(dotnetpro 09/2006, Seite 62)
Wie viel sollte Software eigentlich kosten? Am besten natürlich gar nichts – jaja, ich weiß. Aber im Ernst: Je länger ich über die Preisbildung von Software nachdenke, desto unsicherer werde ich. Denn irgendwie scheint mir die Softwareindustrie mit dieser Frage noch nicht ganz im Reinen.

Einstieg in den praktischen Softwareentwurf, Teil 3

(dotnetpro 08/2006, Seite 132)
Die Anforderungen an die Software sind definiert. Ein erster Strukturentwurf bestimmt die Bauteile der Software. Im nächsten Schritt untersuchen Sie, wie diese Softwareteile miteinander kooperieren. Verfolgen Sie ausgehend vom Anwender die Wertströme durch die Software. Basierend auf diesen Wertströmen können Sie anschließend Kontrakte für einzelne Funktionen definieren.

Software as a Factory?

(dotnetpro 08/2006, Seite 61)
Analogien haben Macht! Sie haben die Macht, uns weiterzubringen; sie haben aber auch die Macht uns einzuzwängen. Die richtige Analogie zur rechten Zeit hilft uns, ein Problem zu lösen. Aber eine falsche Analogie versperrt uns den Weg zum Ziel.

Composite UI Application Block

(dotnetpro 08/2006, Seite 54)
Cool und längst überfällig Der Composite UI Application Block (kurz CAB) ist ein Frame work für die Entwicklung von modularen, konfigurierbaren Client-Anwendungen. Damit wird eine lang bestehende Lücke im Bereich Client-Entwicklung auf Basis von .NET endlich geschlossen. Das Microsoft Patterns & Practices Team stellt oftwareentwicklern mit dem CAB quasi ein Meta-Framework zur Verfügung, das neben Basisklassen zur Umsetzung von gängigen Design-Patterns wie etwa MVC (Model-View-Controller) oder MVP (Model-View-Presenter) eine komplette Infrastruktur zur Use-Case-getriebenen Entwicklung von Client-Anwendungen anbietet.

Einstieg in den praktischen Softwareentwurf, Teil 2

(dotnetpro 07/2006, Seite 114)
Am Anfang jedes Softwareprojekts steht ein Berg von Fragen, die Unsicherheit erzeugen. Nicht alle müssen Sie sofort beantworten. Das Konzept der Softwarezellen hilft Ihnen, die richtigen Fragen zu finden und aus den Antworten die grundlegenden Softwarekomponenten abzuleiten.

Muss man wirklich alles selbst machen?

(dotnetpro 07/2006, Seite 46)
Im Laufe eines Arbeitstages alle Aufgaben sofort und ohne die Hilfe anderer zu erledigen ist heute für viele nicht mehr möglich. Stattdessen tauschen sie Informationen zwischen Anwendungen aus, senden Teilergebnisse per E-Mail an den nächsten Sachbearbeiter und verlassen sich auf E-Mail-Programme und Organizer wie Outlook, um bei Verzug entsprechend zu reagieren.

Einstieg in den praktischen Softwareentwurf, Teil 1

(dotnetpro 06/2006, Seite 124)
Software komponentenorientiert entwerfen ohne Angst vor Komplexität – wer würde das nicht gerne? Softwarezellen, Contract First Design und Microkernel-Architektur bilden hierfür eine gute Grundlage. dotnetpro zeigt ihre Umsetzung in der Praxis.

Teile und herrsche

(dotnetpro 06/2006, Seite 50)
Jeder quasselt, aber keiner versteht ein Wort. So stellt sich die Situation momentan dar, wenn Softwarekomponenten miteinander reden sollen. Eine Vielzahl an möglichen Protokollen und Technologien macht Kommunikation möglich, aber schwierig.

Anforderungen systematisch implementieren und testen

(dotnetpro 05/2006, Seite 112)
Wünsche werden wahr Am Anfang steht eine Liste der Features, die sich der Kunde für seine Software wünscht. Dann gilt es, diese Features in Code zu transformieren und die Implementierung einzelner Features zu testen. dotnetpro zeigt, wie Sie schrittweise zum fertigen Softwareprodukt gelangen.

Office Integration

(dotnetpro 05/2006, Seite 42)
Ein müdes Lächeln umspielt ihren Mund, wenn C/C++/C#-Programmierer von Office-Lösungen sprechen. Und doch ist die Nachfrage nach Office-Lösungen – also Anwendungen, die aus den Standard-Office-Programmen zusammengestellt werden – ungebrochen, bieten doch Word, Excel und Co. jede Menge Funktionalität, die nur noch mit wenigen Zeilen Code zu einer Lösung verbunden werden muss.

Suchwerk - Kombination aus Laufwerk und Suchmaschine

(dotnetpro 04/2006, Seite 54)
Die Arbeit mit Dateien und Verzeichnissen ist für uns so alltäglich, dass wir sie gar nicht mehr hinterfragen. Im Grunde genommen haben Dateisysteme einen 20-jährigen Dornröschenschlaf hinter sich.

Keine Frage der Schicht

(dotnetpro 03/2006, Seite 126)
Der Weg von der Idee zum Softwarecode ist von Unsicherheit geprägt. Die Struktur von Soft ware scheint immer wieder neu und unvorhersehbar – und somit problematisch. Das altgediente Schichtmodell, das hier Ordnung schaffen will, kann das Bedürfnis der Entwickler nach Klarheit nicht mehr befriedigen. Softwarezellen lösen das Problem.

Wo ist die Komponenten lobby?

(dotnetpro 03/2006, Seite 65)
In letzter Zeit befasse ich mich verstärkt mit dem Thema Softwarearchitektur, wie Sie vielleicht an der Ausrichtung meiner Artikel in der dotnetpro bemerkt haben. Immer wichtiger wird dabei für mich der Begriff der Komponente. Wenn Softwareprojekte planbarer, flexibler und wartbarer werden sollen, dann müssen sie viel mehr aus „Bauteilen“ zusammengesetzt werden, so wie es in anderen Industrien schon lange Usus ist. Das geschieht aber nicht wirklich. Warum?

Team Foundation

(dotnetpro 03/2006, Seite 50)
DotnetTV Der Neuzugang in der Werkzeugpalette von Microsoft zielt ganz bewusst auf ganze Entwicklungsteams – und zwar ausnahmslos alle Beteiligten eines Teams. In Produkten gesprochen heißt das konkret, dass es für Softwarearchitekten, -entwickler und -Tester jeweils eine Visual-Studio-Edition gibt, die sich durch eine Reihe rollenspezifischer Werkzeuge vom bekannten Visual Studio 2005 Professional unterscheidet.

Das Software-Universum

(dotnetpro 02/2006, Seite 114)
Software einfacher entwerfen Software zu entwerfen, ist keine einfache Sache. Tools, Technologien und Theorien sollen dabei helfen. Tückisch wird es aber, wenn ein Hilfsmittel nicht hilft, sondern behindert – und Sie es nicht einmal bemerken. dotnetpro entlarvt das architektonische Schichtenmodell als solch ein tückisches Hilfsmittel und schließt gleichzeitig eine Lücke im Werkzeugkasten der Entwurfshilfsmittel.

Einmal weichspülen, bitte!

(dotnetpro 02/2006, Seite 77)
In meiner ersten Sandbox vor zirka einem Jahr mit dem Titel „Weniger Kunst“ habe ich dafür plädiert, das Programmieren aus der Ecke der Künstler und Handwerker herauszuholen und zu industrialisieren. Mehr Systematik muss einkehren, Entwurf und Produktion arbeitsteiliger werden. Nur damit kann die Branche ihren Ruf als „Bananenlieferant“, dessen Produkte erst beim Kunden reifen, nicht abschütteln.

Feature-based Programming

(dotnetpro 02/2006, Seite 60)
Es war das Jahr 1968, als der Begriff der „Softwarekrise“ geprägt wurde: Die meisten Entwickler waren damals damit beschäftigt, bestehende Software zu warten, und neue Projekte wurden – wenn überhaupt – meist viel zu spät und zu teuer fertig gestellt.

Schnitt und schnapp

(dotnetpro 01/2006, Seite 41)
Kennen Sie die auf einer Insel Umherirrenden oder die verzweifelten Heimchen am Herd von Pro7? Spannende Serien, oder? Aber wie das so ist mit den modernen Serien wie LOST oder Desparate Housewifes: Sie brauchen manchmal eine Pause. Kurz bevor alle Rätsel gelöst, die spannendsten Fragen geklärt sind, heißt es, man solle sich in Geduld fassen und auf die nächste Staffel freuen. Serie interruptus, könnte man sagen. Der Höhepunkt wird verzögert – und kommt hoffentlich schon beim nächsten Mal, wenn es wieder heißt „desparate housewifes get lost having sex in the city“ (oder so ähnlich).

Einen Bayes-basierten Spam-Filter entwickeln

(dotnetpro 01/2006, Seite 112)
Gute ins Töpfchen, schlechte ins Kröpfchen Spam zu erkennen, ist für den Menschen leicht. Ein kurzer Blick genügt meistens. Einen guten Spam-Filter zu programmieren, ist hingegen ungleich schwieriger. dotnetpro erklärt, wie zeitgemäße Spam-Filter funktionieren und liefert eine Implementierung für den bereits vorgestellten Spam Terminator.

Über Geschmack lässt sich streiten, oder?

(dotnetpro 12/2005, Seite 141)
Haben Sie schon einmal den „Pepsi-Test“ gemacht? Sie erinnern sich: Pepsi hatte in den 1980ern Coca-Cola den Kampf mit einem Geschmackstest angesagt. Unbescholtenen Bürgern wurden zwei ungekennzeichnete Cola- Getränke angeboten, um deren „Qualität“ quasi „wissenschaftlich korrekt“ bestimmen zu lassen. Tatsächlich waren die Blindtests gestellt und Pepsi ging als Sieger daraus hervor. Hat sich Pepsi Cola am Markt klar gegen Coca-Cola durchsetzen können? Nein. Aber warum nicht, wenn doch der Qualitätsbeweis in tausenden „Studien“ so klar erbracht wurde? Die Ursache liegt in der Fragestellung: Pepsi hatte den falschen Test gemacht: „Welches Cola-Getränk schmeckt besser, wenn man nur einen Schluck nimmt?“ Die Fehlannahme war, dass Konsumente ein Cola-Getränk nach der Ein-Schluck- Qualität aussuchen. Zum Verkaufserfolg von Cola-Getränken gehören jedoch mehr Faktoren.

Microkernel

(dotnetpro 11/2005, Seite 52)
dotnetpro.tv Seit längerem schon macht ein Gerücht die Runde: Es habe Vorteile, Software aus Bauteilen zusammenzusetzen. Die Botschaft hört die Entwicklergemeinde – allein bisher fehlte ihr wohl der rechte Glaube. Erfahrungen mit und Berichte aus der DLL-Hölle als dem Antipoden zum Komponentenparadies schürten Zweifel.

Ordnung gegen das Chaos

(dotnetpro 11/2005, Seite 124)
Aufbau eines Spam-Filter-Frameworks Ein effektives Spam-Erkennungsverfahrens ist das Herzstück eines Spam-Filters. In dotnetpro 10/2005 wurde ein Körper entworfen, der dieses Zentrum aufnimmt. Der Spam-gequälte Ralf Westphal beleuchtet in dieser Ausgabe Implementationsentscheidungen als Beispiele für Best Practices, Trade-Offs und Missverständnisse, wie sie in allen Softwareprojekten vorkommen.

Hasta la vista, Spam!

(dotnetpro 10/2005, Seite 134)
Ein Framework für einen Anti-Spam-Filter. Spam ist eine Plage, da gibt es keine zwei Meinungen. Aber wie der Spam-Flut Herr werden? Das Angebot an Filtern ist groß. Nur ihre Effektivität ist unterschiedlich. Warum also nicht gleich selbst Hand anlegen und einen maßgeschneiderten Spam-Filter bauen? Dabei lässt sich einiges über Softwarearchitektur lernen – und am Ende sogar etwas gewinnen!

Es mangelt an Fundament

(dotnetpro 9/2005, Seite 68)
In der vorletzten Sandbox (dotnetpro 6/05) ging es darum, dass Softwareentwickler nur mit bewusstem arbeitslebenslangem Lernen sicherstellen können, Ergebnisse in guter Qualität abzuliefern und attraktiv für die Branche zu sein. Jeder trägt hier für sich die Verantwortung – aber Arbeitgeber sollten ebenfalls ein Eigeninteresse haben, die Kenntnisse ihrer Mitarbeiter up to date zu halten. Sie laufen anderenfalls Gefahr, ihren Kunden nur suboptimale Produkte anzubieten.

SQL Service Broker

(dotnetpro 9/2005, Seite 54)
Der SQL Server 2005 bietet nicht nur neue datenbanktechnische Funktionen, sondern enthält auch den SQL Service Broker. Dabei handelt es sich um ein asynchrones Messagingsystem, das direkt in den Datenbankserver integriert ist.

Contract First Design und Microkernel-Frameworks

(dotnetpro 9/2005, Seite 124)
Spicken nicht erlaubt Das Potenzial komponentenorientierter Entwicklung ist heute nicht ausgeschöpft. Immer noch entstehen oft schwer wartbare, verzahnte Gebilde. Die derzeitige Infrastruktur unterstützt ein effektives Entkoppeln nicht. Contract First Design heißt das Mittel dagegen, dotnetpro stellt einen Microkernel vor, der dieses Prinzip umsetzt.

Contract First Design und Microkernel-Frameworks

(dotnetpro 6/2005, Seite 20)
Anwendungen aus mehreren Assemblies zusammenzusetzen ist nicht schwer. Zu einer komponentenorientierten Entwicklung gehört jedoch mehr. Erst mit Contract First Design und einem Microkernel-Framework rückt der Traum von paralleler Entwicklung, ständiger Integration und flexibler Software wirklich näher.

BizTalk

(dotnetpro 5/2005, Seite 43)
BizTalk in der dotnetpro? Was soll das denn? Sie wollen doch in der dotnetpro etwas über Programmierung und nichts über Applikationsintegration lesen. Schließlich wurde für den BizTalk-Server vor Zeiten mal die Abkürzung HST (Hooking Stuff Together) erfunden. Vielleicht haben Sie auch gehört, dass BizTalk-Server XML verarbeiten kann. Schön, das kann man mit dem .NET Framework auch. Andererseits gibtes auch Stimmen die BizTalk Server als Applikations Server darstellen. Wie passt das denn nun in die dotnetpro?

Eine mehrschichtige Anwendung entwickeln

(dotnetpro 4/2005, Seite 124)
dotnetpro erklärt, wie Sie für eine Software die passende Architektur finden. Im ersten Teil des Artikels in der vorangegangenen Ausgabe haben Sie erfahren, wie Sie für eine Beispiel-Applikation den grundsätzlichen Aufbau erarbeiten. Nun geht es an die Implementierung.

Die richtige Architektur finden

(dotnetpro 3/2005, Seite 134)
Erst denken, dann programmieren. Ungefähr so lautet das Motto der Software-Architekten in vereinfachter Form. dotnetpro demonstriert den Entwurf einer Anwendungsarchitektur an einem Beispiel. Auch eine vermeintlich kleine Anwendung lässt sich sinnvoll modularisieren.

SQL-Anweisungen in Ressourcendateien auslagern

(dotnetpro 3/2005, Seite 98)
Längere Texte sollten nicht direkt im Quellcode gespeichert, sondern möglichst in Ressourcendateien ausgelagert werden. Weil SQL-Anweisungen auch aus Text bestehen, gilt für sie im Prinzip das Gleiche. dotnetpro zeigt, wie der Einsatz von Ressourcendateien den Umgang mit SQL-Anweisungen erleichtert.

.NET TV: XML, Teil 2

(dotnetpro 11/2004, Seite 45)
Auf dem roten Sofa

.NET TV: XML

(dotnetpro 10/2004, Seite 56)
Sparen mit XML Technologien sind umso attraktiver, je handfester ihr Nutzen ist. Wie wäre es also, wenn Sie persönlich bares Geld sparen könnten durch den Einsatz von XML? dotnetpro zeigt, wie das mit den Klassen im Namensraum System.Xml, dem etablierten XML-Datenformat RSS und dem Online-Buchhändler Amazon gehen kann.

Best of dotnet.tv

(dotnetpro 9/2004, Seite 31)
Wäre das eine der Folgen von dotnet.tv, würde Ralf die Zahl Sieben wahrscheinlich durch irgendeinen Vergleich mit dem wirklichen Leben symbolisieren. Und so wie alle Zuseher ihn durch die Serie kennen gelernt haben, würde die Sieben sehr wahrscheinlich durch sieben Stück Sushi dargestellt.

Multithreading mit dem .NET Framework

(dotnetpro 7/2004, Seite 44)
Parallelkochen Wenn Sie Pilze und Paprika gleichzeitig schneiden könnten, wäre das Essen schneller auf dem Tisch. Was im wirklichen Leben schwer fällt, lässt sich bei Software gut umsetzen. Das Werkzeug dafür heißt Multithreading. Das .NET Framework bietet dafür alle Voraussetzungen. Wie Sie Multithreading einsetzen und worauf Sie dabei achten müssen, zeigt dotnet.tv.

Plattformübergreifende Kommunikation zwischen Komponenten

(dotnetpro 6/2004, Seite 54)
At your Web Service Moderne Software-Systeme bestehen aus Komponenten. Laufen diese Komponenten auf verschiedenen Rechnern oder sogar auf unterschiedlichen Plattformen, dann war ihre Kopplung bisher schwierig. Web Services stellen hier einen entscheidenden Sprung nach vorn dar. dotnetpro und dotnet.tv zeigen, wie Sie Web Services in Ihren Projekten nutzen können.

Import aus proprietären Datenformaten

(dotnetpro 6/2004, Seite 35)
Import-Dompteur Ein großer Datenbestand wie der von freedb.org eignet sich gut für die Durchführung von Performance-Tests, wenn die Produktionsdaten selbst für diesen Zweck nicht bereitstehen. dotnetpro zeigt, wie Sie sich eine Testdatenbank aufbauen können. Dabei lernen Sie viel über die Kapselung von proprietären Datenstrukturen in eigenen Cursor-Klassen.

Mail Tracking

(dotnetpro 4/2004, Seite 108)
Verfolgungswahn Spam ist schlecht. Darüber gibt es wohl keine zwei Meinungen. Aber wenn man genauer hinsieht, dann lässt sich sogar von Spam einiges lernen. Zum Beispiel, wie Spammer das Problem der Erkennung „toter Adressen“ lösen. dotnetpro zeigt, wie es geht – damit es Ihnen vielleicht einmal für einen guten Zweck hilft.

Symbolerkennung mit regulären Ausdrücken und Scanner-Generator

(dotnetpro 3/2004, Seite 132)
Lass mich nur machen Grundlage für die Textprozessierung bei Spam-Filterung, Eingabevalidierung oder Kompilierung ist das Erkennen von Symbolen nach lexikalischen Regeln. Um diese Symbolerkennung zu vereinfachen, liefert dotnetpro Rezepte für das Umsetzen von wiederkehrenden Regelmustern.

Textscanner effizient selbst bauen

(dotnetpro 2/2004, Seite 140)
Erkennungsdienst Grundlage für die Textprozessierung bei Spam-Filterung, Eingabevalidierung oder Kompilierung ist das Erkennen von Symbolen nach lexikalischen Regeln. Um diese Symbolerkennung zu vereinfachen, liefert der Artikel Rezepte für die Umsetzung von wiederkehrenden Regelmustern.

dotnet.tv: .NET Remoting

(dotnetpro 12/2003, Seite 48)
Bildlich erklärt In dieser Ausgabe starten dotnetpro und MSDN Online einen neuen Service: dotnet. tv. In den rund viertelstündigen Videos erklärt Ralf Westphal sehr anschaulich Technologien des .NET Framework. In dieser Folge geht es um verteilte Anwendungen, die über .NET Remoting miteinander kommunizieren.

Symbolerkennung als Grundlage der Textprozessierung

(dotnetpro 11/2003, Seite 92)
Am Anfang war das Wort Was haben Spam-Filterung, Eingabevalidierung, Rechtschreibprüfung, Kompilierung und CSV-Dateiimport gemeinsam? Sie alle zerlegen Text in seine Bestandteile, um ihn zu verarbeiten. dotnetpro liefert Ihnen Handwerkszeug für die Extraktion der für einen Text wesentlichen Bestandteile.

Config-Settings speichern mit TurboDB

(dotnetpro 10/2003, Seite 68)
Die Gedächtnisbrücke Wo Anwendungen umfangreiche Mengen an Unternehmensdaten speichern sollen, ist jedem Entwickler klar: in einer großen, zentralen Datenbank. Wo legen aber die gleichen Anwendungen ihren eigenen Kleinkram ab? Dieses Thema ist immer wieder Diskussionspunkt bei Programmiererstammtischen. Doch damit soll jetzt Schluss sein! dotnetpro stellt eine Komponente vor, die das leidige Problem ein für alle Mal löst.
Login
Sie sind nicht eingeloggt.

Login & Registrierung
Abo bestellen




Anzeige







Newsletter
Tragen Sie Ihre E-Mailadresse für den kostenlosen Newsletter von dotnetpro ein.


Umfrage
Verwenden Sie Application Lifecycle Management?





Ergebnis anzeigen