VS Code extension for developing Microsoft SQL Server

Die Beliebtheit und das Ökosystem des Microsoft open source Editor VS Code wächst täglich. Wer mit dem Microsoft SQL Server arbeitet kann dafür entweder das SQL Server Management Studio, Visual Studio oder mit "Fremd"-Software nutzen.

Für VS Code gibt es dafür mittlerweile auch ein Extension "mssql", die eine sehr komfortable Arbeitsweise - direkt in VS Code - erlaubt. Die Extension unterstützt:

  • Microsoft SQL Server
  • Azure SQL Database
  • SQL Data Warehouse

Nach der Installation der Extension kann man mit den folgenden Schritten eine SQL Query ausführen:

  1. Ein neues Dokument erstellen und als Sprache SQL auswählen F1 Change Language Mode => SQL

  2. Anschließend kann man mit F1 MS SQL: Connect eine Connection zu einem MS SQL Server auswählen oder definieren.  


  3. Nachdem die Connection aufgebaut wurde, bietet einem das Plugin auch Unterstützung (IntelliSense) während des Schreibens einer SQL Query an. Man erhält nicht nur eine Liste der SQL Keyword, auch Inhalte - z.B. Tabellen, Views - werden einem vorgeschlagen.

  4. Um eine SQL Query auszuführen kann man entweder F1 MS SQL: Execute Query oder den Shortcut STR+UMSCHALT+E nutzen.
    Das Ergebnis wird dann wie folgt ausgegeben und kann direkt als JSON oder CSV exportiert werden.

 

Im Footer vom VS Code sieht man auch zu jederzeit welche Connection grade aktiv ist. Hier kann man auch die Connections schnell wechseln - Alternative dazu F1 MS SQL: Connection.

 

 

 

Setup DotNet Core Development Environment mit Visual Studio Code

.NET Core ist die neue Plattform für die schnelle und modulare Entwicklung von Server-Anwendungen, die auf Windows, Linux und Mac. Diese Betriebsysteme können nicht nur für die Entwicklung sondern auch der Betrieb / Hosting der Anwendung genutzt werden. Als Entwicklungsumgebung steht für .NET Core nicht nur das mächtigen Visual Studio (Express, Professional, ..)  sondern auch das Visual Studio Code zur Verfügung. Die Besonderheit an Visual Studio Code ist, dass diese Cross-Plattform lauffähig ist und somit auch auf Windows, Linux oder dem Mac zur Verfügung steht. Durch Erweiterungen erreicht man eine super Unterstützung für C# im Bezug auf IntelliSense oder auch Debugging. 

Benötigte Software

Um eine Anwendung - die man wie z.B. hier "Neues DotNet Core Projekt auf der Komandozeile erzeugen" beschrieben - zu bearbeiten, müssen folgende Komponenten installiert werden:

Start developing in VS Code

Öffnet man ein Projekt, dass auf der Kommandozeile erstellt wurde, zeigt VS Code folgende Meldung an:

Die untere Meldung "There are unresolved dependencies from 'project.json'. Please execute restore command' weißt einen darauf hin, dass in dem Verzeichnis noch kein dotnet restore aufgerufen wurde. Durch den blauen Button "Restore" erledigt VS Code diese Aufgabe - eine Alternative ist, dieses auf der Kommandozeile mit dem Befehl dotnet restore durchzuführen. 

Im Output Fenster sieht man dann folgende Ausgabe:

log  : Restoring packages for c:\dng\dng.sample\project.json...
log  : Writing lock file to disk. Path: c:\dng\dng.sample\project.lock.json
log  : c:\dng\dng.sample\project.json
log  : Restore completed in 2161ms.

Die Meldung "Required assets to build and debug are missing from your project." besagt das VS Code spezifische Konfigurationsdateien nicht vorhanden sind, um den Build- und Debug-Prozess auszuführen. Die dafür notwendigen Konfigurationsdateien Launch.json und Tasks.json werden im Ordner .vscode erzeugt. 

Die erzeugte launch.json Datei sieht wie folgt aus:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceRoot}\\bin\\Debug\\netcoreapp1.1\\dng.sample.dll",
            "args": [],
            "cwd": "${workspaceRoot}",
            "externalConsole": false,
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart"
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command.pickProcess}"
        }
    ]
}

Auf die Detail werden ich bestimmt später detailierte eingehen. Diese Variante reicht zumindest, um mit F5 das erzeugte Projekt zu debuggen. Der Debugger in VS Code sieht dann wie folgt aus: