RTMになってからしばらく経ちますが、ちょっとやってみたのでφ(..)メモメモ
.NET Coreというと、ASP.NET Core向けのチュートリアルが多いですが、
ASP.Net Coreを使っていきなりWebサーバーを作ると、多くのファイルが一気にでてきて理解が難しくなりそうです。
そこで、.NET Coreを使ってコンソールアプリを作るところから順に始めたいと思います。
Node.jsを学ぶ際も、最初からexpressを使ったWebサイトの作成とかはせず、普通はNode.jsのコンソールアプリから入門しますよね!!
ということで、今日は.NET CoreのインストールからコンソールでHello Worldまで。
インストール
↓を参考に色々インストールします。
VS2015を使う場合は、Update3をインストール後、.NET Core 1.0.0 VS2015 Tooling Preview2というのをインストールすればOKです。
VSの拡張機能の画面から、以下の項目を選んで更新するか、
以下のページのリンクから、「.NET Core 1.0.0 - VS 2015 Tooling Preview 2」というのをインストールしてください。
https://www.microsoft.com/net/core#windows
プロジェクトを作ってみる
以下の二通りの方法で、それぞれプロジェクトを作ってみます。
- Visual Studioを使って作成
- コマンドラインで(テキストエディタはVSCodeを使用)
最初に書いた通り、今回は単純なHello Worldアプリを作るだけです。
Visual Studioで作成
VSから作成する場合は、新規プロジェクト作成のダイアログで、.Net Coreの項目から「Console Application(.NET Core)」という項目を選びプロジェクトを作成します。
プロジェクトの構造
出来上がったプロジェクトの中身を見てみます。
こんな構成のプロジェクトになっています。
Program.csを開き、Main関数内に以下のようにConsole.WriteLine
関数を追加して、Hello World!!という文字列の表示を行います。
Program.cs
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace ConsoleApp1 { publicclass Program { publicstaticvoid Main(string[] args) { Console.WriteLine("Hello World!!"); } } }
Ctrl+F5
で起動すると、「Hello World!!」が表示されます。
コマンドラインで作成
今度はVisual Studioを使わずに、コマンドラインからプロジェクトの作成&実行をしてみます。
dotnetコマンド
先ほどの「.NET Core 1.0.0 VS2015 Tooling Preview2」をインストールすると、dotnetコマンドが使えるようになっています。
Visual Studioは使わない、という場合には、別途「.NET Core SDK for Windows」をインストールしておけば大丈夫かと思います。
まずは、コマンドプロンプトでdotnet
コマンドを打ってみて、dotnetコマンドが使えるようになっているか確認しておきましょう。
VSCodeの拡張機能
VSCodeで編集する場合は、以下の拡張機能をインストールしておきます。
プロジェクト作成
プロジェクト用に適当な名前でディレクトリを作成しておきます。
この作成したディレクトリをカレントディレクトリにしてコマンドラインを開き、以下のコマンドを実行します。
dotnet new
すると、以下のようなプロジェクトとの雛形が作成されます。
Program.csは、以下のように単純なHelloWorldなコードとなっています。 Program.cs
using System; namespace ConsoleApplication { publicclass Program { publicstaticvoid Main(string[] args) { Console.WriteLine("Hello World!"); } } }
続いて、依存するアセンブリ類を取得します。
以下のコマンドを実行すればOK!!
dotnet restore
すると、project.lock.jsonというファイルが作成され、依存関係などの情報がすべて書き込まれたファイルが出来上がります。
依存ファイルの依存ファイルの・・・、と再帰的にたどって記録するようなので、結構でっかいファイルが出来上がってます。
Node.js環境でnpmを使うときのshrinkwrap.jsonのような立ち位置のファイルなのかな。
実行方法
以下のコマンドで、コンパイル&実行できます。
dotnet run
このとき、bin/Debugフォルダに以下のようなファイル類が出力されます。
デフォルトの設定では、exeファイルではなくdllファイルとして出力されるようです。
このdllファイルは、以下のようにdotnetコマンドに引数として渡すことで実行できるようになっています。
VSCode用の設定ファイル
先ほど作った雛形プロジェクトをVSCodeで編集していると、以下のようなメッセージが画面上部に表示されています。
ここで「Yes」というのを押すと、VSCodeでビルドやデバッグをするためのファイル類が生成されます。
launch.json
{"version": "0.2.0", "configurations": [{"name": ".NET Core Launch (console)", "type": "coreclr", "request": "launch", "preLaunchTask": "build", "program": "${workspaceRoot}\\bin\\Debug\\netcoreapp1.0\\dotnetcore-test.dll", "args": [], "cwd": "${workspaceRoot}", "externalConsole": false, "stopAtEntry": false, "internalConsoleOptions": "openOnSessionStart"}, {"name": ".NET Core Attach", "type": "coreclr", "request": "attach", "processId": "${command.pickProcess}"}]}
tasks.json
{"version": "0.1.0", "command": "dotnet", "isShellCommand": true, "args": [], "tasks": [{"taskName": "build", "args": ["${workspaceRoot}\\project.json"], "isBuildCommand": true, "problemMatcher": "$msCompile"}]}
これで、Ctrl+F5でビルド&実行したり、F5実行でVSCodeのデバッガでデバッグできるようになります。
.NET Coreで使用するproject.jsonについて
以前から少し話題には出てますが、project.jsonやxprojというファイルは今後使わなくなり、csprojに統一されるそうですです。
なので、ここで扱ったファイルのいくつかは、今後のバージョンでは使わなくなっていきます。
しかし、dotnet resotre
やdotnet build
などなど、基本的なdotnetコマンドの使い方は変わらないようなので、この辺のコマンドは今覚えた知識はそのまま使えるので一安心かと。
この辺の話は、以下のブログ記事に今後の情報が載っています。
https://blogs.msdn.microsoft.com/dotnet/2016/10/19/net-core-tooling-in-visual-studio-15/
今回はここまで。