かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

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なので、ちょっと挙動は違うかもしれませんが。