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.
(
dotnetpro 04/2010,
Seite 48)
Er ist in Verruf geraten, der Programmierer, der mit einem RAD-Werkzeug zack-zack ein Programm raushaut.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.“
(
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.
(
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.
(
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?
(
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.
(
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?
(
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.
(
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.
(
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).
(
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).
(
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.
(
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.“
(
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.
(
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.
(
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?
(
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.
(
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, […]“
(
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.
(
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.
(
dotnetpro 04/2009,
Seite 58)
Wer hätte das gedacht? In diesem Heft finden Sie die 50. Ausgabe meiner Sandbox-Serie.
(
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.
(
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“.
(
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.
(
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.
(
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.
(
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?
(
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.
(
dotnetpro 12/2008,
Seite 52)
Die aktuelle globale Finanzkrise erinnert mich daran, dass ich vor Jahren auch einmal in die Spekulationswelt hineingeschnuppert hatte
(
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.
(
dotnetpro 11/2008,
Seite 38)
Heute schon Programmieren geübt? Damit Sie mich richtig verstehen: Ich meine nicht, ob Sie heute schon programmiert haben.
(
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.
(
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.
(
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?
(
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.
(
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?
(
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.
(
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?
(
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ß!
(
dotnetpro 07/2008,
Seite 46)
Softwareentwicklung könnte so schön sein, wenn es da nicht den Chef und den Vertrieb gäbe.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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 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.
(
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.
(
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 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.
(
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.
(
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 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
(
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.
(
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.
(
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 11/2007,
Seite 42)
Grenzenlose Kommunikation mit den BizTalk Services, Teil 2
(
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.
(
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!
(
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.
(
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.
(
dotnetpro 10/2007,
Seite 12)
Interview mit Ralf Westphal, Content Manager der prio conference
(
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 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.
(
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.
(
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 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.
(
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.
(
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.
(
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.
(
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.
(
dotnetpro 06/2007,
Seite 44)
Sag mir, wer du bist.
(
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.
(
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 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.
(
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.
(
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.
(
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 03/2007,
Seite 62)
Das ist dotnetpro.tv: Bisher erschienene Folgen
(
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.
(
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.
(
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.”
(
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.
(
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.
(
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.
(
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?
(
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.
(
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.
(
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!
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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?
(
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.
(
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.
(
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.
(
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.
(
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).
(
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.
(
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.
(
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.
(
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.
(
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!
(
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.
(
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.
(
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.
(
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.
(
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?
(
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.
(
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.
(
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.
(
dotnetpro 11/2004,
Seite 45)
Auf dem roten Sofa
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.
(
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.