Visual Studio の歴史は古く、Microsoft は 1975 年の Microsoft Basic、1983 年の Microsoft C 1.0 以来、常に独自のプログラミング言語とツールを提供してきました。
Visual Studio のアイデアは、主に 2 つの源から生まれました。初期の Windows アプリケーションは MS-DOS を使用してコーディングおよびコンパイルされており、Programmer's Workbench (PWB、初リリース 1989 年) と呼ばれる MS-DOS IDE がありました。Microsoft は Visual Basic (VB、初リリース 1991 年) も開発しましたが、Microsoft C++ とは異なり、VB には Windows IDE が搭載されていました。おそらく VB に触発されたのか、Microsoft は 1993 年に Visual C++ 1.0 をリリースし、あまり使われていなかった PWB を置き換えました。Visual Studio 自体は 1997 年に導入されましたが、当初はさまざまな Windows 開発ツールのバンドルという位置づけでした。C++ と Visual Basic (.NET 形式) 開発を同じ IDE に統合した最初の Visual Studio は、20 年前の 2002 年の Visual Studio .NET であり、これが今日の IDE の真の祖先と言えるでしょう。
11月にリリースされたVS 2022の大きな変更点は、IDE自体が64ビットプロセスとして動作する初のバージョンであることです。IDEのシェルであるdevenvプロセスで4GB以上のメモリにアクセスできるという利点がありますが、もちろん32ビットアプリケーションのコンパイルも引き続き可能です。主なメリットは、数百のプロジェクトで構成される大規模なソリューションにおいて顕著です。大幅な変更ではありますが、開発者にとっては透過的であり、私たちの見解では有益な変更となっています。
Visual Studioインストーラー – VS 2017で初めて導入された大きな改善点
ご想像のとおり、Visual Studioはモジュール型であり、コアIDE単体ではほとんど機能しません。MicrosoftはVisual Studio 2017(2016年リリース)で製品のインストールとメンテナンスを大幅に改善しました。Visual Studio 2017には、すべてのリリースのインストールとアップデートを管理する独立したアプリケーションであるVSインストーラーが搭載されています。かつてMicrosoftは、VSプレビュー版を試すユーザーに対して、使用後にWindowsを消去して再インストールすることを推奨していましたが、現在はこのアドバイスは適用されなくなり、プレビュー版とリリース版の両方が共存しています。開発者は既存のコードとの互換性を保つために、古いバージョンを保持する必要があることが多いため、これは当然のことです。
Visual Studioは拡張性に優れ、アドオンのマーケットプレイスをサポートしています。執筆時点で最もダウンロードされているのは、.NETコードのリファクタリングとナビゲーションに使用できるJetBrains ReSharperです。
Visual Studioでできること
Visual Studioはモジュール型であるため、開発者のVisual Studioエクスペリエンスはインストール内容によって異なります。インストーラーは、ASP.NETとWeb開発、Python、Azure、Xamarin(クロスプラットフォームモバイル)、.NETデスクトップ、C++デスクトップなど、16のワークロードカテゴリにオプションをグループ化します。コンポーネントの詳細なリストはさらに長く、約300項目に及びます。
Visual Studioは「何でもターゲット」のIDEとして紹介されていますが、本来の役割はWindowsアプリケーションと.NETアプリケーションです。ASP.NETアプリケーションはLinux上で実行できる可能性があり、Xamarin(元祖クロスプラットフォーム.NETであるMonoベース)またはC++を介してモバイルアプリケーションもサポートされています。Visual StudioはNode.js開発にも使用できますが、この種のプロジェクトにはVS Codeの方が適しています。
Microsoftは、ご想像のとおり、Visual StudioにAzureとの強力な連携機能を搭載しています。Azure FunctionsやAzure StorageなどのAzureサービスのローカルエミュレーター、Azureリソースをプロビジョニングできるデプロイウィザード、そしてAzure App Serviceからスナップショットを取得し、Visual Studioでアプリケーションの状態を確認することでAzureアプリケーションをデバッグするスナップショットデバッグといった機能が搭載されています。また、サーバーエクスプローラーツールを介して、Azure SQLを含むSQL Serverとの統合も実現しています。
Visual Studioがサポートしていないものの一つがJavaです。エンタープライズアプリケーションにおけるJavaの幅広い利用を考えると、これは大きな欠落のように思えるかもしれませんが、Microsoftは初期の頃からJavaを脅威と見なし、Javaに似たVisual J++はSunからの訴訟を受けて廃止されました。一方、VS CodeはJavaコーディングをサポートしています。
Javaのサポートが不足していることに加え、AppleはiOSアプリケーションの構築にはMacが必要だと規定しているため、Xamarinをサポートしているにもかかわらず、Visual Studioはモバイルアプリケーションには適していません。MAUI(マルチプラットフォームアプリUI)はXamarinのプレビュー版アップデートで、Windowsとモバイルに加えてmacOSもターゲットとしていますが、Appleプラットフォーム向けのアプリケーションを構築するにはMacが必要です。
Visual Studio 2022 17.1 プレビュー 3 の MAUI アプリケーション
Visual Studio Live Share は、リアルタイムの共同開発のための機能であり、音声チャットを含む同時コード編集とデバッグを可能にします。
Visual Studioエディターには、ポップアップコード補完を提供するIntelliSenseや、AIを活用して行全体補完などのレコメンデーションを提供するIntelliCodeなど、数多くのコーディング支援機能が搭載されています。行全体補完では、候補となるコードが薄い文字で表示され、Tabキーを押すことで入力できます。これらの機能は言語に依存しており、行全体補完は現在C#でのみ機能します。AI支援型IntelliSenseは、C#、XAML、C++、JavaScript、TypeScript、Visual Basicで機能します。IntelliCodeは、開発者自身のコードと「GitHub上の数千もの高評価のオープンソースプロジェクト」に基づいています。実際には、結果はまちまちで、補完結果はまさに求めていたものから、近いものの微妙に間違っているもの、あるいは求めていたものとは大きく異なるものまで、多岐にわたります。総合的に見ると、これは時間節約にはなりますが、無効化することを好む人もいるでしょう。GitHub Copilotほど高度な機能ではありません。
Visual Studio エディション
Visual Studio には常に Professional エディションと Enterprise エディションがあり、Visual Studio 2005 以降は無料エディションも提供されています。後者は当初、特定の言語に特化した無料の Express 版でしたが、現在は Community エディションとして統合されています。無料で利用できるものと有料のもののバランスが変化し、今では無料で提供されるものが増えています。Microsoft は開発者にプラットフォームのサポートを促すことで収益を得ているため、ツールを無料で提供することと、それらを独自に製品として実現可能にすることの間にはトレードオフの関係があります。ただし、無料の Community エディションは、個人または「非エンタープライズ」組織(PC 250 台以上または収益100万ドル以上)のみに商用ライセンスが付与されています。
技術的には、Community エディションでも十分な機能を備えています。Community と Professional の主な違いはライセンスです。一方、Enterprise エディションには、コード カバレッジ (単体テストでカバーされているコードの確認)、IntelliTrace デバッグ (コードのステップ バックが可能)、アーキテクチャ レイヤー ダイアグラムなどの追加機能があります。これらのうち、最も求められているのはコード カバレッジであり、Professional エディションへの追加要求には十分な支持が寄せられていますが、Microsoft は譲りません。Visual Studio のアーキテクチャ モデリングは、Microsoft が長年注力してきたものですが、その成果は比較的低いものでした。モデル駆動開発や UML (Universal Modeling Language) ダイアグラムは、モデルとコードを緊密に結び付けようとする試みは、理論上は良さそうに思えても、実際には扱いにくいものであることがチームに認識されたため、人気が下がっています。
- Microsoft は Mac 向け Visual Studio 2022 をプレビューしていますが、VS Code は Apple ハードウェアで問題なく動作するのだから、わざわざプレビューする必要があるのでしょうか?
- マイクロソフト、オープンソースの.NET開発者から再び批判を浴びる:Visual Studioの売上のためにホットリロード機能が削除された
- 開発者はVSCode.devでブラウザベースの楽しみを提供し、Visual Studio CodeでJavaアクションを提供した。
- Microsoft .NET のアップデートには Blazor WebAssembly の C および C++ コードが含まれており、Visual Studio 2022 のリリース日も発表されました。
問題は、ProfessionalからEnterpriseへのアップグレードはコストが大幅に上昇することです。Proサブスクリプションは現在、初年度が1,199ドル、その後799ポンドですが、Enterpriseは初年度が5,999ドル、その後2,569ドルです。EnterpriseにはAzureクレジットやテクニカルサポートインシデントなどの特典がバンドルされているため、比較は複雑です。Visual Studioは、Microsoft Partner Networkなどの他のサブスクリプションにもバンドルされています。
Visual Studio 2022 for the Mac がプレビュー版としてリリースされました。iOS および macOS をターゲットとした Xamarin および MAUI 開発、そして VS Code の代替として ASP.NET を使用する際に便利です。ただし、Visual Studio の機能の一部をサポートし、一部のコードは共通です。インストールできるエディションは 1 つだけですが、ライセンスを適用すると Professional および Enterprise の機能が利用できるようになります。
Visual Studioの煩わしさ
Visual Studio の Windows 版は、ある意味では成熟した製品であり、Microsoft のチームはフィードバックに対して比較的敏感です (フィードバック サイトによると、Visual Studio 2022 は 1,177 件のリクエストをクローズしました)。また、StackOverflow の調査によると、この IDE は Visual Studio Code に次いで 2 番目に人気があり、開発者の間で比較的高い満足度を示しています。
しかし、依然として不満な点もいくつかあります。その一つは、製品が常に変化していることです。SQL Server Reporting ServicesやSQL Server Integration Servicesといった機能は、Visual Studio 2022の初期リリースには含まれていませんが、新バージョンでは追加・削除されたり、リリースが遅れたりします。「このサポートがないため、VS 2022は使っていません」とあるユーザーは不満を漏らしています。開発者は、既存のアプリケーションの保守に必要な機能を使い続けたい、あるいは動作の微妙な変更を避けたいといった理由で、旧バージョンに固執しているのです。
Visual Studio で C# レイ トレーシング アプリケーションをデバッグする
この製品にはいくつか奇妙な点があり、同じプロジェクトをVisual StudioとVisual Studio Codeの両方で開く開発者は、いくつかの不具合に気付くかもしれません。例えば、ビルドイベント(プロジェクトのビルド前またはビルド後に実行されるコード)で使用される一部のマクロがVisual Studioでしか動作しないという点が厄介です。LinuxやWindows上でビルドする際にビルドイベントをシームレスに動作させることも課題となる場合があります。これは些細な点かもしれませんが、Webアプリケーションのビルド環境としてLinuxが標準となっているDevOpsにとっては重要な問題です。
多くのVisual Studioインストールでは、サブスクリプションとライセンスの検証のために定期的にシステムへ接続する必要があります。これらのプロンプトは、都合の悪いタイミングでポップアップ表示されることがあります。古いレガシーコードのバグを修正するために古いバージョンのVisual Studioを起動したところ、「ライセンスの有効期限が切れています」という通知が表示されたら、それは良い体験とは言えず、解決も困難になる可能性があります。
Visual Studioへの最も多くの要望はLinux版です。なぜでしょうか?このスレッドでユーザーから主に寄せられた意見は、.NET開発においてはVisual StudioがVS Codeよりもはるかに優れているというものです(考えられる理由は上記を参照)。ただし、大規模なソリューションやC++にはVisual Studioの方が適しているという意見もあります。この問題は「新規」とマークされていますが、2018年に遡るものであり、実際にはそれ以前にも、現在は閉鎖されているUservoiceサイトに同様の要望があったためです。
よくある不満として、Gitサブモジュールのサポートが不足しているというものがあります。Microsoftによると、これは「ロードマップ上」にあります。
Visual Studio はどれくらい優れていますか?
Visual StudioはMicrosoftプラットフォームのネイティブIDEであり、その役割において非常に優れています。ASP.NETやWindowsをターゲットとしたC++の開発に特に優れています。.NET Windowsデスクトップ開発にも非常に優れていますが、Windows Forms、Windows Presentation Foundation、UWP、WinUI 3など、それぞれ長所と短所を持つ多様なフレームワークが存在するため、その魅力は損なわれています。複数のプログラミング言語をサポートするフル機能のIDEを構築することの難しさを考えると、これは驚くべき努力と言えるでしょう。Visual Studioは、特に新しい64ビット版では、大規模なマルチプロジェクトソリューションを管理できます。
注意すべき点がいくつかあります。なぜ VS Code は Visual Studio よりも人気があるのでしょうか。その答えは、VS Code が無料でクロスプラットフォームであるという点にありますが、無料の Visual Studio は Windows と Mac で実行でき、非常に高性能であることを考えると、それがすべての理由ではありません。VS Code には他の利点もあります。オープンソースであること、巨大なコミュニティがあること、JavaScript とブラウザー技術に基づいていること、そして、多くの拡張機能を惹きつける適切に設計された拡張性モデルがあることなどです。また、VS Code は、ターミナルとコードを行き来したり、プロジェクトやビルド プロセスを定義するコードを編集したりすることがワークフローの自然な一部であるという点で、よりリアルな感覚があります。一方、Visual Studio は GUI ベースで、場合によってはブラック ボックスのようなものです。ただし、同じ理由で、大規模な IDE の方が初心者にとっては簡単かもしれません。
Visual Studioは現代的なWeb開発には適していません。ReactまたはVueフレームワーク、Node.jsライブラリ、Webpackバンドル、JavaScriptの最小化を使用したシングルページアプリケーションを開発する必要がある場合は、VS Codeの方が適しており、デバッグも容易です。
Microsoft は Visual Studio と VS Code の両方を管理しているため、両方のメリットを享受できます。ただし、この恵まれた立場も、重要な機能を商用 IDE 用に確保するかどうかをめぐる社内対立によって損なわれる可能性があります。®