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
Werbung

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]);
}

DBMS DBeaver mit SQL Server Express nutzen

sql-server-dbeaverDBeaver als Datenbankmanagementsystem – kurz DBMS – stellte ich bereits in der Community Version hier im Blog vor. Neben einer PostgreSQL und mySQL Datenbank hatte ich beruflich auch das Vergnügen, mit einer SQL Server Express Datenbank arbeiten zu können. Zwar kann man sich Microsofts SQL Server Management Studio (SSMS) kostenlos herunterladen und verwenden – ist meiner Ansicht nach auch ein sehr geil umfangreiches, wenngleich daher auch komplexes Tool – aber wozu sollte ich für die paar Handgriffe über ein DBMS ein zweites DBMS installieren?

Bei meinen ersten Versuchen schlug die Verbindung mit DBeaver und SQL Server Express auch fehl. Letztlich lag das an der fehlenden Information, welchen Port die SQL Server Express-Variante verwendet. Die Express-Variante hat nämlich keinen festen Port, sondern sucht sich zufällig einen Port aus. Welchen, erfährt man auch nicht einfach so bei der Installation. Weiterlesen

Java – Programmieren mit oder ohne IDE?

IDE. Was ist das eigentlich? Programmierer wissen es, angehende vielleicht auch und ich erkläre es trotzdem kurz. IDE steht für englisch Integrated Development Environment und heißt auf deutsch: integrierte Entwicklungsumgebung. Schlicht handelt es sich dabei um eine Software, mit der man eben andere Software programmieren kann. Im Falle von Java gibt es ein paar zur Auswahl. Einige sind kostenlos, andere in form von eingeschränkten Communityversionen erhältlich, andere sind kostenpflichtig. Allen gemein ist jedoch, dass man sie zum Programmieren von Java-Programmen gar nicht unbedingt braucht.

Ok. Und was brauche ich zum Programmieren?

Nicht so schnell. Vielleicht sollte ich kurz erwähnen, dass Java eine objektorientierte Programmiersprache ist. Man kann an tausend Stellen lesen, was das bedeutet. Anstelle der üblichen Erklärungen will ich das mal mit JavaScript vergleichen. Wird gerade von Laien meist für ein und das Selbe gehalten. Was es definitiv nicht ist!

Weiterlesen

Microsoft SQL Server Express in PHP verwenden

sql-server-php-logoWer PHP hört, denkt meist auch gleich an MySQL, was daran liegen mag, dass PHP für die interessierten Einsteiger meist auf dem Wege einer XAMPP-Installation seinen Weg auf die Festplatte findet. Und da gehört MySQL ebenfalls zum Lieferumfang. Vielleicht liegt auch darin der Irrglaube begründet, dass man PHP nicht ohne MySQL verwenden bzw. ausführen könnte. Fakt ist natürlich, dass man einen Webserver benötigt, der PHP ausführen kann. Ohne den geht es nicht – und ist im Fall von XAMPP Apache.

Und wer PHP nun auch zusammen mit SQL verwenden möchte, greift da natürlich – sofern er sich nicht die Mühe macht, alles selbst aufzusetzen – zu XAMPP und bekommt damit phpMyAdmin an die Hand gegeben. Abgesehen davon, dass ich diese Weboberfläche trotz des Funktionsumfangs für so ziemlich das unhandlichste DBMS halte, kann PHP natürlich auch mit anderen SQL-Datenbanksystemen zusammen arbeiten. Dafür wird dann selbstredend ein anderes DMBS benötigt.

Weiterlesen

Datenbankmanagementsystem (DBMS) – DBeaver

240px-DBeaver_logo.svg (1)Wieder möchte ich mich in kurzem Umfang, gerichtet an Anfänger, zu denen ich mich selbst zu diesem Zeitpunkt auch immer noch zähle, als Erklärbär versuchen. Dazu habe ich mir wegen eines Projektes mit PostgreSQL die Mühe gemacht, ein DBMS zu suchen. Da PostgreSQL ebenso wie mySQL frei und kostenlos verfügbar ist, gibt es eine breitere Auswahl an Verwaltungssoftware für die Datenbank. Im fertigen Installer wird – ähnlich phpMyAdmin für mySQL – eine Weboberfläche mitgeliefert: pgAdmin. Nettes Tool, vom UI her wesentlich aufgeräumter und übersichtlicher gestaltet als phpMyAdmin. Aber… in beiden DBMS vermisse ich die Möglichkeit, sich die grafische Darstellung der Tabellenrelationen anzeigen lassen zu können. Von Microsofts SQL Server Manager (SSMS) kenne ich die Funktion. Gut, ob phpMyAdmin da was bietet, habe ich offen gestanden nicht versucht in Erfahrung zu bringen, würde mir im Falle von pgSQL selbstverfreilich auch nichts helfen. pgAdmin bietet jedenfalls keinen solchen Service.

Weiterlesen

Versionsverwaltung: git – Ohne Schnick Schnack

Roger Dudler - git - Der einfache EinstiegProgrammieren wollen allein reicht nicht, es gibt auch das ein oder andere Tool, mit dem man sich auseinandersetzen sollte. Eine Versionierungssoftware gehört eindeutig zu diesen Tools.

Bevor ich auf den Schnick Schnack in meiner Überschrift eingehe – ich habe mir die Phrase in dem Zusammenhang mal frecher Weise ausgeliehen – möchte ich möglichst kurz erklären, was git – und im Speziellen eine Versionsverwaltung – ist und macht.

Weiterlesen

PHP – Konstanten und define() verwenden

Webentwicklung. Muss ich wohl nicht extra erwähnen, dass der Ursprung in der Arbeit liegt. Aber warum nicht darüber bloggen, wenn ich es selbst als Wiederholung des Gelernten verwenden und hier für mich und andere festhalten kann? Sicher, das lässt sich auch im PHP Manual nachlesen. Doch mag es dem einen oder anderen wie mir gehen. Ohne nennenswerte theoretische und praktische Vorkenntnisse versteht man die einfachste Anleitung nicht. Auch eine zwölfmonatige theoretische Umschulung bringt einem das Programmieren nicht bei, kleine Übungsprojekte hin oder her. Im erforderlichen neunmonatigen Praktikum blieben auch nur etwa sechs Monate für die reine Praxis. Und erst dort lernte ich, wie und wo Variablen und Methoden funktionieren und wie man sie selbst schreibt. Aus dem Grund werde ich meine Artikel anfängerfreundlich formulieren.

Weiterlesen

Synology – PHP benötigt Schreibrechte

Das hier ist also der erste Beitrag, der einen beruflichen Hintergrund hat. Um ein bisschen mit den Dingen zu experimentieren, die ich beruflich aktuell benötige bzw. in einem Projekt behandle, wollte ich meinem Synology NAS DS212j einem weiteren Einsatzzweck zukommen lassen: Webserver. Wenngleich nur im LAN. Natürlich kann – und habe ich auch – XAMPP installieren und nutzen. Denn Server könnte ich schließlich auch am Desktop starten und im LAN vom Laptop aus nutzen. Dennoch ist es einfacher, einen zentralen Speicherplatz für meine Arbeiten zu haben. Denn der Hintergrund ist der, dass ich nicht immer am Schreibtisch sitze. Hin und wieder sitze ich auch auf der Couch mit dem Laptop auf dem Schoß.

In dem Zusammenhang habe ich also versucht, mittels Webstation eine PHP Installation zu starten, welche Schreibrechte verlangt, aber nicht besaß. Wie ich einem Nutzer oder einer Gruppe diese Rechte gebe, ist mir bekannt. Wie aber gebe ich diese Rechte einer Datei? Da musste ich erst einmal schauen, was ich überhaupt bei Google eingebe.

web Ordner Berechtigungen

Letztlich wurde ich im Synology-Forum fündig. Offenbar hatten Benutzer und Gruppe http in meinen Einstellungen lediglich Leserechte. Um ein ausführbares PHP-Installationsskript laufen zu lassen, benötigt dieser Nutzer bzw. Gruppe natürlich auch Schreibrechte, da in den PHP-Dateien Änderungen vorgenommen werden. Denn irgendwo müssen Logins für eine Datenbank schließlich gespeichert werden. Die Lösung war also recht naheliegend und mit wenigen Klicks abgefrühstückt. Genau so wie dieser Beitrag es an dieser Stelle ist.