Projekttagebuch Addressbook – Prototyping

Entwickler-Bullshit-Bingo! Ja, schon irgendwie. Prototyping hab ich offen gestanden auch nicht bewusst angewendet. Zwar hab ich in irgend einem Entwicklerpodcast mal davon gehört und hinter dem Begriff verbirgt sich letztendlich auch genau das, was er vermuten lässt: Einen Prototypen der geplanten Software, Teilprogrammes oder was auch immer bauen. Da mein Adressbuch in der Einleitung als Desktopanwendung mit grafischer Benutzeroberfläche von mir angepriesen wurde, habe ich, quasi ohne es zu wissen, einen Prototypen erstellt: Ich habe eine Konsolenanwendung erstellt. Das habe ich getan, um zu schauen, mit welchen Mitteln ich überhaupt meine Vorstellungen implementieren kann. Technisch musste ich mich schließlich von einem Ast zum Nächsten hangeln. Hier eine Methode einer Klasse aus dem .NET Framework, dort lernen, was die Syntax

class TimePeriod
{
     private double _seconds;

     public double Seconds
     {
         get { return _seconds; }
         set { _seconds = value; }
     }
}

zu bedeuten hat (Auflösung und Quelle: Microsoft | set (C# Referenz)). Wäre ich nach Lehrbuch vorgegangen, hätte ich das möglicherweise auch ohne zu googeln erschließen können. Da ich in meinem Projekt voran kommen wollte, habe ich einfach immer mit dem existierenden Wissen begonnen und mir für meine Hindernisse Lösungen ergoogelt. Hinreichende Kenntnisse über die Funktionen einer Hochsprache habe ich noch aus der Zeit der Umschulung von Java.

Weiterlesen

C# Projekt Adressbuch – Einleitung

Wo fange ich an? In C# möchte ich mich einarbeiten. Ein richtiges Projekt soll es werden. Eine typische Windowsanwendung soll es sein, wenn es fertig ist. Was taugt hier als Einstieg, sich mit C# und Hochsprache im Allgemeinen vertraut zu werden, Erfahrungen zu sammeln und nachher eine Anwendung zu bekommen, die vielleicht nicht nur mir hilft? Gerne was sinnvolles. Nun ja, die Überschrift hat es verraten: Ein Adressbuch soll her. Ja, da gibt es bestimmt reichlich freie Lösungen und auch weniger freie in bestehenden Anwendungen. Nicht zuletzt das Windows-eigene Adressbuch aka Kontakte. Ich möchte nur nicht so eine funky fancy Windows-App, ich möchte das, was man noch Programm oder Anwendung nennt. Scheiße aussehen soll und muss sie natürlich deshalb nicht.

Wie beginnt man also? Ich für meinen Teil habe mir zuerst einmal Gedanken gemacht, was mein Programm denn können soll, abgesehen davon, einen Mehrwert zu liefern. Also habe ich mich hingesetzt, und vor geraumer Zeit bereits mit einem Anforderungskatalog begonnen. Hierzu habe ich mich der klassischen User Story bedient. Ich habe einfach alles in ein Worddokument getippt, was meine Anwendung später mal können soll. Bewusst so, als hätte ich keine Ahnung. Was anfangs nicht schwer war, weil ich bis auf ein bisschen Webentwicklung seit meiner Umschulung zum Fachinformatiker nichts an Berufserfahrung sammeln konnte. Warum denn also keine Webanwendung? Nun, weil mir das mit Hinblick auf späteren Nutzen nicht zielführend erscheint. Wenn andere Menschen meine Anwendung nutzen sollen, möchte ich das für jeden – unabhängig von der IT-Affinität – ermöglichen. Und da scheint mir eine typische Windowsanwendung am sinnvollsten.

Weiterlesen

C# – string auf Inhalt prüfen

kisspng-c-programming-language-computer-icons-computer-pr-programming-5acadc62277db6.6978009015232441301618In den verschiedenen Sprachen stehen verschiedene Möglichkeiten zur Verfügung, einen String auf Inhalt zu prüfen. Gar nicht so sehr auf explizite Ausdrücke, sondern einfach, ob er Inhalt enthält, oder leer – je nachdem, wie in der jeweiligen Programmiersprache leer definiert wird – ist. Darauf gekommen bin ich, weil ich bei einer testhalber erstellten Konsolenanwendung einen leeren String nicht mit ausgeben wollte. In C# werden leere Strings als null oder “” initiiert.

Nun kann man natürlich auf beides prüfen, sei es mit Equals() oder einer if-clause. Noch einfacher geht es allerdings mit einem simplen Trick. Nämlich einfach die Länge des Strings gegen 0 prüfen. Nicht gegen null oder “” sondern schlicht gegen 0. Das hat den Vorteil, dass kein Objekt dafür angelegt werden muss und sorgt für eine schnelle Prüfung. Wie groß der Geschwindigkeitsvorteil ist oder sein kann, weiß ich nicht. Sicherlich mag das auch nicht für alle Situationen die richtige Wahl sein.

if (person[i].Length != 0)
{
     Console.WriteLine(person[i]);
}