tekitoumemo’s diary

思ったことを書くだけ。長文版Twitter

【Visual Studio】Visual Studioが凄すぎて鼻血が出る

https://venturebeat.com/wp-content/uploads/2015/06/visual_studio_purple.png?fit=578,287&strip=all
言語毎に様々なIDEがあると思いますが、Visual Studioに勝るものはいまのところないと思っていて、Visual Studioで開発するエンジニアはプログラムが書けないとまで言われます。何げなく使っていて便利だなーと思うものをいくつか紹介したいと思います。

インテリセンスが最強

f:id:tekitoumemo:20180308233748p:plain

インテリセンス (IntelliSense) は、Microsoft Visual Studio統合開発環境で使用されている、マイクロソフトによる自動補完システム。

いわずもがな、入力した文字の候補を出してくれる機能です。この機能があるおかげで「Visual Studioで開発するエンジニアはプログラムが書けない」と言われ、Windows開発者はLinux開発してる人に対して劣等感を持っているほどです。インテリセンスに従えば、ほぼ確実にコンパイルが通りますし、辞書替わりにも使えるので21世紀のエディタだなと感心するばかりです。LINQの遅延評価など、C#の機能はインテリセンス前提に設計しているのでここまでのパフォーマンスが出せるようです。以下のスライドでは、言語、IDEオープンソース化の平行開発をどのように進めているかわかります。
channel9.msdn.com

マルチプラットフォームに強い

基幹系ならWindows FormやConsole、WebForm、WPF、WEBならASP.NET MVCASP.NET WEBAPI、アプリならXamarin、ゲーム(VRも含む)ならUnityなどほぼすべてのソフトウェアをVisual Studioのみで開発出来ますし、最近では.NET Coreが出てきたのでLinuxでもMacでもVisual Studio Codeがあれば開発出来ます。もちろんインテリセンスやその他機能も使えますし、学習コストを減らしつつマルチ開発ができるのはすごく素敵です(C#はめっちゃムズイ言語だと思いますが)。以下の記事で、C#で出来ることがまとまってるので参考になります。
blog.okazuki.jp

サードパーティの連携が豊富

SQL Server、Git、Azure、Python、JSフレームワークなど連携するのが鬼のように楽になりました(昔は全然ダメでした)。Dockerも「Docker for Windows」があるのでいつかは含まれるんじゃないかと勝手に思ってます。ここはかなり重要な部分だと思っていて、2年前までLinux環境の勉強しようと思っていましたが、2013あたりからバンバン使えるようになったのでしばらくはC#を集中して勉強しようと思ったきっかけになりました。最近はMSもそれをどんどん推してきてます。

実は無料

2013?あたりから「Visual Studio Community」が発表され、5名ユーザーまでは無料となっています。昔はReleaseビルドが使えなかったり(記憶では使えなかったような。。)したのですが、今はほとんど困ることはありません。以下で紹介する機能が使えたりするので不満はないです。5名ユーザーまでって書いてありますが、それ以上の人数で開発してる会社は結構多いんじゃないかなと思います。
www.visualstudio.com

[形式を選択して貼り付け]がすごい

いきなり機能紹介となりますが、JsonXMLをモデルマッピングする機会が多いですが、コピペしてマウスポチポチでモデルを作ってくれます。
まず、モデルを挿入したい場所にカーソルを当てます。
f:id:tekitoumemo:20180309000501p:plain
[編集]→[形式を選択して貼り付け]→Jsonをクラスとして張り付ける
f:id:tekitoumemo:20180309000534p:plain
出来ました。
f:id:tekitoumemo:20180309000928p:plain
めんどくさいところはすべて自動化できるレベルまできてる感じがします。

リファクタリング機能が便利杉

Visual Studio 2017の目玉と言って良いほど強化されました。以下はHttpClientを入れた例です。
[考えられる修正内容を表示する]を押下します。
f:id:tekitoumemo:20180309001418p:plain
名前空間がないんじゃね?」って教えてくれます。
f:id:tekitoumemo:20180309001459p:plain
クリックすれば勝手に追加してくれます。これだけじゃなく、コードの省略化や修正方法やなんなら名前まで候補を出してくれたりするのでマジでやばいです。

パフォーマンスプロファイラが優秀

パフォーマンス測定の時に非常に便利です。どこにCPUリソースが使われているなどかなり詳しくレポートが出されるので、簡単に目星がつけられます。
[分析]→[パフォーマンスプロファイラ]を押下します。
f:id:tekitoumemo:20180309002235p:plain
好きなの選んでください>手抜き杉。
f:id:tekitoumemo:20180309002326p:plain
f:id:tekitoumemo:20180309002328p:plain
ごめんなさい、まったくもって良い例じゃないんですがこんな感じで表示されます。
f:id:tekitoumemo:20180309003035p:plain
f:id:tekitoumemo:20180309003025p:plain
コードまで解析してくれるので、どこが重いか一瞬で分かります。

また私も知らない便利機能が腐るほとあります。Visual Studioだけでなく、Azureなど最近のMSが提供するものには関心を持つばかりなので
どんどん便利な機能が増えていくのが楽しみです。