Archiv für den Monat: August 2017

Visual Basic lebt und ist Teil von .NET Core 2.0

Visual Basic ist ein Phänomen als Programmiersprache. Oft geschmäht, oft tot gesagt, selten gelobt, ist sie immer seit nunmehr über 25 Jahren immer noch da und hat, wie könnte es auch anders sein, eine Zukunft.

Bei .NET Core 2.0, der Open Source-Version des .NET Frameworks (vereinfacht umschrieben), die vor kurzem fertig gestellt wurde, wird VB erstmals offiziell dabei sein. Für Visual Studio 2017 muss mindestens Update 3 vorhanden sein. Für Visual Studio 2015 gibt es wie es aussieht leider keine Vorlagen. Falls nach der Auswahl von „Visual Basic“ bei VS 2017 kein „.NET Core“ als Unterkategorie angeboten wird, musst die IDE zuerst aktualisiert werden.

Visual Studio 2017 bietet neuerdings Vorlagen für VB und .NET Core

Damit läuft Visual Basic 2017 ganz offiziell mit dem Segen von Microsoft auch unter Linux, Mac OS und wo immer sich .NET Core 2.0 installieren lässt. Das ist zwar grundsätzlich nichts Neues, da es bereits vor vielen Jahren einen VB-Compiler als Teil des Mono-Projekts gab, doch ist es für mich ein wichtiges Signal dafür, dass die .NET Core-Verantwortlichen VB nicht vergessen haben (bzw. Irgendjemand mit Einfluss Druck gemacht hat).

Ich war bekanntlich immer ein großer Fan von VB, auch wenn ich den letzten Jahren fast nur noch in C# programmiert habe. Von daher waren die paar Zeilen VB-Code, die ich am Wochenende mit .NET Core 2.0 ausprobiert habe, schon etwas ungewohnt (wie hieß noch einmal das Pendant zum using-Befehl und wird eine for-Schleife nicht mit Next beendet?).

In Visual Studio 2017 ist die Umsetzung einfach wie immer. IDE starten, Vorlage auswählen, Code eintippen und auf F5 drücken. Es gibt natürlich auch einen Debugger.

Wichtig: Aktuell (Stand August 2017) muss .NET Core 2.0 noch separat installiert werden. Nach Auskunft von Rich Lander, einem der Verantwortlichen bei Microsoft für .NET Core, soll es erst mit Update 4 oder 5 Teil des Setups von Visual Studio sein:

https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-core-2-0/

VB-Programme können unter .NET Core natürlich auch debuggt werden

Auch mit Visual Studio Code kommt man zum Ziel, wenngleich es keine so schönen Eingabehilfen und vor allem (noch?) keinen Debugger gibt (sollte es so bleiben, was ich nicht hoffe, wäre das natürlich ein absolutes K.O-Kriterium).

Die folgende Schrittfolge (die Installation des .NET Core 2.0 SDK vorausgesetzt) führen mit Visual Studio Code zu einem Erfolgserlebnis:

1) Anlegen eines leeren Verzeichnisses in der Eingabeaufforderung bzw. PowerShell, z.B. mit dem Namen „HalloVB“, und wechseln in das Verzeichznis (cd HalloVB“).

2) Eingabe von „dotnet new console -lang vb“. Dadurch werden eine Projektdatei („HalloVB.vbproj“) und eine Quellcodedatei („Program.vb“) angelegt.

3) Eingabe des Quelltextes:

Das kleine Beispiel ist eine etwas absurde Mischung aus „moderner Programmierung“ (es kommt ein Lambda vor) und jenem Spaghetticode, für den BASIC früher berühmt-berüchtigt war. Also, ernst gemeint ist das Beispiel nicht.

4) Kompilieren und ausführen über „dotnet run“.

Danach sollen ein paar Meldungen in der Konsole erscheinen. Erzeugt wird übrigens keine Exe-, sondern eine Dll-Datei.

Mit Visual Studio 2017 geht natürlich alles sehr viel komfortabler. Ein Punkt, der für Visual Studio Code spricht ist natürlich, dass es auch unter Linux & Co läuft, was bei Visual Studio nicht der Fall ist und auch nie der Fall sein wird.

Auf alle Fälle hat es Spaß gemacht nach so vielen Jahren der „Abstinenz“ wieder ein paar Zeilen VB-Code in einen Editor inzutippen, die sich theoretisch 1:1 auf alle möglichen Plattformen übertragen lassen.

Visual Basic ist natürlich nicht nur bei .NET Core 2.0 dabei, sondern unter dem aktuellen Namen Visual Basic 2017 auch beim großen .NET Framework. Die Sprache hat mit den letzten Versionen ein paar interessante Neuerungen erhalten. Ich erwähne nur Iteratoren, Tupel und, viele es werden es kaum glauben, Zeilenumbrüche innerhalb eines Befehls, ohne dass ein Zeilenumbruchzeichen eingegeben werden muss.

Wie es aussieht werde ich auf der kommenden Basta! in Mainz dabei sein, die vom 23.9 bis 28.9.2017 stattfinden wird, und das neue Visual Basic in einem Vortrag vorstellen. Weitere Infos gibt es wie immer unter http://www.basta.net.

Einen sehr guten Überblick über die Neuerungen von VB 2017 gibt ein Blog-Eintrag des Visual Basic-Teams bei Microsoft geschrieben von VB-Experte Klaus Löffelmann:

https://blogs.msdn.microsoft.com/vbteam/2017/03/30/whats-new-in-visual-basic-2017/

Tipp: Visual Studio das Speichern von Textdateien im UTF-8-Format abgewöhnen

Visual Studio hat auch in der 2015-Version die Angewohnheit Textdateien im UTF-8-Format zu speichern und den aus drei Bytes EF, BB und BF bestehenden BOM (Byte Ordering Mark) voranzustellen. Während sich bei Quelltextdateien über Datei -> Speichern untern auch die Codierung einstellen lässt, habe ich diese Option für Textdateien, die Teil eines Projekts sind, nicht gefunden.

Eine genial einfache Lösung ist ein kleines Add-In, das automatisch vor dem Speichern einer Textdatei aktiv wird und dafür sorgt, dass die BOM-Bytes nicht geschrieben werden. Das Add-In gibt es unter der folgenden Adresse:

https://vlasovstudio.com/fix-file-encoding/

Nach der Installation der Erweiterung muss über Extras -> Optionen -> Fix File Encoding eingestellt werden, für welche Erweiterungen die Anpassung vorgenommen werden soll. Voreingestellt sind die Erweiterung Html und Htm. Sollen z.B. auch CSV-Dateien berücksichtigt werden, muss der kleine Regex lediglich um ein | erweitert werden, wobei für die Erweiterung steht.

Fix File Encofing-Add In kümmert sich darum, dass bei Textdateien kein BOM-Header vorangestellt wird