.NET Coreとツール類の今

31
dotnetConf 2016 Japan .NET Core とツール類の今 五十嵐 祐貴(いがらし ゆうき) @bonprosoft Microsoft Student Partners Fellow, Microsoft MVP サトヤ仙台

Transcript of .NET Coreとツール類の今

Page 1: .NET Coreとツール類の今

~ dotnetConf 2016 Japan ~

.NET Coreとツール類の今

五十嵐祐貴(いがらしゆうき) @bonprosoft

Microsoft Student Partners Fellow, Microsoft MVPサトヤ仙台

Page 2: .NET Coreとツール類の今

自己紹介

五十嵐祐貴 (いがらし ゆうき) @bonprosoft

Microsoft Student Partners Fellow

Microsoft MVP for Visual Studio and Development Technologies

東北大学工学部 / サトヤ仙台代表 / セキュリティ・キャンプ

http://vbcpp.net/about/

Page 3: .NET Coreとツール類の今

セッションのゴール

.NET Core向けに使えるツール類の最新動向を知る

各種ツール類の立ち位置を知る

.NET Coreアプリケーション開発の最初の手がかりを得る

ハッシュタグは #dotnetconfJpです

Page 4: .NET Coreとツール類の今

突然ですが問題です

• .NET Coreで最低限開発に必要なツールを整えるのに必要な時間はどれくらい?

A)5分

B)10分

C)30分

D)1時間

Page 5: .NET Coreとツール類の今

Demo .NET Core Development with .NET Core SDK+CLI

Page 6: .NET Coreとツール類の今

.NET Core SDK + .NET Command Line Interface tools

• 環境構築(Windows)1. http://dot.netから.NET Core SDK Installerをダウンロード

2. インストール スタンドアロン版も以下から入手可能(ただし最新ビルド版が降ってくるので注意)

https://github.com/dotnet/cli

インストールスクリプトも利用可能

dotnet-install.ps1 / dotnet-install.sh

https://docs.microsoft.com/en-

us/dotnet/articles/core/tools/dotnet-

install-script

Page 7: .NET Coreとツール類の今

.NET Core SDK + .NET Command Line Interface tools

> dotnet

※ https://github.com/dotnet/cli/tree/rel/1.0.0/src/dotnet/commands

o アプリケーションの実行

> dotnet example.dll

o アプリケーションの開発(要SDK)

new 新規プロジェクトの作成

restore プロジェクトに必要なパッケージの復元

build/run プロジェクトをビルド

test ユニットテストを実行

pack NuGetパッケージとしてパッケージング

publish 発行用にファイルをまとめる

など[※]

Page 8: .NET Coreとツール類の今

余談: .NET Core SDK Installerの中身

• WiXインストーラを展開o dotnet-dev-win-x64.1.0.0-preview2-003121.msi

o dotnet-sharedframework-win-x64.1.0.0.msi

o dotnet-host-win-x64.1.0.1.msi

o dotnet-hostfxr-win-x64.1.0.1.msi

• さらにmsiも展開…

Page 9: .NET Coreとツール類の今

余談: .NET Core SDK Installerの中身

o dotnet-dev-win-x64.1.0.0-preview2-003121.msi

dotnet.dll (dotnet [Command]の中身), csc.dll など

o dotnet-sharedframework-win-x64.1.0.0.msi

dotnet.dllなど動作させるのに必要な共有ライブラリ群

o dotnet-host-win-x64.1.0.1.msi

ランタイム本体

o dotnet-hostfxr-win-x64.1.0.1.msi

ランタイムを実行するために必要なライブラリ

Page 10: .NET Coreとツール類の今

.NET Coreで開発しようと思ったら…

.NET Core SDK with CLI

with Visual Studio Code

with Xamarin Studio

with Visual Studio

• 主に以下のツールが利用可能o クロスプラットフォームで開発・デバッグが可能

Page 11: .NET Coreとツール類の今

(再掲)突然ですが問題です

• .NET Coreで最低限開発に必要なツールを整えるのに必要な時間はどれくらい?

A)5分

B)10分

C)30分

D)1時間

.NET Core SDK with CLI

with Visual Studio Code

with Xamarin Studio

with Visual Studio

Page 12: .NET Coreとツール類の今

Visual Studioを用いた.NET Coreアプリ開発

• Visual Studio 2015o 現状はWindows上でのみ動作

o .NET Coreに対しても強力な開発支援を提供

o 無償版のCommunityエディションも公開学生や個人開発者は従来の有償版機能を無料で利用可能に

• 導入方法1. Visual Studio Update 3を適用

2. .NET Core 1.0 for Visual Studio をインストールhttps://go.microsoft.com/fwlink/?LinkId=817245

Page 13: .NET Coreとツール類の今

Dockerとは

• コンテナ型のアプリケーション仮想化技術o コンテナ同士は独立

o サーバー仮想化とは異なり、OSカーネル等は共有

o Dockerfileに依存関係や構成を記述

⇒高速かつオーバーヘッドの少ないデプロイ・移行が可能

画像は http://patg.net/containers,virtualization,docker/2014/06/05/docker-intro/ より

Page 14: .NET Coreとツール類の今

Dockerとは

• WindowsにおけるDockerの利用o 外部のDockerホスト(Linux)に接続

o Docker for Windows (Public beta)

Hyper-V上にDockerホストとなるLinuxマシンを配置し接続

o Docker Toolbox

VirtualBox上にDockerホストとなるLinuxマシンを配置し接続

Linuxコンテナ

Page 15: .NET Coreとツール類の今

Dockerとは

• WindowsにおけるDockerの利用o 外部のDockerホスト(Linux)に接続

o Docker for Windows (Public beta)

Hyper-V上にDockerホストとなるLinuxマシンを配置し接続

o Docker Toolbox

VirtualBox上にDockerホストとなるLinuxマシンを配置し接続

o Windows Server Container

o Hyper-V Container

Linuxコンテナ

Windows系コンテナ

Page 16: .NET Coreとツール類の今

.NET Core Docker Image

• Docker向けの.NET Coreイメージo Linuxコンテナ以外にWindowsコンテナ向けのイメージも公開済み

https://hub.docker.com/r/microsoft/dotnet/

> docker pull microsoft/dotnet

Page 17: .NET Coreとツール類の今

Visual Studio 2015とDocker

• Docker Tools for Visual Studio 2015 – Previewo Visual StudioからDockerイメージ/コンテナの作成や管理を行うことが可能に

o Windowsコンテナもサポート予定

Page 18: .NET Coreとツール類の今

Demo .NET Core Development with Visual Studio 2015

Docker Tools for Visual Studio

Page 19: .NET Coreとツール類の今

クロスプラットフォームな開発支援環境

Page 20: .NET Coreとツール類の今

• クロスプラットフォームで動作する高機能なエディタ

o https://github.com/Microsoft/vscode

o 30以上の言語に対応

o OSS系ツールと強力な連携

npm – Node パッケージマネージャー

Bower – Twitter社製クライアントサイドパッケージマネージャー

Grunt, gulp – ビルドタスク自動化ツール(タスクランナー)

など

o 拡張機能の導入によりさらに高機能に

Visual Studio Code

+ +

Page 21: .NET Coreとツール類の今

Demo Visual Studio Code Overview

Page 22: .NET Coreとツール類の今

Visual Studio Codeを用いた.NET Coreアプリ開発

• C# extensiono .NET Core向けの開発支援・デバッグ用拡張機能

IntelliSense, 定義へ移動, すべての参照を検索 など…

o 内部のエンジンにはOmniSharpを採用https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp

> ext install csharp

.csprojの読み込みが一時的に無効状態(OS XとLinuxのみ)⇒ OS X / Linux上でのMono / Unityアプリケーションの開発には

“Legacy C# Support extension”を使いましょう(公式アナウンス)

なお、両方の拡張機能の共存は不可能

Page 23: .NET Coreとツール類の今

Yeoman / Yeoman generator for ASP.NET Core

> yo aspnet

• .NET Core向けテンプレート生成ツールo クロスプラットフォームで動作

o 様々な種類のプロジェクトテンプレートの作成が可能

o Sub Generatorを用いるとクラス単位での生成も可能

• 導入方法1. Node.jsをインストール https://nodejs.org/en/

2. Yeomanをインストール npm install –g yo

3. Bowerをインストール npm install –g bower

4. ASP.NET Coreのジェネレーターをインストール

npm install –g generator-aspnet

Page 24: .NET Coreとツール類の今

dotnet new vs. yo aspnet

Page 25: .NET Coreとツール類の今

dotnet new vs. yo aspnet

Page 26: .NET Coreとツール類の今

dotnet new vs. yo aspnet

Q. yo aspnet ってなくなるんですか?

A. いや、そんなことはない。

新しいテンプレートツールを作って、VSや dotnet new / yo aspnet などで利用可能にしたい。(超意訳)

https://github.com/dotnet/cli/issues/2052#issuecomment-207031714

Page 27: .NET Coreとツール類の今

Demo .NET Core Development with Visual Studio Code

Yeoman Generator for ASP.NET Core

Page 28: .NET Coreとツール類の今

Xamarin Studioを用いた.NET Coreアプリ開発

• Xamarin Studioo Macで動作する.NET/Xamarinをターゲットとした統合開発環境

o 現在はWindows版は提供されていない

• 導入方法1. アドインリポジトリ管理でAlpha channelを有効化

2. Add-in ManagerでDNXをインストール

Page 29: .NET Coreとツール類の今

Xamarin Studioを用いた.NET Coreアプリ開発

• 導入方法3. Xamarin Studioを再起動すると…

新規プロジェクト作成画面

Page 30: .NET Coreとツール類の今

.NETの将来

.NET FRAMEWORK .NET CORE XAMARIN TOOLS

Page 31: .NET Coreとツール類の今

まとめ

• .NET Coreアプリケーションはクロスプラットフォームで開発可能

• 開発環境の導入は非常に簡単

• 多くのツールがオープンソースとして公開済

今すぐ開発に挑戦してみよう!

祝 .NET Core 1.0 RTMリリース