かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Visual Studio CodeでC#のコンソールアプリケーションを作る環境を整えよう

Visual Studio本体を入れるのはだるいし、ちょっとした実験するのに、わざわざVS立ち上げるのはだるいという感じの時はVisual Studio Codeで作れる環境を用意しておくのもいいかもしれません。ということでVisual Studio Codeが入ってるという前提で、そこからの手順を。

node.jsを入れよう

いきなりC#と関係ないですが、各種ツールがあるのでnode.js入れます。

Node.js

入ったらyoとgenerator-aspnetをインストールします。

npm install -g yo
npm install -g generator-aspnet

dotnet core sdkを入れよう

.NET CoreのSDKを入れます。

.NET - Powerful Open Source Development

以下のコマンドをうって何か出ることを確認します。

dotnet

出ない場合は、プログラムファイルの下にdotnetフォルダが出来てるのでパスを通しておきましょう。

C#拡張機能を入れよう

以下の拡張機能をVS Codeに入れます。

C# in Languages category for Visual Studio Code | Visual Studio Marketplace

プロジェクトを作ろう

環境設定は終わりです。プロジェクトを作りましょう。 コマンドプロンプトで以下のコマンドを実行します。

yo aspnet

以下のようなのが表示されるのでConsole Applicationを選びましょう。

     _-----_     ╭──────────────────────────╮
    |       |    │      Welcome to the      │
    |--(o)--|    │  marvellous ASP.NET Core │
   `---------´   │        generator!        │
    ( _´U`_ )    ╰──────────────────────────╯
    /___A___\   /
     |  ~  |
   __'.___.'__
 ´   `  |° ´ Y `

? What type of application do you want to create?
  Empty Web Application
> Console Application
  Web Application
  Web Application Basic [without Membership and Authorization]
  Web API Application
  Class Library
  Unit test project (xUnit.net)

プロジェクト名を聞かれるので適当につけます。ここではHelloWorldにしました。

フォルダをVS Codeで開きます。デバッグのためとかに必要な物を追加するか?とかrestoreするか?みたいなことが聞かれるのでYesを選択します。

Program.csを編集すると、こんな感じにインテリセンスがききます。

f:id:okazuki:20160902112009p:plain

さくっと以下のようなコードを書きましょう。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace HelloWorld
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello world");
        }
    }
}

F5で実行できます。

f:id:okazuki:20160902122051p:plain

NuGetパッケージを追加してみよう

project.jsonを開いてdependenciesの所に参照を追加します。JSON.NETを追加してみましょう。ここでもインテリセンスがききます。

f:id:okazuki:20160902122302p:plain

バージョン番号も

f:id:okazuki:20160902122410p:plain

Ctrl + でターミナルを表示してdotnet restoreと打ち込んで依存関係を解決します。 そうすると、こんな感じでCtrl + .using`の追加とかもやるようなサジェストが出てきます。

f:id:okazuki:20160902122856p:plain

さくっと以下のようなコードを書いて

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Newtonsoft.Json;

namespace HelloWorld
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello world");

            var d = new Dictionary<string, object>
            {
                { "Name", "Tanaka" },
                { "Age", 13 },
            };

            var json = JsonConvert.SerializeObject(d);
            Console.WriteLine(json);
        }
    }
}

実行してみましょう。

ちなみに、さっきはF5でデバッグ実行しましたがCtrl + F5でデバッグなしで実行もできます。 こんな感じの実行結果になりました。

f:id:okazuki:20160902123155p:plain

まとめ

プロジェクトの作成からCodeで出来たらいいなぁとは思うものの、Visual Studio 2015を立ち上げるほどではないけどC#試したいなというときには、そこそこいいかもしれません。 まぁ.NET Framework 4.xじゃなくて.NET Coreなので、ちょっと挙動は違うかもしれませんが。