Visual Studio 2022が史上最速と言えるワケ
Visual Studio 2022で最も大きなアップデートと言えば、Visual Studio のプロセス(devenv.exe)が64bit化されたことにより大幅にパフォーマンスが向上した点だ。32bitでつくられていたVisual Studio 2019との明確な違いを示すべく、井上氏は301,872ファイルの大規模プロジェクトを起動する際の立ち上げ速度を比較したビデオを流して見せた。
結果、Visual Studio 2019は6分38秒経ってもまだすべてのファイルを開ききっていないのに対し、Visual Studio 2022は2分39秒で完了した。その差は歴然である。「起動速度だけでなく、文字列の検索や置換の速度などにおいても、64bitのパフォーマンスを実感できるはずだ」(井上氏)
続いて井上氏は、Visual Studio 2022で「ASP.NET Core MVC」アプリケーションの「Program.cs」ファイルを開き、6行目にある「var app = builder.Build();」の記述を確認した。しかし、このvarを使うと、アプリケーションの型が具体的に何なのか、すぐに確認することができない。マウスオーバーすれば良いのだが、視認性が悪いと感じることもあるだろう。
そんなときには、Visual Studio 2022のオプションにあるC#のエディター設定で「インライン型のヒントを表示する」にチェックを入れておくと良い。そうすれば、暗黙の型として宣言されているアプリケーションの型が何なのか、エディター上に表示される。あくまでもエディター上で表示されているだけなので、ソースコードは書き換えられていない。
インライン型のヒントによって、このアプリケーションはnull許容型だとわかった。そこでnullチェックをしようと思い、井上氏は「if」と入力した。すると、ifのうしろには「(app == null)」がグレーにハイライトされた状態で、即座に表示された。これが「IntelliCode」と呼ばれる機能だ。AIをベースとした予測により、次に入力されそうなコードを提案してくれる機能である。さらに中括弧を入れてEnterを押すと、「throw new Exception();」が瞬時に表示される。それでOKなら、Tabを打つとそのまま確定できる。
また、「builder.」と打つとメソッドやプロパティの候補がアルファベット順で表示されるのは今まで通りだが、ポップアップリストの中に星マークが付いて、可能性の高そうなものを提案してくれる機能も付いた。さらに、リファクタリングに役立つヒントが表示される機能もある。「IntelliCodeを使うことでコーディングの生産性を格段に上げられるはずだ」(井上氏)
開発生産性を高める秘訣とは?
次に井上氏は、.NET 6で大幅な機能アップデートが行われた「ASP.NET Core Blazor WebAssembly」でプロジェクトを作成するデモに入った。BlazorはWeb アプリケーションのクライアントサイドのWeb UIを、.NETのコードとしてC#とRazor構文で書くことができるフレームワークだ。
井上氏がVisual Studio 2022でBlazorを開くと、buttonタグの中にonclickのイベントハンドラがあり、ボタンがクリックされるとIncrementCountメソッドが呼ばれる記述があった。ボタンがクリックされるとパラメータ変数が増えていくというカウンターのページである。
Visual Studio 2022とブラウザの画面を並べて見てみる。通常、文字列を変えるなどVisual Studio 2022でソースコードを書き換えた際には、アプリケーションを再起動する必要がある。しかしVisual Studio 2022で搭載された「ホットリロード機能」を使えば、プロセスの再起動なしにソースコードを即座に反映することができる。ツールバーにあるホットリロードのボタンをクリックするだけで、変更した内容が反映されるのだ。
このホットリロード機能は.NET 4.6以降のバージョンと、すべてのプロジェクトタイプで使うことができ、今回のようなUIの見た目だけでなく、ロジックの変更でも同様に利用することが可能となっている。
さて、今度はクラウドの話も交ぜながら、サーバーサイドに関するVisual Studio 2022の機能を見ていこう。現在、Azureでは「Azure Container Apps」という新しいサービス(2022年3月現在プレビュー)が使えるようになっている。Azure Container Appsは、コンテナ化したアプリケーションをAzure上でデプロイして運用できるものだ。このAzure Container Appsを使えば、インフラ周りの開発知識がなくても、Kubernetesベースのオーケストレータ上で簡単にデプロイして動かすことが可能となる。
井上氏はVisual Studio 2022でプロジェクトの追加メニューの中から「Dockerサポート」をクリックし、ターゲットOSでLinuxを選択することで、Dockerファイルを自動生成した。ちなみにVisual Studio 2022の中で、Dockerをベースとしてローカル環境でデバッグすることも可能だ。
「デプロイのリビジョン管理や、トラフィックを分散させたカナリアリリースやA/Bテスト、デプロイしたコンテナに対するスケーリングの設定やコンテナ内のイメージやCPUのリソース配分など、Kubernetesを意識せずにAzureでコンテナアプリケーションを運用できる」(井上氏)
今回紹介した機能以外にも、Visual Studio 2022では細かな機能強化が多数施されている。詳細はこちらのリリースノートより確認できる。
ここまでのデモではVisual Studio 2022のWindows版を使用してきたが、「Visual Studio 2022 for Mac」もリリースされる予定だ。(本イベントの実施日、2022年2月16日にPreview 6 がリリースされた)従来のMac版よりも親しみやすいUIになっているほか、最新のApple M1プロセッサーもネイティブサポートされている。井上氏はVisual Studio 2022 for MacからXamarinのプロジェクトを開き、C#でiOSのアプリケーションを開発している様子を示した。
続いて、Visual Studio 2022のファミリーである「Visual Studio Code」が紹介された。こちらはmacOS、Linux、Windowsで操作できる高機能なエディターだ。Visual Studio Codeでは、.NETだけでなくOSSをベースとした各種言語フレームワークを使っていろいろな開発に活用できる。
Visual Studio Codeには「ライブシェア」機能があり、複数人で同時にファイルを編集したりデバッグしたりすることができる。リモートワークをしながら遠隔でレビューしてもらいたいときなどに最適な機能だ。井上氏はWindows版のVisual Studio 2022で開いたソースコードを、Mac上のVisual Studio Codeで同時に開き、共同編集して見せた。
そして、もうひとつ忘れてはならない開発ツールとして「GitHub Codespaces」を挙げた井上氏。GitHubのリポジトリで管理されるソースコードの開発環境をクラウド上の仮想環境にホストして、ブラウザやローカルのVisual Studio Codeを使って開発やデバッグなどを実現する機能である。
「Visual Studio 2022、Visual Studio 2022 for Mac、Visual Studio Code、そしてGitHub Codespacesなどを適材適所でうまく使い分けていただくことで、みなさまの開発生産性をより向上させていただきたい」と語り、井上氏はセッションを締めくくった。