visual studio 2017 rc c# まわり

75
Visual Studio 2017 RC C# まわりをチェック 2016/12/01 【bitFlyer TechNight】 vol.2 C# LT Meetup! 矢後 比呂加 @miso_soup3

Upload: miso-soup3

Post on 06-Jan-2017

1.157 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Visual Studio 2017 RC C# まわり

Visual Studio 2017 RCC# まわりをチェック

2016/12/01 【bitFlyer TechNight】 vol.2 C# LT Meetup!

矢後 比呂加

@miso_soup3

Page 2: Visual Studio 2017 RC C# まわり

この発表について• 対象者

• Visual Studio (Windows) で開発する C# 開発者

• Visual Studio 2017 に興味のある方

• 内容• Visual Studio 2017 RC における C# まわりの機能をピックアップ

• ゴール• Visual Studio 2017 RC の C# まわりを、何となく掴む

• 今後、Visual Studio 2017 を触ったときに、新機能を思い出して調べることができる

Page 3: Visual Studio 2017 RC C# まわり

目次Visual Studio 2017 RC とは Visual Studio 2017 RC とは

所感

コードスタイル コードスタイル名前指定の設定EditorConfig

コードナビゲーション 移動先 Ctrl + T すべての参照の検索構造のガイド線

インテリセンスの強化

クイックアクション(Ctrl + .)の操作が追加

デバッグと診断 Run To Clickプロセスにアタッチ例外ヘルパー

拡張機能 新しい拡張機能の形式拡張機能マネージャーのローミング

IDE フォルダーで開くライトウェイトソリューションロードシンタックスハイライト等のサポート追加

ライブユニットテスト

リファレンス

Page 4: Visual Studio 2017 RC C# まわり

Visual Studio 2017 RC とは• 2015/7 Visual Studio 2015 リリース後、

次の Visual Studio のバージョン

• 2016/11/16 イベント「Connect(); //2016」にて、Visual Studio 2017 RC を発表

• 旧称:Visual Studio “15”, Visual Studio vNext

Page 5: Visual Studio 2017 RC C# まわり

※ RC なので、発表内容とは変更になる可能性があります。

GitHub の Roslyn プロジェクトのマイルストーンより

Visual Studio 2017 RC とは

いまここ

これから

これから

Page 6: Visual Studio 2017 RC C# まわり

所感• コードスタイル、リファクタ―、インテリセンスの強化

• Roslyn

• 開発にプラスして、大規模なソリューションや知らないコードにおける読解のサポート

• 部品構成なインストール

• Visual Studio 内で閉じない、他のエディターでも使える機能

Page 7: Visual Studio 2017 RC C# まわり

コードスタイルコードスタイル

名前指定

EditorConfig

Page 8: Visual Studio 2017 RC C# まわり

コードスタイル・コードスタイルの項目が更新

・名前指定が追加

Page 9: Visual Studio 2017 RC C# まわり

コードスタイル:全般• スタイルに関する設定が追加

this を付けるか

var か型の明示か

Int32 か int か

object初期化子

インライン変数定義

null チェックの書き方

Page 10: Visual Studio 2017 RC C# まわり

コードスタイル:全般var で試してみる。

• None

Page 11: Visual Studio 2017 RC C# まわり

コードスタイル:全般• Suggestion

Page 12: Visual Studio 2017 RC C# まわり

コードスタイル:全般• Warning

Page 13: Visual Studio 2017 RC C# まわり

コードスタイル:全般• Error

Page 14: Visual Studio 2017 RC C# まわり

コードスタイル:名前指定• 名前付けのルールを設定できるように

※「非同期で終わる」はたぶん適切でない訳

Page 15: Visual Studio 2017 RC C# まわり

コードスタイル:名前指定• 名前の種類 • ルール

Page 16: Visual Studio 2017 RC C# まわり

コードスタイル:EditorConfigコードのスタイルを…

• プロジェクト単位で設定できる

• コードベースで設定

• プラグインは要らない、 Visual Studio 2017 に搭載予定

• Visual Studio 以外でもOK

インデント方式(タブ・スペース)や改行コード等。

Page 17: Visual Studio 2017 RC C# まわり

コードスタイル:EditorConfigツールのオプションで設定してみる

インデントを、「スペース」「4」に設定

Page 18: Visual Studio 2017 RC C# まわり

コードスタイル:EditorConfigプロジェクト配下に 「.editorconfig」を作成する

インデントを「タブ」に設定

Page 19: Visual Studio 2017 RC C# まわり

コードスタイル:EditorConfig.editorconfigで設定したスタイルが適用される

(※ファイルの開きなおしが必要)

Page 20: Visual Studio 2017 RC C# まわり

コードスタイル:EditorConfig同じソリューション配下でも、プロジェクト毎に設定が可能

Page 21: Visual Studio 2017 RC C# まわり

コードスタイル:EditorConfig• EditorConfig.org

異なるエディタ・IDE

でも、一貫した

コーディングスタイルを

定義・維持する。

RubyMine、Atom、

Xcode、PhpStorm、

Visual Studio Code

等 どんなエディタでもEditorConfigを使ってコードの統一性を高める -Qiita http://qiita.com/naru0504/items/82f09881abaf3f4dc171

Page 22: Visual Studio 2017 RC C# まわり

コードスタイル:EditorConfig主な設定項目

• indent_style

• tab_width

• end_of_line

• charset

• trim_trailing_whitespace

• insert_final_newline

• root• どの.editorconfigを見るかのための設定。• .editorconfigはサブフォルダまで見る。• root=trueの記述がある.editorconfigが決定となる。

Page 23: Visual Studio 2017 RC C# まわり

C# 用の項目として、

var や 初期化等も設定可能

になる予定?

コードスタイル:EditorConfig

editorconfig codestyle options by jmarolf ·Pull Request #15029 · dotnet/roslyn

https://github.com/dotnet/roslyn/pull/15029

Page 24: Visual Studio 2017 RC C# まわり

コードナビゲーション移動先 Ctrl + T

すべての参照の検索

構造のガイド線

Page 25: Visual Studio 2017 RC C# まわり

コードナビゲーション:移動先• 目的のオブジェクトを見つけて移動する機能

• Ctrl + T(or Ctrl + ,)

• フィルター)

Page 26: Visual Studio 2017 RC C# まわり

コードナビゲーション:移動先• あいまい検索

• 「FrstName」というタイプミスで、「FirstName」と「LastName」が結果に表示される。

Page 27: Visual Studio 2017 RC C# まわり

コードナビゲーション:移動先• ファイルを探す「t controller」

Page 28: Visual Studio 2017 RC C# まわり

コードナビゲーション:移動先• メンバーを探す「m get」

Page 29: Visual Studio 2017 RC C# まわり

コードナビゲーション:移動先• 行「:24」

Page 30: Visual Studio 2017 RC C# まわり

コードナビゲーション:移動先・単なる文字検索はできない

例:SuppressMessage属性にひっかからない

Page 31: Visual Studio 2017 RC C# まわり

コードナビゲーション:すべての参照の検索

• 「すべての参照の検索(Shift + F12)」が改良• 色付け、グルーピング、フィルター、並び替え、検索、プレビュー

Page 32: Visual Studio 2017 RC C# まわり

コードナビゲーション:すべての参照の検索

• プレビュー表示(C#およびVB)

「結果を保持」で、

ウィンドウを別にして結果を保持できる

Page 33: Visual Studio 2017 RC C# まわり

コードナビゲーション:すべての参照の検索

• 範囲指定

Page 34: Visual Studio 2017 RC C# まわり

コードナビゲーション:すべての参照の検索

• ちなみに Visual Studio 2015 の「すべての参照の検索」

Page 35: Visual Studio 2017 RC C# まわり

コードナビゲーション:すべての参照の検索

「すべてを検索」には対応していない(´・ω・`)残念

Page 36: Visual Studio 2017 RC C# まわり

コードナビゲーション:構造のガイド線• デフォルトで表示される縦線

• 現在、C#、Visual Basic、XAML のファイルに加えて、TextMate 文法を介してサポートされるすべてのファイルでサポート

Page 37: Visual Studio 2017 RC C# まわり

コードナビゲーション:構造のガイド線

Page 38: Visual Studio 2017 RC C# まわり

インテリセンスの強化クイックアクション Ctrl + .

Page 39: Visual Studio 2017 RC C# まわり

インテリセンスの強化• インテリセンスでフィルターが可能に

フィルター項目• ローカルおよびパラメーター• メソッド• インターフェイス• クラス• 構造• 列挙型• デリゲート• 名前空間• キーワード• スニペット

「Alt+(頭文字)」でショートカットアクセス(メソッドはAlt + M)

Page 40: Visual Studio 2017 RC C# まわり

クイックアクション(Ctrl + .)の操作が追加

クイックアクション(Ctrl + .)とは

• リファクタリング機能で、Visual Studio 2015 から追加された機能

• Roslyn による拡張が可能

→ リファクタリングできるものが増えました

Page 41: Visual Studio 2017 RC C# まわり

クイックアクション(Ctrl + .)の操作が追加

オブジェクト初期化の単純化

Page 42: Visual Studio 2017 RC C# まわり

クイックアクション(Ctrl + .)の操作が追加

C# 7 インライン out 宣言

Page 43: Visual Studio 2017 RC C# まわり

クイックアクション(Ctrl + .)の操作が追加

C# 7 スロー式

Page 44: Visual Studio 2017 RC C# まわり

クイックアクション(Ctrl + .)の操作が追加

C# 7 スロー式

デフォルトでは、すでに不透明に。

Page 45: Visual Studio 2017 RC C# まわり

クイックアクション(Ctrl + .)の操作が追加

挿入文字列への変換

string.Format(“Hi, {0}”, name) //から、

$“Hi, {name}” //C# 6 で追加された書き方へ

Page 46: Visual Studio 2017 RC C# まわり

クイックアクション(Ctrl + .)の操作が追加

定義されている型を、

別のファイルとして移動

Page 47: Visual Studio 2017 RC C# まわり

クイックアクション(Ctrl + .)の操作が追加

ファイル名と型名が違うとき、どちらかに統一

Page 48: Visual Studio 2017 RC C# まわり

クイックアクション(Ctrl + .)の操作が追加

プロパティをメソッドに

Page 49: Visual Studio 2017 RC C# まわり

クイックアクション(Ctrl + .)の操作が追加

長い文字列の途中で改行すると "" + "" に置き換えてくれる

(クイックアクションではなく)

改行したいところで改行キー ↓

Page 50: Visual Studio 2017 RC C# まわり

デバッグと診断Run To Click

プロセスにアタッチ

例外ヘルパー

Page 51: Visual Studio 2017 RC C# まわり

デバッグと診断:Run To Click

1 Click で、指定行まで実行できるように

今までは止めたいところに Break Point を設置し、

デバッグを進めていた

Page 52: Visual Studio 2017 RC C# まわり

デバッグと診断:プロセスにアタッチ

検索できるようになりました

Page 53: Visual Studio 2017 RC C# まわり

デバッグと診断:プロセスにアタッチ

検索できるようになりました

Page 54: Visual Studio 2017 RC C# まわり

デバッグと診断:プロセスにアタッチ

前回デバッグしていたプロセスに、

再アタッチできるようになりました

(“再アタッチしています…”と進行形になっていますが、訳が変だと推測。)

Page 55: Visual Studio 2017 RC C# まわり

デバッグと診断:例外ヘルパー

例外のダイアログの表示デザインが変更に

Page 56: Visual Studio 2017 RC C# まわり

デバッグと診断:例外ヘルパー

中断の条件を編集できるように

Page 57: Visual Studio 2017 RC C# まわり

デバッグと診断:例外ヘルパー

• 同じ行で、どこでnullが発生したかわかるように:

Page 58: Visual Studio 2017 RC C# まわり

デバッグと診断:例外ヘルパー

• Inner Exception も表示

Page 59: Visual Studio 2017 RC C# まわり

デバッグと診断:他• IntelliTrace では、ASP.NET Core アプリの MVC、ADO.NET、

HttpClient イベントがサポート

• 関数に対するCPU率

Page 60: Visual Studio 2017 RC C# まわり

拡張機能新しい拡張機能の形式

拡張機能マネージャーのローミング

Page 61: Visual Studio 2017 RC C# まわり

新しい拡張機能の形式• 拡張機能に必要なコンポーネントを

マニフェストで指定できるように

• インストール時に、一緒に必要な拡張機能をインストールできる

作成者の方はここをチェックHow to: Migrate Extensibility Projects to Visual Studio 2017https://docs.microsoft.com/ja-jp/visualstudio/extensibility/how-to-migrate-extensibility-projects-to-visual-studio-2017

Page 62: Visual Studio 2017 RC C# まわり

拡張機能マネージャーのローミング• アカウントと紐づく“拡張機能リスト”

リストにある&インストールしていない

リストにある&インストールされている

リストにない&インストールされている

Page 63: Visual Studio 2017 RC C# まわり

IDEフォルダーで開く

ライトウェイトソリューションロード

シンタックスハイライト等のサポート追加

Page 64: Visual Studio 2017 RC C# まわり

IDE:フォルダーとして開く• 「フォルダーとして開く」が追加

Page 65: Visual Studio 2017 RC C# まわり

IDE:フォルダーとして開くフォルダービューへの切替

Page 66: Visual Studio 2017 RC C# まわり

IDE:フォルダーとして開く

クイックアクセス.csproj 等編集

Page 67: Visual Studio 2017 RC C# まわり

IDE:ライトウェイトソリューションロード

• ソリューションの読み込みとメモリの使用量を改善

• 規定ではOFF

• まだ実験的

• 何とトレードオフ?

Page 68: Visual Studio 2017 RC C# まわり

IDE:シンタックスハイライト、スニペット等

• サポートする言語が増えた

• Visual Studio Core Editor によるもの

• 言語特有のワークロードをインストールされていなくても、シンタックスハイライトなどが適用される

•構文の色づけと AutoComplete のみをサポート:

• Bat、Clojure、CoffeeScript、CSS、Docker、F#、Groovy、INI、Jade、Javadoc、JSON、LESS、LUA、Make、Markdown ++、Objective-C、Perl、PowerShell、Python、Rust、ShaderLab、SQL、Visual Basic .NET、YAML。

•(構文の色づけと AutoComplete に加えて) コード スニペットをサポート:

• CMake、C++、C#、Go、Groovy、HTML、Java、Javadoc、JavaScript、Lua、Perl、PHP、R、Ruby、Shellscript、Swift、XML。

•(構文の色づけと AutoComplete に加えて) [移動] をサポート:

• C++、C#、Go、Java、JavaScript、PHP、TypeScript、Visual Basic

Page 69: Visual Studio 2017 RC C# まわり

ライブユニットテスト

Page 70: Visual Studio 2017 RC C# まわり

ライブユニットテスト

• コードの編集中に、バックグラウンドでユニット テストが動く

• xUnit、NUnit、MSTest が対応

Page 71: Visual Studio 2017 RC C# まわり

ライブユニットテスト

• コードの編集中に、バックグラウンドでユニット テストが動く

• xUnit、NUnit、MSTest が対応

Page 72: Visual Studio 2017 RC C# まわり

ライブユニットテストを試した動画

Page 73: Visual Studio 2017 RC C# まわり

リファレンス

Page 74: Visual Studio 2017 RC C# まわり

Visual Studio 2017 リリース ノート(RC)https://www.visualstudio.com/ja-jp/news/releasenotes/vs2017-relnotes#a-idcshappvb-ac-および-visual-basic

Visual Studio Documentationhttps://docs.microsoft.com/ja-jp/visualstudio/

Visual Studio 2017 の互換性https://www.visualstudio.com/ja-jp/productinfo/vs2017-compatibility-vsOptimize Visual Studio Startup Time | Microsoft Docshttps://docs.microsoft.com/en-us/visualstudio/ide/optimize-visual-studio-startup-timeCreate portable, custom editor options | Microsoft Docshttps://docs.microsoft.com/en-us/visualstudio/ide/create-portable-custom-editor-options

EditorConfig Visual Studio Pluginhttps://github.com/editorconfig/editorconfig-visualstudio

EditorConfig http://editorconfig.org/

editorconfig codestyle options by jmarolf · Pull Request #15029 · dotnet/roslyn https://github.com/dotnet/roslyn/pull/15029

EditorConfig - Visual Studio Marketplacehttps://marketplace.visualstudio.com/items?itemName=EditorConfigTeam.EditorConfig

リファレンス

Page 75: Visual Studio 2017 RC C# まわり

参照: 行末の空白は EditorConfig で始末しましょう - Qiitahttp://qiita.com/spiegel-im-spiegel/items/a1b4d1ad2a6693ae33e4

Editor Config GitHubhttps://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties

ライセンスhttps://www.visualstudio.com/wp-content/uploads/2016/11/VS2017_ENT_PRO_RC_JPN_Eula.1041.pdf

How to: Migrate Extensibility Projects to Visual Studio 2017https://docs.microsoft.com/ja-jp/visualstudio/extensibility/how-to-migrate-extensibility-projects-to-visual-studio-2017

Visual Studio 2017 RCのC#コードスタイル機能について | OPC Diaryhttps://opcdiary.net/?p=33467

Visual Studio 2017 RC のライブ ユニット テスト – Visual Studio 日本チーム Bloghttps://blogs.msdn.microsoft.com/visualstudio_jpn/2016/11/25/live-unit-testing-visual-studio-2017-rc/

リファレンス