Wusstet ihr schon… Enumerationen?

Enumerationen oder auch Aufzählungen sind für den Computer nicht mehr und nicht weniger als Integer-Typen. Jede Aufzählung (außer jene, bei welchen man dies verändert hat) lässt sich zum Integer wandeln und jeder Integer kann zu einer Aufzählung gewandelt werden (für letzteres gelten allerdings einige Einschränkungen, da die  Zahl in der Aufzählung präsent sein muss). Darum kann auch jedem Eintrag in einer Aufzählung eine Ganzzahl zugewiesen werden (in der Regel verwendet man hier die 2er-Potenzen um so mittels „Flag“-Attribut „oder“, „und“ „exklusiv oder“ und die anderen Bit-Operatoren verwenden kann).  Weiterlesen

Einfaches Model-View-ViewModel nutzen unter WPF/C#

Inzwischen gibt es einige Frameworks für MVVM, besonders in Verbindung mit WPF und C#. Besonders einfach möglich ist dies mittels Cinch, welches wiederum MEFedMVVM nutzt. Die Links zu diesen beiden Projekten befinden sich am Ende dieses Posts. Diese Frameworks sind zum Einen kostenlos nutzbar und zum Anderen sehr gut dokumentiert. Außerdem steht eine entsprechend große Community hinter diesen Frameworks, die bei Fragen sehr gut unterstützt (natürlich sollte man hier am Besten Englisch beherrschen, aber dies ist in der Softwareentwicklung so oder so Grundvoraussetzung). Aber was genau sind dies für Frameworks?  Weiterlesen

Kommandos unter Ubuntu vereinfachen

Ich arbeite nun seit einigen Monaten bereits mit Ubuntu Servern und finde diese auch echt klasse. Allerdings gibt es hier einige Befehle, welche ich immer und immer wieder eingeben muss. Dies wären z.B.

sudo apt-get update 
sudo apt-get upgrade

oder in einer Zeile

sudo apt-get update && sudo apt-get upgrade

Aber Linux wäre ja nicht Linux, wenn es hierfür keine Vereinfachung geben würde, denn so können häufig verwendete oder schwer zu merkende Kommandos mit Shortcuts belegt werden. Hierzu gibt es im Home-Verzeichnis eine unsichtbare Datei mit den Namen „.bashrc“. In dieser werden Shortcuts für das Terminal aufgelistet und hinzugefügt. Weiterlesen

Typenwandlung in C#

Um einen Typen in einen anderen zu verwandeln, gibt es in C# mehrere Wege. Zum einen gibt es das typische „Casten“, zum anderen das „Safty Casten“ und dann noch die „Convert“-Klasse. Beginnen wir mit der „Convert“-Klasse, da diese sich ein wenig von den anderen unterscheidet. Diese bietet uns statische Methoden wie „ToInt32“, um z.B. einen String in einen Integer zu wandeln. Allerdings stehen hier nur die .NET Standard-Datentypen wie Byte, Short, Integer, Long, Float, Double, Decimal, Character und String jeweils Signed und Unsigned (zumindest die Ganzzahlen) zur Verfügung. Sollte hier eine Wandlung nicht möglich sein, wird eine Ausnahme ausgelöst.

Zusätzlich gibt es auch noch das typische „Casten“, welches in nahezu jeder objektorientierten Programmiersprache möglich ist. Auch hierbei wird eine Ausnahme ausgelöst, wenn die Typenwandlung nicht möglich ist. Zusätzlich gibt es im .NET über das „as“-Keyword noch das „Safty Casten“. Dies erledigt die Typenwandlung und im Falle des unmöglichen, wird keine Ausnahme ausgelöst, sondern der Standardwert des Zieltypen hergestellt. Bedingt durch das nicht auslösen der Ausnahme empfehle ich diese Art der Typenwandlung zu vermeiden, denn es sorgt dafür, dass Fehler länger gesucht werden müssen als nötig.

Visual Studio 2013: Der Stand der C++-Unterstützung

Kurzmitteilung

Microsoft wurde in der Vergangenheit immer wieder dafür kritisiert, die Sprach-Features neuerer C/C++-Standards nur zögerlich zu unterstützen. Insbesondere die Unterstützung von C99 und C++98 ist hier zu nennen, die bis heute nicht vollständig umgesetzt wurden und angesichts der Priorisierung auf C++11 und den Nachfolger C++14 weiterhin offen bleiben wird. Beim vor knapp zwei Jahren freigegebenen C++11 sieht es zumindest danach aus, dass das für Ende des Jahres angekündigte Visual Studio 2013 die wichtigsten Features des derzeit aktuellen Sprachstandards unterstützen wird.

Auf der BUILD-Konferenz war angekündigt worden, dass die nun freigegebene Preview der Entwicklungsumgebung die meisten neuen Sprachfunktionen implementiere. Andere Compiler-Infrastrukturen wie GCC und LLVM können auch erst seit kurzem mit sämtlichen Features von C++11 umgehen. Bis man bei Microsoft so weit ist, mag noch etwas dauern, zumindest gibt es für einen etwaigen Zeitpunkt keine konkreten Informationen. Weiterlesen