-
ACHTUNG - NEUES BLOG
Ab sofort steht unter http://devtyr.norberteder.com mein neues Blog zur Verfügung. Dieses Blog wird nicht weiter betreut, bleibt aber erhalten. Neue Eintr%auml;ge erfolgen nur mehr im neuen Blog. Kommentare werden ebenfalls nicht mehr behandelt. Wer weiterhin meinen Einträgen und Aktivitäten folgen möchte, möge bitte RSS-Feeds, Verlinkungen etc. an die neue Location anpassen.
|
Silverlight 2 wird langsam erwachsen
28.09.08 - .NET, Silverlight Beitrag von Norbert Eder
Formatierung der Daten bei einem Data Binding in WPF
25.09.08 - .NET, WPF Beitrag von Norbert Eder| | Das Data Binding (siehe hier, hier und hier) wurde ja unter der Windows Presentation Foundation stark verbessert. Daten können nun wirklich vielseitig und einfach an Elemente gebunden werden. Was bisher jedoch fehlte war die Möglichkeit, die gebundenen Daten auch einfach zu formatieren. Dies konnte bisher über Converter erledigt werden.
Mit der Einführung von StringFormat mit .NET Framework 3.5 SP1 kann dies nun einfacher durchgeführt werden. Nehmen wir an, es soll ein Personen-Objekt mit den Eigenschaften FirstName, LastName und Birthday an Eingabefelder gebunden werden und der Fokus an der Formatierung des Geburtsdatums liegen, dann kann dies wie folgt aussehen:
<TextBlock>First Name</TextBlock>
<TextBox Text="{Binding FirstName}"/>
<TextBlock>Last Name</TextBlock>
<TextBox Text="{Binding LastName}"/>
<TextBlock>Birth Day - Long Format</TextBlock>
<TextBox Text="{Binding Path=BirthDay, StringFormat=D}"/>
<TextBlock>Birth Day - Short Format</TextBlock>
<TextBox Text="{Binding Path=BirthDay, StringFormat=d}"/>
Ein wenig angepasst, könnte das Ergebnis folgendermaßen aussehen:
Weitere Möglichkeiten und Beispiele sind im sehr guten Blog-Beitrag von Lester zu finden.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
WPF-Browseranwendungen und Daten-Dateien
17.09.08 - .NET, WPF Beitrag von Norbert Eder
Entwickler zu Dumping-Preisen
15.09.08 - Entwicklung, Diskussionen Beitrag von Norbert Eder| | Da sehe ich doch heute glatt bei einer Google-Anzeige folgenden Text:
Finden Sie Top-Qualifizierte C#-Entwickler ab 6 Euro/Stunde
Das muss man sich auf der Zunge zergehen lassen. Sechs Euro pro Stunde. Für viele sicher genau DAS Argument, einen Klick für das gesamte AdWords-System zu produzieren. So billig kommt man doch sonst nie zu einem C#-Entwickler. Aber bekommt man hier auch die entsprechende Qualität? Wohl eher nicht.
Denn bei 25 Arbeitstagen zu je 8 Stunden bewegen wir uns hier bei genau 1.200 Euro. Da kommt noch die Steuer weg, Versicherung und natürlich auch sämtliche Aufwände (Equipment, Strom, Miete usw.). Wer also bitte arbeitet zu diesem Preis?
Davon abgesehen: Wieviel Qualität kann man für diesen Preis wirklich erwarten? Im Vergleich zu üblichen Preisen sind 6 Euro sogar unter Hungerlohn, d.h. ein wirklicher Experte auf seinem Gebiet wird sich zu diesem Preis nie und nimmer verkaufen.
Vermutlich lassen sich jedoch genügend darauf ein, da oft nur der Preis und nicht die tatsächliche Qualität zählt. Dass das Projekt damit drei Mal so lange dauert, von Fehlerfreiheit bei weitem keine Rede sein kann und auch sonst zur Genüge Probleme auftreten werden, ist eine andere Geschichte.
Ich kann mich über solche Angebote nur wundern ... und auch über diejenigen, die darauf einsteigen.
| | | 6 Kommentare
- 1116 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
Mit Unit Tests zur einfacheren und intuitiveren Verwendung
15.09.08 - Entwicklung, Diskussionen, Software Testing, Qualitätsmgmt. Beitrag von Norbert Eder| | Unit Tests sind ein Thema bei dem es Entwickler wie Ärzte halten: Gehe zu vier Ärzten und erhalte fünf Meinungen. Bei Unit Tests läuft es auf dieselbe Art. Also wie jetzt wirklich?
Mit den in Visual Studio integrierten Test-Möglichkeiten sollte man meinen, dass der Entwickler nun wirklich keine Ausrede mehr parat hat, Unit Tests nicht zu schreiben. Weit gefehlt. In vielen Projekten werden derartige Tests noch immer vernachlässigt bzw. im schlimmsten Fall nicht angedacht. Einen der Hintergründe - das Thema Aufwand - hatte ich schon einmal versucht, aus dem Weg zu räumen. Oft erscheinen Tests jedoch auch zu kompliziert, oder es wird diese großartige Unterstützung schlicht einfach nicht bedacht.
Für Unit Tests spricht aber nicht nur, dass damit die Fehlerfreiheit von Teilen der Software verbessert und laufend überprüft werden kann. Der Entwickler kann damit sich selbst, dem Team und neuen, zukünftigen Mitgliedern die Arbeit ebenfalls wesentlich erleichtern. Wie denn das?
Der Eckpfeiler daran ist, sich vor der tatsächlichen Implementierung eines Arbeitspaketes Gedanken zu machen, wie die resultierenden Klassen getestet werden können. Idealerweise werden die Tests vor der Entwicklung dieser Teile geschrieben, muss aber nicht zwingend passieren. Da sich der Entwickler nun im Vorfeld schon Gedanken über die Verwendung macht, wird daran gefeilt, bis eine leichte, intuitive Verwendung möglich ist. Schließlich möchte niemand 10 Zeilen Sourcecode schreiben, nur um eine einfache Berechnung auszuführen. Das Ergebnis ist also ein klares, einfach verständliches Design, welches sowohl die gestellte Aufgabe erfüllt und zudem nach der Implementierung voll funktionsfähig ist. Fehlen Gedanken zur Anwendung, kann letzterer Punkt nicht immer sichergestellt werden. Änderungen am Design sind daher im Nachhinein nötig und führen mitunter sehr schnell zu einer Verwässerung des ursprünglichen Designs.
Der Nachteil daran ist einfach erklärt: Neben der Notwendigkeit, sämtliche Dokumentationen zu ändern (Design Dokument etc.) hat sich durch die spätere Änderung das Design eventuell so stark verändert (meist durch Work-Arounds), dass die Code-Teile nicht mehr intuitiv zu verwenden sind. Team-Kollegen, neue Mitstreiter oder eventuelle Kunden, die programmiertechnisch damit in Berührung kommen, müssen sich lange durch die Dokumentation quälen anstatt durch einen ersten schnellen Tests die Funktionsweise zu verstehen. Eine einfache Sache kann also schnell zu einer Katastrophe ausarten.
Der weitere Ablauf liegt ebenso auf der Hand: Irgendwann wird ein anderer findiger Entwickler diesen Sourcecode zur Überarbeitung markieren. Es entsteht ein Arbeitspaket mit der Prioritätsstufe niedrig - wenn sich einmal Zeit findet. Bis dieser Tag angebrochen ist (in der Regel nie) werden an diesen Stellen vermutlich zahlreiche Funktionserweiterungen implementiert. Ein einfaches Austauschen ist somit auch nicht mehr möglich. Treten zu einem späteren Zeitpunkt gerade hier vermehrt Fehler auf, wird ein alter Spruch missbraucht: Das ist im Laufe der Zeit so gewachsen..
Als Tipp kann ich daher nur jedem Entwickler mitgeben: Bereits im Vorfeld sind Gedanken über die spätere Verwendung von Code-Teilen notwendig. Sinnvoll kann es natürlich sein, nach einem ersten Grob-Design mit einem Testfall zu beginnen. Anhand dessen kann abgeleitet werden, ob die angedachte Verwendungsweise tatsächlich gut ist, oder ob Nacharbeit notwendig ist. Nach zwei bis drei Iterationen über diese Punkte hat sich ein Verständnis für dieses Arbeitspaket entwickelt und auch die Verwendung sollte weitaus klarer und intuitiver sein, als dies vermutlich beim ersten Ansatz der Fall war.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Trickkiste goes Silverlight
13.09.08 - Blog-Intern Beitrag von Norbert Eder| | Die Trickkiste ist eine der beliebtesten Seiten hier auf meinem Blog und war bisher eine reine Linksammlung zu ausgesuchten Blogeinträgen. Das hat sich nun auch nicht wirklich geändert. Was aber neu ist:
Die Einträge werden nicht mehr nur als simple Links angezeigt, sondern werden nun durch eine Silverlight-Anwendung präsentiert. So ist es nun möglich, durch die einzelnen Kategorien zu klicken, als auch nur über die enthaltenen Artikel zu suchen.
Wie steht ihr zu dieser Veränderung?
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Impressionen meiner Hochzeit
12.09.08 - Blog-Intern Beitrag von Norbert Eder| | Eine Hochzeit ist ein wunderschönes Ereignis, an dem nur leider nicht alle teilnehmen können. Daher möchte ich einige Fotos bereit stellen - schließlich wurde ich bereits von zahlreichen Freunden, Bekannten und Lesern darauf angesprochen.
Die Fotos wurden übrigens vom Fotostudio Furgler geschossen.
| | | 7 Kommentare
- 1413 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
Technical Summit 2008 Gewinnspiel: Das Ergebnis
12.09.08 - .NET, Allerlei, Internet, Community Beitrag von Norbert Eder| | Das Gewinnspiel zum Technical Summit 2008 ist vorbei und die glücklichen Gewinner wurden gezogen.
Die richtigen Antworten waren:
- Frage 1: Antwort A
- Frage 2: Antwort A
- Frage 3: Antwort A
- Frage 4: Antwort C
Die glücklichen Gewinner sind:
Eine entsprechende Benachrichtigung wurde per Email ausgesendet.
Den Gewinnern möchte ich meinen Glückwunsch aussprechen, als auch ein Dankeschön an die zahlreichen Teilnehmer.
| | | 1 Kommentar
- 713 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
MSDN Social Bookmarking
11.09.08 - Internet, Community Beitrag von Norbert Eder| | Wie Kai Giza berichtet, ist MSDN Social nun online.
Damit erhält der Benutzer die Möglichkeit, eigene Bookmarks zu verwalten. Diese können öffentlich, als auch privat sein. Darüber ist es zusätzlich möglich, schnell interessante Inhalte zu finden. Ebenfalls können "fremde" Inhalte abonniert werden.
Insgesamt eine nette Idee und auf jeden Fall förderlich für die MSDN. Vollständige Informationen zu diesem Thema finden sich hier.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Einfache Verbesserungen für kleine Teams
11.09.08 - Diskussionen, Patterns, Projektmgmt., Qualitätsmgmt. Beitrag von Norbert Eder| | Immer wieder, wenn ich mit kleinen Entwickler-Teams zu tun habe, sehe ich, dass dieselben Probleme vorhanden sind. Meist dreht es sich um die folgenden Punkte:
- Das Projekt wurde nicht ausreichend spezifiziert. Der Auslöser für das Projekt kennt die genauen Anforderungen, brachte diese jedoch nie vollständig in ein Dokument. Sollte ein Dokument vorhanden sein, findet dieses oft nicht den Weg zum Entwickler. Daher erhält dieser oft unzureichende Informationen, um das Projekt erfolgreich durch zu führen.
- Keine Arbeitspakete. Soll ein Projekt durchgeführt werden, muss eine Analysephase durchlaufen werden. Im Zuge dieser Phase sind Arbeitspakete zu definieren. Diese erleichtern zum Einen die Abgrenzung zu anderen ToDo's und ermöglichen eine Kontrolle. Zeitschätzungen dafür werden sehr oft ebenfalls nicht angegeben. Deswegen gestaltet sich eine Kontrolle schwierig.
- "Drauf-los-Entwicklung". Die Vorgaben sind bekannt und es wird einfach einmal entwickelt. Zukünftige Anforderungen werden nicht in Betracht gezogen, auch wird erst bei der Integration der einzelnen Teile in Erfahrung gebracht, ob diese überhaupt miteinander harmonieren. In den meisten Fällen sind größere Änderungen notwendig.
- Kontrolle. Zum Thema Kontrolle gibt es zwei Wege die hauptsächlich durchschritten werden: Entweder findet keine Kontrolle statt (oder erst ca. 2 Wochen vor Auslieferung) oder es wird versucht das ultimative Kontrollsystem einzuführen. Oft wird hierbei jedoch auf notwendige Vorarbeiten vergessen, wodurch eine Kontrolle gar nicht durchgeführt werden kann (Arbeitspakete in Kombination mit Zeitschätzungen als Beispiel).
- Ressourcen-Planung. Ressourcen müssen geplant werden. Freie Kapazitäten sollten vor Annahme eines Projektes bekannt sein. Ebenso sollte bekannt sein, dass eventuell zwischenzeitlich Ressourcen für andere Projekte abgestellt werden müssen - und zu welchem Umfang. Viele Teams werden von plötzlicher Ressourcen-Knappheit überrascht, da plötzlich Entwickler zu anderen Projekten abgezogen werden müssen. Es gilt daher eine saubere Ressourcen-Planung durch zu führen und - wenn notwendig - frühzeitig für Ausgleich zu sorgen.
- Der fehlende Architekt. Nicht jeder Softwareentwickler ist zum Architekten geboren. Großes Wissen und viel Erfahrung ist notwendig, um zukunftssichere Grundgerüste zu entwickeln. Gerade kleine Teams haben oft keinen "gelernten" Architekten zur Verfügung. In diesem Fall kommt es für die meisten Projekte billiger, sich zumindest für das Grundgerüst eine entsprechende Person zu zu kaufen.
Dies sind einige Punkte, auf die ich immer wieder in der Praxis stoße. Die einen Teams leben dabei nach dem Motto "Es wird schon irgendwie gehen", wobei die anderen definitiv nach Verbesserung streben. Ich persönlich kann nur jedem Team bzw. jedem kleinen Softwareunternehmen raten, sich zumindest für ein paar Stunden einen Spezialisten zu zu kaufen. Sind bisherige Abläufe bekannt (grobe Abläufe lassen sich in kurzer Zeit ohne Weiteres feststellen), können selbst kleine Änderungen große positive Auswirkungen auslösen.
Will ein Unternehmen dafür kein Geld an externe Personen vergeben, dann sollten zumindest meine aufgeführten Punkte mit der eigenen Vorgehensweise reflektiert werden. Alleine daraus lassen sich einige Verbesserungsmaßnahmen ableiten.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL | Zurück Weiter
|
|
|
|
|
|
|