Startseite > Archiv > Artikel von Stefan Lieser

Artikel von Stefan Lieser

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.


Wann kommt der Bus?

(dotnetpro 03/2012, Seite 108)
Viele Websites bieten ihre Daten und Services auch über eine Programmierschnittstelle (API) an. Wenn eine solche Schnittstelle nicht existiert, bleibt als Ausweg nur Screen-Scraping.

Erst trennen, dann vereinen

(dotnetpro 03/2012, Seite 109)
Mit Flow-Design lassen sich auch parallele Vorgänge modellieren. Standardbausteine erleichtern die Umsetzung. Diese Übung ergänzt die neuen Bausteine Scatter und Gather.

Alle anpacken!

(dotnetpro 02/2012, Seite 109)
Sie sollen aus vielen JPEG-Dateien die Stichworte extrahieren. Eine ideale Aufgabenstellung für Parallelverarbeitung. Aber läuft das Programm damit auch wirklich schneller?

Ausgezeichnete Fotos

(dotnetpro 02/2012, Seite 110)
Mit den Formaten Exif und IPTC können Sie JPG-Dateien Stichworte zuordnen.Viele Hersteller von Grafikprogrammen nutzen dieses Format aber nicht. Dieses und weitere Probleme löst Stefan auf seinem Weg zur digitalen Fotosammlung.

Ordnung im Fotokarton

(dotnetpro 01/2012, Seite 110)
Früher habe ich meine Fotos in Tüten gesteckt und in Schuhkartons gesammelt. Heute im Digitalzeitalter stehen mit Tags bessere Ordnungssysteme zur Verfügung. Doch was passiert da hinter den Kulissen?

Und es geht doch!

(dotnetpro 01/2012, Seite 26)
.NET-Entwickler fühlen sich in der Welt von Windows Phone 7 sofort zu Hause, da sie die gewohnte Programmiersprache, das gewohnte Framework und die gewohnten Tools verwenden können. Doch wenn es ans automatisierte Testen gehen soll, ist es vorbei mit der Gewohnheit.

Show up Mark down

(dotnetpro 01/2012, Seite 111)
Texte mit Markdown-Auszeichnungen in einem Control darzustellen, das war die Aufgabe. Natürlich ist bei der Lösung wieder alles im Fluss. Und weil das im echten Leben auch so ist, muss wieder einmal eine Lösung her, die evolvierbar ist. So ist sichergestellt, dass spätere Anforderungen einfach umsetzbar sind.

Einfach, einfacher, MarkDown

(dotnetpro 12/2011, Seite 100)
Es muss nicht immer HTML oder RTF sein.Wer Texte auszeichnen will, kann auch MarkDown verwenden. Dieses Format ist besonders einfach und aus vielenWikis bekannt.Also lautet die Übung: Schreiben Sie ein Control, das MarkDown-Texte darstellen kann.

So wabern Wortwolken

(dotnetpro 12/2011, Seite 101)
Mit TagClouds lassen sich textlastige Oberflächen gut auflockern. Sie präsentieren die häufigsten Themen in bunt gemischter Form. Ein entsprechendes Control ist gut mit Silverlight zu realisieren.

Wortwolken

(dotnetpro 11/2011, Seite 108)
Im Web haben sich Tag-Clouds eingebürgert. Sie bieten eine alphabetische Liste von Einträgen, die durch die Größe der Schriftart einen Hinweis darauf geben, wie wichtig das Thema für die jeweilige Website ist. Ein Control für solche Wortwolken wäre sicher praktisch.

12 mal 10 gleich 300

(dotnetpro 11/2011, Seite 110)
Die Kugel rollt, die Pins fallen, und der Kopf des Entwicklers raucht. Berücksichtigt der Algorithmus auch alle Sonderfälle für Spares und Strikes? Auch hier gilt wieder: Nachdenken hilft. Und Flow-Design und der Werkzeugkasten für Event-Based Components bieten nützliche Hilfe.

Alle Zehne

(dotnetpro 10/2011, Seite 96)
Manche dojos in den vergangenen dotnetpro-Ausgaben waren ziemlich schwer. Diesmal soll es übersichtlicher sein. Stefan, kannst du mal eine hübsche, kleine Übungsaufgabe stellen?

Nicht immer relational

(dotnetpro 10/2011, Seite 16)
Die Datenbank SimpleDB von Amazon ist ein hochverfügbares, skalierbares, schemaloses Datenbanksystem. Allerdings ist der Umgang mit der Schnittstelle des entsprechenden Webdienstes nicht sehr bequem. Das Open-Source-Framework Simol vereinfacht den Zugriff auf SimpleDB für .NET-Anwendungen stark.

Des Raben Datenbank

(dotnetpro 10/2011, Seite 22)
Entwickler sind es gewohnt, Daten in relationalen Datenbanken abzulegen. Doch wie so oft im Leben lohnt sich auch hier ein Blick über den Tellerrand.

Lesbarkeit erhöhen

(dotnetpro 10/2011, Seite 64)
Testen ist gut, aber manchmal sind Tests ziemlich schwer verständlich. Leicht lesbar sind Spezifikationen im Stile des Behavior Driven Developments. Sie lassen sich mit dem Framework Machine.Specifications umsetzen.

Coole App für kühle Rechner

(dotnetpro 10/2011, Seite 97)
Energiesparen beginnt damit, sich regelmäßig einen Überblick über die Verbräuche zu verschaffen. Das kann man auf Papier machen, aber mit einerWindows-Phone-7-App ist es natürlich viel cooler.

Wohin geht der Trend?

(dotnetpro 09/2011, Seite 104)
Das Thema Energiesparen hat zwar nicht unmittelbar mit Softwareentwicklung zu tun, dürfte aber dennoch den einen oder anderen Leser umtreiben. Stefan, kannst du zu diesem ganz praktischen Thema eine Übung stellen? Die Leser sollen etwas lernen und mit dem Ergebnis Energie sparen können.

So kommt die Nachricht an

(dotnetpro 09/2011, Seite 106)
Im vorangegangenen Heft haben Sie einen Fahrkartenautomaten erstellt. Jetzt kommt noch ein Bus dazu. Und zwar einer, der Nachrichten transportiert.

Wie fährt der Bus?

(dotnetpro 08/2011, Seite 110)
Im vorangegangenen Heft haben Sie sich einen Fahrkartenautomaten erstellt. Und jetzt bauen Sie noch einen Bus dazu.Allerdings einen für Nachrichten.

Fließende Zustände

(dotnetpro 08/2011, Seite 111)
Ein Fahrkartenautomat lässt sich über einen Zustandsautomaten implementieren. Die Eingänge und Ausgänge des Automaten ermöglichen es, ihn als Funktionseinheit im Sinne des Flow-Designs zu betrachten.

Ist der Automat endlich fertig?

(dotnetpro 07/2011, Seite 118)
Informatiker kennen das Konzept der „endlichen Automaten“. Der Durchschnittsbürger kennt Fahrkartenautomaten. Stefan, was verbindet die beiden Arten von Automaten miteinander?

Erst drosseln, dann entfesseln

(dotnetpro 07/2011, Seite 119)
Trennen Sie eine Funktionalität von einem nicht-funktionalen Aspekt wie dem der asynchronen Ausführung. Das gilt nicht nur für die Implementierung, sondern auch bereits für den Entwurf.

Wie funktioniert Hellsehen?

(dotnetpro 06/2011, Seite 103)
Inkrementelles Suchen hat etwas von Hellsehen an sich.Man tippt ein paar Buchstaben ein, und schon während des Eintippens bekommt man die ersten Ergebnislisten angezeigt. Stefan, kannst du dazu eine Übung stellen?

Nicht ohne meine Wolke

(dotnetpro 06/2011, Seite 104)
Seine Daten will man am liebsten überall von verschiedenen Geräten aus verfügbar haben. Kein Problem, wenn man sie über die Cloud synchronisiert. Und das ist gar nicht so schwer.

Was steht in den Wolken?

(dotnetpro 05/2011, Seite 112)
Über die Cloud wurde genügend spekuliert. Es wird Zeit, sie konkret anzuwenden. Stefan, kannst du zu diesem wolkigen Thema eine möglichst handfeste Übung stellen?

Alles unter einem Hut

(dotnetpro 05/2011, Seite 107)
Das Data Binding von WPF bietet beeindruckende Möglichkeiten. MVVM ist für WPF-Anwendungen das geeignete Konzept. Flow-Design erlaubt eine sehr natürliche Art der Modellierung. Und Event-Based Components stellen ein universales Konzept für Modellierung und Implementierung. dotnetpro zeigt, wie Sie diese Konzepte gemeinsam nutzen können.

Wissen, was zu tun ist

(dotnetpro 05/2011, Seite 116)
MVVM-Pattern? Kennt man. Flow Design? Schon mal gehört. Event-Based Components? Klar, das ist die Spezialität von Ralf und Stefan. Aber alles zusammen auf einmal? Ist noch nicht da gewesen. Geht aber, auch wenn Stefan bei der Umsetzung ins Schwitzen kam.

Wie fließen die Daten?

(dotnetpro 04/2011, Seite 120)
Software modellieren: Ja, dem gehört die Zukunft. Aber was soll man eigentlich genau modellieren? Datenflüsse oder Abhängigkeiten von Funktionseinheiten? Stefan, kannst du dazu eine Übung stellen?

Wie die Welt zusammenhält

(dotnetpro 04/2011, Seite 121)
„Adjazenz“ bezeichnet keinen geistlichen Würdenträger und ist auch kein militärischer Dienstgrad, sondern steht für die Beziehung zwischen Knoten und Kanten. Über adjazente, also miteinander verbundene Knoten kann man Zusammenhänge modellieren und erforschen. dotnetpro macht einen Ausflug in die Graphentheorie, für die es viele praktische Anwendungen gibt.

Wie hängt alles zusammen?

(dotnetpro 03/2011, Seite 108)
Mit einem Graphen kann man darstellen, wie die Dinge miteinander zusammenhängen.Weil aber alles mit allem irgendwie zusammenhängt, kann man mit Graphen eigentlich alles darstellen. Das ist interessant, und deswegen gibt es hier dazu eine Übung.

Der Zwitscherfinder

(dotnetpro 03/2011, Seite 109)
Hat da jemand 'piep' gesagt? Der Zwitscherfinder weiß die Antwort.Alle paar Minuten checkt er die Twitter-Website nach dem gesuchten Schlüsselwort und präsentiert das Ergebnis. Übrigens lässt sich auch ein Zwitscherfinder vorteilhaft über Event-Based Components realisieren.

Was pfeifen die Spatzen?

(dotnetpro 02/2011, Seite 118)
Gute Übungsaufgaben müssen cool sein. Sonst macht das Herumtüfteln keinen Spaß.Also, Stefan: Kannst du eine Aufgabe stellen, bei der ein cooles Programm entsteht, das zugleich technisch herausfordernd ist?

So geLINQt es

(dotnetpro 02/2011, Seite 120)
Grundlagen muss man gut verstanden haben.Wer sie besonders gut verstehen will, sollte sie nachbauen. Bei dem Versuch, LINQ selbst zu implementieren, hat auch Stefan wieder etwas dazugelernt.

Wie funktioniert LINQ?

(dotnetpro 01/2011, Seite 112)
Manche Grundlagen versteht man besser, wenn man sie einmal selbst implementiert hat. Stefan, kannst du dazu eine Übung stellen?

So bauen Sie Bäume

(dotnetpro 01/2011, Seite 116)
Im .NET Framework gibt es keine vordefinierte Datenstruktur für Bäume.Wer seine Daten in einer Baumstruktur ablegen will, muss sich diese Struktur selbst implementieren. Eine ideale Aufgabe für das dotnetpro.dojo!

Wie viele Blätter hat der Baum?

(dotnetpro 12/2010, Seite 108)
Baumstrukturen sind in der Informatik allgegenwärtig.Wer selbst Bäume implementiert, lernt dabei viel über ihre Arbeitsweise. Stefan, kannst du dazu eine Übung stellen?

So trennt man Feu-er-wehr

(dotnetpro 12/2010, Seite 109)
Das Konzept der Event-Based Components einzuüben – das war das Ziel dieses dojos. Die konkrete Aufgabe bestand darin, eine Komponente für den Textumbruch mit Silbentrennung zu entwickeln. Zum Glück hat Stefan Lieser ein eigenes Test-GUI entwickelt, denn damit konnte er viele Fehler entdecken und beseitigen.

Wie baue ich einen Legostein?

(dotnetpro 11/2010, Seite 112)
Softwarekomponenten so einfach wie Legosteine zusammenstecken zu können – mit diesem Versprechen tritt das Konzept der Event-Based Components an. Stefan, kannst du dazu eine Übung stellen?

So beherrschen Sie den Dienst

(dotnetpro 11/2010, Seite 113)
Ein Windows-Dienst ist eng in die Infrastruktur des Betriebssystems integriert. Das erschwert automatisierte Tests.Wenn Sie den eigentlichen Kern des Dienstes unabhängig von der Infrastruktur halten, ist er dennoch für automatisierte Tests zugänglich.

Wie zähmt man den Dämon?

(dotnetpro 10/2010, Seite 100)
In der Unix-Welt heißen sie Dämonen: die Dienste, die im Hintergrund ihre Arbeit verrichten. Stefan, stell doch mal eine Aufgabe, die in die Unterwelt derWindows-Dienste führt.

Stack und Queue implementieren

(dotnetpro 10/2010, Seite 107)
Immer hübsch der Reihe nach: Das gilt nicht nur imWartezimmer, sondern auch im Stack und in der Queue der Informatiker. Und wer sich das Entwicklerleben vereinfachen will, sollte auch bei ihrer Implementierung die richtige Reihenfolge einhalten: Erst planen, dann Tests entwickeln, dann implementieren.

Was ist im Stapel?

(dotnetpro 09/2010, Seite 104)
In den Zeiten der großen Programmier-Frameworks geht leicht das Wissen um die grundlegenden Algorithmen und Datenstrukturen verloren. Stefan, kannst du mal eine Aufgabe stellen, die zu den Wurzeln der Programmierung zurückführt?

So sammeln Raben Daten

(dotnetpro 09/2010, Seite 111)
Zum Entwickleralltag gehört es, sich in neue Technologien einzuarbeiten, beispielsweise in eine NoSQL-Datenbank. Der Code, der dabei entsteht, muss nicht die Qualität von Produktionscode haben. Ein testgetriebener Ansatz ist dafür aber dennoch nützlich, denn die Tests dokumentieren die gewonnenen Erkenntnisse in leicht nachvollziehbarer Form.

Was kann der Rabe?

(dotnetpro 08/2010, Seite 86)
Kaum eine Software kommt ohne Persistenz aus.Auf diesem Gebiet stehen die relationalen Datenbanken in fest gefügter Phalanx.Aber geht Persistenz nicht auch anders? Da gibt es doch diese NoSQL-Dokumentendatenbanken. Stefan, fällt dir dazu eine Übung ein?

So boxen Sie mit Silverlight!

(dotnetpro 08/2010, Seite 87)
Statistik hat immer mit Zahlen zu tun. Und Zahlen kann man immer irgendwie grafisch darstellen, eine Zahlenreihe zum Beispiel in einem Boxplot.Aber wer versucht, ein entsprechendes Silverlight-Control testgetrieben zu entwickeln, muss feststellen, dass auch Silverlight 4 die testgetriebene Entwicklung nur mangelhaft unterstützt.

Teile und teste

(dotnetpro 08/2010, Seite 80)
Es hat sich herumgesprochen: Auf externe Ressourcen imWeb sollte man immer asynchron zugreifen. Denn nur dann ist gewährleistet, dass die Benutzeroberfläche nicht einfriert, wenn die Reaktion auf sich warten lässt. Doch wie geht man in automatisierten Tests damit um?

Papa, was ist ein Boxplot?

(dotnetpro 07/2010, Seite 110)
Wie lange dauert und was kostet dies und jenes im Durchschnitt, höchstens, mindestens und am wahrscheinlichsten? Statistik ist das halbe Leben, in Form von Zahlen und in Form von Grafiken. Stefan, kannst du dazu eineAufgabe stellen?

dotnetpro.dojo

(dotnetpro 07/2010, Seite 111)
Den Mogelzettel für ein Minesweeper-Minenfeld erstellen Sie nach dem EVA-Prinzip: Eingabe,Verarbeitung,Ausgabe. Die Lösung gestaltet sich nach gründlicher Planung recht einfach. Da im Detail aber Variationen möglich sind, können Sie diese Übung mit Gewinn auch mehrmals lösen.

dotnetpro.dojo

(dotnetpro 06/2010, Seite 112)
Eingabe,Verarbeitung,Ausgabe: Das EVA-Prinzip durchdringt die gesamte Softwareentwicklung. Eine Analyse der Datenstrukturen und die Verwendung der passenden Algorithmen spielen dabei eine herausragende Rolle. Stefan, fällt dir dazu eine Übung ein?

Meier, Müller, Schulze ...

(dotnetpro 05/2010, Seite 108)
Nach wie vor spielt die klassische „Forms over Data“-Anwendung eine große Rolle. Daten aus einer Datenbank sollen per Formular bearbeitet werden.Wenn diese Applikationen getestet werden, spielen Testdaten eine zentrale Rolle. Möglichst viele sollten es sein und möglichst realistisch geformt noch dazu. Stefan, fällt dir dazu eine Übung ein?

Vier gewinnt. Eine Lösung.

(dotnetpro 04/2010, Seite 104)
Die Aufgabe war, das Spiel „Vier gewinnt“ zu implementieren. Auf den ersten Blick ist das eine eher leichte Übung. Erst bei genauerem Hinsehen erkennt man die Schwierigkeiten. Wie zerlegt man beispielsweise die Aufgabenstellung, um überschaubare Codeeinheiten zu erhalten?

Das Dependency Inversion Principle (DIP)

(dotnetpro 03/2010, Seite 108)
Eine Hilfsklasse stellt eine Methode zur Verfügung. Die übergeordnete Klasse ruft die Methode auf. Resultat: Die übergeordnete Klasse ist von der untergeordneten Klasse abhängig. So sollte es aber gerade nicht sein.Abhilfe schafft das Dependency Inversion Principle. Durch die Einführung expliziter Schnittstellen bleiben übergeordnete Klassen unabhängig.

Interface Segregation Principle

(dotnetpro 02/2010, Seite 116)
Der Stecker für den Monitor muss nicht auch für den Drucker passen. Der Monitorstecker ist auf eine einzelne Aufgabe spezialisiert, und das ist gut so. Das Gleiche sollte für Softwareschnittstellen gelten. Spezialisierte Interfaces verringern die Kopplung zwischen Klassen und erleichtern die Testbarkeit.

Die gleiche Sprache sprechen

(dotnetpro 11/2009, Seite 98)
Es dürfte sich mittlerweile herumgesprochen haben, dass Softwareentwicklung nach wasserfallartigen Modellen nur selten funktioniert. Die Alternative lautet: agile Softwareentwicklung. dotnetpro erläutert die Unterschiede, wie agile Entwicklung in der Praxis funktioniert und wie sich die Anforderungen des Kunden sicher umsetzen lassen.

Vererben - aber richtig!

(dotnetpro 10/2009, Seite 82)
Eine wichtige Errungenschaft der objektorientierten Programmierung ist die Vererbung. Richtig eingesetzt, kann sie helfen, Komplexität in Softwaresystemen zu reduzieren. Doch Vererbung ist nicht gleich Vererbung. Nur wenn sich der Entwickler an einige Prinzipien hält, spielt sie ihre Stärke aus.

Das Open Closed Principle (OCP)

(dotnetpro 08/2009, Seite 68)
Bei der Entwicklung von Software können nicht alle Aspekte von Anfang an ausreichend berücksichtigt werden. Was kann man tun, um neue oder geänderte Anforderungen später noch umzusetzen? Der Artikel geht dieser Frage nach und erläutert, warum Klassen offen für Erweiterungen, aber geschlossen gegenüber Modifikationen sein müssen.

Single Responsibility Principle (SRP)

(dotnetpro 06/2009, Seite 10)
Dieser erste Beitrag einer fünfteiligen Serie über die SOLID-Prinzipien erläutert, warum eine Codeeinheit nur für eine einzige, klar definierte Aufgabe verantwortlich sein sollte: Nur so bleibt Software langfristig erweiterbar, nur so kann letztlich sichergestellt werden, dass die Software die gestellten Anforderungen korrekt erfüllt.

VIP-Tipp: Unbedingt lesen!

(dotnetpro 05/2009, Seite 52)
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).
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
Wie zufrieden sind Sie mit Ihrem Gehalt?




Ergebnis anzeigen