Auf zu neuen Ufern!

Mit Visual Studio Code plattformübergreifend programmieren
Kommentare

Auf der Build-Konferenz wurde eine neue Visual-Studio-Edition unter dem Namen Visual Studio Code (VS Code) vorgestellt. Microsoft wagt damit im Bereich der Softwareentwicklung den Sprung auf andere OS-Plattformen jenseits der Windows-Welt. Dieser Artikel erläutert und bewertet den aktuellen Funktionsumfang dieser brandneuen Visual-Studio-Edition sowie die dahinterliegende Microsoft-Strategie.

Bereits mit unseren Berichten zu den Visual-Studio- und Team-Foundation-Server-Softwareversionen zeigten wir auf, dass Microsoft seine Businessstrategie ändert [1]. Die Vorstellung von Visual Studio Code wirkt in diesem Sinne wie ein weiterer Paukenschlag. Weniger wegen der gezeigten Features des neuen Editors, sondern durch die Tatsache, dass Microsoft seine Softwareentwicklung nicht mehr auf die eigenen Betriebssystemplattformen beschränkt.

Zum einen erkennt damit Microsoft die Technologieplattformen außerhalb der Windows-Welt stärker an, als dies in der Vergangenheit der Fall war.

Zum anderen forciert Microsoft den Wettbewerb der verschiedenen Softwarelösungen. In der Dekade 2000 bis 2010 hatten wir in diesem Sinne ein statisches Bild. Die Schwerpunkte der Produktportfolios der einzelnen globalen Softwareanbieter waren klar definiert und wurden nur im geringen Maß angepasst. Seit Mitte der zweiten Dekade des neuen Jahrtausends kommt hier deutlich mehr Bewegung ins Spiel: Die Karten werden neu gemischt!

Wer sich mit Cloud-Entwicklungsumgebungen beschäftigt hat, dem werden Projektnamen wie „Napa“ oder „Monaco“ geläufig sein. „Napa“ ist eine komplette Entwicklungsumgebung für neue Office- und Windows-Apps, die in der Cloud und im Browser innerhalb weniger Minuten eingerichtet werden kann. Das Einrichten einer SharePoint-Entwicklungsumgebung auf einem lokalen Rechner kann beispielsweise durchaus einen ganzen Tag in Anspruch nehmen und mehr Hardwareressourcen erfordern, als viele Systeme zur Verfügung stellen. „Monaco“ ist die gleiche Entwicklungsumgebung, die über Microsoft Azure für Web- und Cloud-Anwendungen angeboten wird. Der nächste logische Schritt bestand darin, die Entwicklungsumgebung auch lokal anzubieten und das genau ist Visual Studio Code. Technisch basiert es auf modernen Webtechnologien wie HTML5 und JavaScript/TypeScript, verwendet einen Node-Server und kann dadurch auf einer Vielzahl von Plattformen betrieben werden.

Erster Eindruck von Visual Studio Code

Die Setup-Dateien können direkt von der Visual-Studio-Online-Website (Kasten: „Demos zu Microsoft-Entwicklungsprojekten“) heruntergeladen werden. Die Installation geht rasch von Hand. Die Programmdateien werden unter dem aktuellen Benutzer in AppData/Local/Cod/app-0.1.0 abgelegt. Als Ergebnis wird der Editor am Ende der Installation mit ersten Erläuterungen zur Bedienung aufgerufen.

Der Funktionsumfang von Visual Studio Code konzentriert sich auf das Editieren, Versionieren und Debuggen. Im Gegensatz zum klassischen Visual Studio gibt es keine Projektdateien. Der Editor kennt lediglich Dateien und Ordner. Visual-Studio-Solution- und Projektdateien können aber gelesen und beispielsweise für IntelliSense-Funktionen genutzt werden.

Demos zu Microsoft-EntwicklungsprojektenEin weiterer Unterschied in der Microsoft-Businessstrategie liegt in der neuen Offenheit gegenüber seinen Kunden im Softwareentwicklungsumfeld. Zu Visual Studio gibt es eine Reihe von Demoumgebungen, auf denen Softwareentwickler der ganzen Welt quasi die Produktweiterentwicklungen online verfolgen können. Nachfolgend sind hierzu einige Links zu interessanten Entwicklungsversionen zum Ausprobieren aufgeführt:

  • „Napa“ ist die Entwicklungsumgebung für neue Office- und Windows-Apps und kann hier getestet werden.
  • Auf Visual Studio Online kann der aktuelle Visual-Studio-Release-Kandidat, der Team Foundation Server CPT sowie die aktuelle Visual-Studio-Code-Version heruntergeladen werden.
Abb. 1: Oberfläche von Visual Studio Code

Abb. 1: Oberfläche von Visual Studio Code

Die Oberfläche ist sehr übersichtlich gestaltet (Abb. 1). Sie lässt sich in folgende Bereiche unterteilen:

  • Editor: Im Editor können bis zu drei Fenster nebeneinander dargestellt werden.
  • Sidebar: Die Sidebar beinhaltet verschiedene Sichten wie beispielsweise die Explorer-Darstellung der Dateien.
  • Statusbar: Die Statusbar liefert Informationen über die geöffneten Dateien.
  • Viewbar: Die Viewbar dient zum Umschalten der verschiedenen Sichten.

Auf der Sidebar befindet sich neben der Suche auch der Explore-Icon. Hierüber lässt sich ein Root-Verzeichnis festlegen, sodass alle darunterliegenden Verzeichnisse und Dateien auf der linken Seite neben dem eigentlichen Bearbeitungsfenster für die Dateiinhalte angezeigt werden. Durch einfaches Klicken auf eine Datei wird der entsprechende Inhalt im Editor angezeigt. Führt man danach einen CTRL + Klick auf eine andere Datei aus, so wird der Inhalt rechts neben der zuvor geladenen Datei angezeigt. So lassen sich Dateiinhalte rasch und bequem vergleichen. Geöffnete Daten führt VS Code auch unter einem Working-Files-Verzeichnis. So behält man auch bei vielen gleichzeitig geöffneten Dateien den Überblick.

Der Zustand von Visual Studio Code wird beim Schließen gespeichert, sodass beim nächsten Start die gleichen geöffneten Dateien wieder vorliegen. Die Auto Save-Funktion, die per Option im File-Menü aktiviert werden kann, unterstützt eine lückenlose Sicherung aller Codeänderungen. Bei Suchvorgängen im Quellcode wird eine Vorschau mit der Anzahl der Treffer angeboten. In den Suchoptionen kann der Datenbereich in Form von Ordern oder Dateien festgelegt werden, in welchem gesucht werden soll.

Oft ist die Liste der geöffneten Dateien lang. Deshalb ist es notwendig, schnell zwischen diesen navigieren zu können. Über CTRL + TAB kann eine Liste der geöffneten Dateien mit kompletter Pfadangabe in einem separaten Fenster übersichtlich dargestellt und die gewünschte Datei zur weiteren Bearbeitung ausgewählt werden.

Das Aussehen des Editors lässt sich im geringen Umfang anpassen. Microsoft hat hierzu drei Themes dem Editor zur Auswahl beigelegt.

Unterstützte Sprachen

Entwickler müssen heute in der Lage sein, rasch korrekten Programmcode zu realisieren. Ohne geeignete Tools ist das jedoch sehr schwierig. Offen gesagt bietet hier Visual Studio Code noch wenig. Einige interessante Werkzeuge existieren aber bereits und sollten unbedingt erwähnt werden.

Tabelle 1 gibt einen Überblick, welche Features bei welcher Sprache von Visual Studio Code dem Entwickler zur Verfügung gestellt werden.

Tabelle 1: Unterstütze Funktionen einzelner Sprachen

Tabelle 1: Unterstütze Funktionen einzelner Sprachen

In der Vergangenheit wurde das IntelliSense-Feature beim klassischen Visual Studio am häufigsten von der Entwicklercommunity nachgefragt. Aus diesem Grunde entschloss sich Microsoft dazu, schon in der ersten Version von Visual Studio Code diese wichtige Funktion anzubieten. Für JavaScript, JSON, HTML, CSS, Less, Sass, C# und TypeScript kann der Entwickler bei VS Code auf das IntelliSense-Feature zurückgreifen. Bei JavaScript, TypeScript und C# werden zusätzlich die verschiedenen Parameterleisten für überladene Funktionen angezeigt. Mittels Cursortasten wird ein einfaches Navigieren zwischen den besagten Parameterleisten möglich. Ferner werden Code-Snippets in Form von „Emmet Abbreviations“ in HTML, Razor, CSS, Less, Sass, XML und Jade unterstützt.

Kommandos können über CTRL + SHIFT + P eingegeben und über „?“ die Liste der verfügbaren Kommandos angezeigt werden. Mittels CTRL + F12 werden Sie zur Definition eines Symbols geführt. Mittels CTRL oder einfach mit dem Mauszeiger darüberfahren, können Sie sich im aktuellen Editorfenster die Definition anzeigen lassen. Sie können auch gezielt nach Informationen zu Symbolen über CTRL + SHIFT + O suchen.

Die Suche nach Referenzen kann schnell unübersichtlich werden. Deshalb werden die Ergebnisse der Referenzsuche oder der Definitionsanzeige im Editor dargestellt. Im betreffenden Inline-Fenster können gar Änderungen vorgenommen werden. Eine wichtige Zusatzinformation im Editor ist die Anzahl der Referenzen, um auf diese Weise das Risikopotenzial einer Änderung abzuschätzen oder auch den Aufbau einer Anwendung besser zu verstehen. Somit steht ein Teil der CodeLens-Funktionalität für C# bereits heute in Visual Studio Code zur Verfügung.

Das Umbenennen von Bezeichnern gehört auch zur täglichen Entwicklerarbeit und wird von VS Code für TypeScript und C# in allen relevanten Projektdateien unterstützt. Dank der Unterstützung des Compilerframeworks Roslyn werden Hinweise während der Eingabe in Form von kleinen Glühbirnen dargestellt. Nach dem Klicken auf das Glühbirnensymbol werden weitergehende Erläuterungen zum Fehler gegeben und mögliche Behebungsstrategien vorgeschlagen.

Abb. 2: Hinweise zur Codeoptimierung

Abb. 2: Hinweise zur Codeoptimierung

Um die Codequalität zu erhöhen, wird im Hintergrund der Code permanent analysiert und entsprechende Warnungen werden in der Statuszeile und in einem separaten Fenster angezeigt (Abb. 2).

Tastaturbefehle selbst festlegen

Bei aller Usability über grafische Oberflächen sind vor allen Keyboard-Shortcuts die zweckmäßigsten Werkzeuge für eine schnelle Codebearbeitung. Neben vielen anderen interessanten Informationen sind diese in der Visual-Code-Onlinedokumentation erläutert, und z. B. auch die wichtigsten Bedienungselemente des Editors. Diese Dokumentation kann auch über den Hilfeeintrag im Visual-Studio-Code-Menü erreicht werden. Es können auch eigene Tastaturbefehle definiert werden. Listing 1 zeigt hierzu einige Beispiele.

Listing 1

// Keybindings that are active when the focus is in the editor
{ "key": "home",       "when": "editorTextFocus", "command": "cursorHome" },
{ "key": "shift+home", "when": "editorTextFocus", "command": "cursorHomeSelect" },

// Keybindings that are complementary
{ "key": "f5",         "when": "inDebugMode",     "command": "workbench.action.debug.play" },
{ "key": "f5",         "when": "!inDebugMode",    "command": "workbench.action.debug.start" }

// Global keybindings
{ "key": "ctrl+f",                                "command": "actions.find" },
{ "key": "alt+left",                              "command": "workbench.action.navigateBack" },
{ "key": "alt+right",                             "command": "workbench.action.navigateForward" },

// Global keybindings using chords
{ "key": "ctrl+u l",                              "command": "omnisharp.show.generalLog" },
{ "key": "ctrl+u ctrl+l",                         "command": "omnisharp.show.generalLogOnSide" },

Auf jeden Fall müssen in der Definition key und command festgelegt sein. Optional ist das when-Kommando, das definiert, ob ein Tastaturkommando nur in bestimmten Fällen gelten soll. Hinter command ist eine entsprechende Methode anzugeben, welche mit dem Tastaturkommando ausgeführt werden soll.

Git-Versionsmanagement

Git erfreut sich als verteiltes Versionsmanagementsystem immer größerer Beliebtheit. Microsoft traf die generelle Entscheidung, Git mit seinen Entwicklungswerkzeugen zu unterstützen. So können inzwischen Visual Studio Online, das neue Visual Studio Code und auch die lokale Variante des Team Foundation Servers mit Git Daten austauschen. Natürlich besteht die Möglichkeit, auch jedes weitere Git Repository einzubinden.

Abb. 3: Darstellung von Merger-Konflikten

Abb. 3: Darstellung von Merger-Konflikten

Auch Visual Studio Code kann auf Git Repositories zugreifen. Eventuelle Merge-Konflikte werden dabei direkt im Editor angezeigt. In Kombination mit einem Git Repository werden die Zeilen in einer entsprechenden Farbe angezeigt, welche gelöscht (rot), hinzugefügt (grün) oder geändert (blau) wurden (Abb. 3).

Debugger

Interessant ist das Debugger-Feature. Es hat uns überrascht, in einem kompakten Editor wie Visual Studio Code einen integrierten Debugger vorzufinden (Abb. 4).

Abb. 4: Debugger

Abb. 4: Debugger

Das Debuggen ist jedoch nur ansatzweise mit der aktuellen VS-Code-Version möglich. Lediglich bei Node.js und ASP.NET 5 kann der Editor Debugging-Funktionalitäten anbieten. Die Unterstützung weiterer Sprachen ist jedoch für spätere Softwareversionen des Editors geplant.

Um die Anwendungen mit VS Code zu debuggen, ist vorab die launch configuration-Datei launch.json zu erstellen. Durch das Anklicken auf die launch oder configure-Aktionen erzeugt Visual Studio Code eine entsprechende launch.json. Danach kann der Debugger zur Untersuchung der betreffenden Anwendung genutzt werden.

Microsoft im Umbruch

Microsoft entwickelt sich rasant zum Anbieter für unterschiedliche Plattformen. In der Vergangenheit war ganz klar Windows die ausschließliche Zielplattform. Andere Plattformen wurden ausschließlich von Partnern abgedeckt. Im Zuge der Neuausrichtung als „mobile first and cloud first company“ ergänzt um das strategische Unternehmensziel „productivity and platform“ war es notwendig, auch andere Betriebssysteme zu unterstützen. Daher erfuhr die Visual-Studio-Produktfamilie eine Ergänzung durch Visual Studio Code, um auch Linux- und OS-X-Nutzern eine integrierte Entwicklungsumgebung zur Verfügung zu stellen.

Fazit

Aktuell ist der Funktionsumfang der „klassischen“ Visual-Studio-Editionen für Windows wesentlich größer, und es ist auch kein Wechsel auf Visual Studio Code empfehlenswert. Es ist eher als eine Ergänzung zum klassischen Visual Studio für weitere Betriebssysteme und Entwicklungen im Browser gedacht. Es ist ein schöner, schlanker Editor. Er ist rasch zu laden und sofort einsatzbereit. Schnelles Ausprobieren und Entwickeln auf einem Mac beispielsweise und ein nahtloser Übergang zu Visual Studio Enterprise oder Professional sind mögliche Nutzungsszenarien. Sicherlich wird Visual Studio Code weiterentwickelt werden. Denn es fehlen noch wichtige Features. Nicht nur im Bereich des angesprochenen Debuggers, auch bei Standardfunktionen wie Suchen und Ersetzen wären noch weitere Zusatzfeatures vorstellbar. Gemäß der Roadmap werden zukünftige Versionen von Visual Studio Code unter anderem auch Plug-ins unterstützen und die Debugging-Möglichkeiten werden ausgebaut. Diesbezüglich bleibt zu hoffen, dass der Editor seine Vorzüge als leichtgewichtiges Tool im Rahmen der Weiterentwicklung nicht einbüßt. Denn das Arbeiten damit macht wirklich Spaß. Da verzeiht man gerne das Fehlen des einen oder anderen Funktionsgimmicks. Doch hinter der Nachricht über ein neues Tool innerhalb der Visual-Studio-Produktfamilie liegen die entscheidenden Schlussfolgerungen woanders.

Wir hatten bereits in einigen unserer früheren Artikel entsprechende Fragen formuliert. Nun besteht jedoch Gewissheit: Microsoft vollführt einen radikalen Umbau seines Unternehmens. Es erfährt eine komplette Neuausrichtung. Mit ihr wird sich auch Microsofts Produkt-Portfolio grundlegend ändern. Und das ist gut so! Kontinuität ist in der Softwarebranche sicherlich zu befürworten. Doch hierin steckt auch ein gewisses Risiko. Schnell wird aus Kontinuität Stagnation: ein Alptraum für ein Technologiesegment. Denn die Softwarebranche konkurriert mit anderen Technologiesparten um die Gunst – um die Aufmerksamkeit des globalen Markts. Was kann da schlimmer als Gleichgültigkeit sein? So gesehen kommt die eigene Neuerfindung Microsofts zum richtigen Zeitpunkt. Nicht nur für Microsoft selbst, sondern für uns alle. Sie wird unsere Auffassung über Software und deren Bedeutung in allen Bereichen des Lebens verändern. Damit werden neue Gedankengänge, Ansätze, Verfahren und Lösungen möglich, welche wir heute noch nicht erkennen.

Links & Literatur

[1] Zimmermann, Torsten; Maar, Frank: „TFS 2015 wird offener und agiler“, in Windows Developer 6.2015, S. 8

Aufmacherbild: Sailboat in the bay near the island via Shutterstock / Urheberrecht: urs

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -