visual studio 2017 rc c# まわり

Post on 06-Jan-2017

1.157 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

矢後 比呂加

@miso_soup3

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

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

• Visual Studio 2017 に興味のある方

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

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

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

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

所感

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

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

インテリセンスの強化

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

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

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

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

ライブユニットテスト

リファレンス

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

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

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

Visual Studio 2017 RC とは

いまここ

これから

これから

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

• Roslyn

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

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

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

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

名前指定

EditorConfig

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

・名前指定が追加

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

this を付けるか

var か型の明示か

Int32 か int か

object初期化子

インライン変数定義

null チェックの書き方

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

• None

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

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

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

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

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

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

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

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

• コードベースで設定

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

• Visual Studio 以外でもOK

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

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

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

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

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

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

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

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

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

異なるエディタ・IDE

でも、一貫した

コーディングスタイルを

定義・維持する。

RubyMine、Atom、

Xcode、PhpStorm、

Visual Studio Code

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

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

• indent_style

• tab_width

• end_of_line

• charset

• trim_trailing_whitespace

• insert_final_newline

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

C# 用の項目として、

var や 初期化等も設定可能

になる予定?

コードスタイル:EditorConfig

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

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

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

すべての参照の検索

構造のガイド線

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

• Ctrl + T(or Ctrl + ,)

• フィルター)

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

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

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

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

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

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

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

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

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

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

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

「結果を保持」で、

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

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

• 範囲指定

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• Roslyn による拡張が可能

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

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

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

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

C# 7 インライン out 宣言

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

C# 7 スロー式

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

C# 7 スロー式

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

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

挿入文字列への変換

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

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

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

定義されている型を、

別のファイルとして移動

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

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

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

プロパティをメソッドに

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

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

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

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

デバッグと診断Run To Click

プロセスにアタッチ

例外ヘルパー

デバッグと診断:Run To Click

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

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

デバッグを進めていた

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• Inner Exception も表示

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

HttpClient イベントがサポート

• 関数に対するCPU率

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

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

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

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

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

作成者の方はここをチェック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

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

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

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

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

IDEフォルダーで開く

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

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

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

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

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

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

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

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

• 規定ではOFF

• まだ実験的

• 何とトレードオフ?

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

ライブユニットテスト

ライブユニットテスト

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

• xUnit、NUnit、MSTest が対応

ライブユニットテスト

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

• xUnit、NUnit、MSTest が対応

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

リファレンス

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

リファレンス

参照: 行末の空白は 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/

リファレンス

top related