~ dotnetConf 2016 Japan ~
.NET Coreとツール類の今
五十嵐 祐貴(いがらし ゆうき) @bonprosoft
Microsoft Student Partners Fellow, Microsoft MVP
サトヤ仙台
自己紹介
五十嵐 祐貴 (いがらし ゆうき) @bonprosoft
Microsoft Student Partners Fellow
Microsoft MVP for Visual Studio and Development Technologies
東北大学工学部 / サトヤ仙台代表 / セキュリティ・キャンプ
http://vbcpp.net/about/
.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 発行用にファイルをまとめる
など[※]
余談: .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も展開…
余談: .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
ランタイムを実行するために必要なライブラリ
.NET Coreで開発しようと思ったら…
.NET Core SDK with CLI
with Visual Studio Code
with Xamarin Studio
with Visual Studio
• 主に以下のツールが利用可能
o クロスプラットフォームで開発・デバッグが可能
Visual Studioを用いた.NET Coreアプリ開発
• Visual Studio 2015
o 現状は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
Dockerとは
• コンテナ型のアプリケーション仮想化技術
o コンテナ同士は独立
o サーバー仮想化とは異なり、OSカーネル等は共有
o Dockerfileに依存関係や構成を記述
⇒ 高速かつオーバーヘッドの少ないデプロイ・移行が可能
画像は http://patg.net/containers,virtualization,docker/2014/06/05/docker-intro/ より
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系
コンテナ
Visual Studio Codeを用いた.NET Coreアプリ開発
• C# extension
o .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”を使いましょう(公式アナウンス)
なお、両方の拡張機能の共存は不可能
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
dotnet new vs. yo aspnet
Q. yo aspnet ってなくなるんですか?
A. いや、そんなことはない。
新しいテンプレートツールを作って、
VSや dotnet new / yo aspnet などで
利用可能にしたい。(超意訳)
https://github.com/dotnet/cli/issues/2052#issuecomment-207031714
Demo
.NET Core Development with Visual Studio Code
Yeoman Generator for ASP.NET Core
Xamarin Studioを用いた.NET Coreアプリ開発
• Xamarin Studio
o Macで動作する.NET/Xamarinをターゲットとした
統合開発環境
o 現在はWindows版は提供されていない
• 導入方法
1. アドイン リポジトリ管理でAlpha channelを有効化
2. Add-in ManagerでDNXをインストール