Visual Studio for Mac: 多数の新機能を搭載、しかしXcodeとVS Codeは強力なライバル

Table of Contents

Visual Studio for Mac: 多数の新機能を搭載、しかしXcodeとVS Codeは強力なライバル

Hands On Microsoft は今週、.NET 用の柔軟な開発環境である Visual Studio for Mac 2019 8.3 を公開しました。The Regでは、いくつかの新機能について詳しく説明します。

しかしまず、マイクロソフトがいかにしてここまで辿り着いたのかを見てみましょう。レドモンドにはVisual Studioブランドで3つのコーディングツールがあり、それぞれ異なる起源を持っています。

Windows版Visual Studioは、.NET言語だけでなく、C++、Python、JavaScript、Node.js、そしてXamarin、Apache Cordova、C++を使用したクロスプラットフォームモバイル開発もサポートしています。エディションに応じて、SQL Serverデータベースツール、テストおよびカバレッジフレームワーク、Microsoft OfficeおよびSharePoint開発、データサイエンス作業のためのR言語、組み込みDockerツールなどもご利用いただけます。

Xamarinは、主にiOSとAndroid向けに設計されたクロスプラットフォームの.NETフレームワークですが、macOSアプリケーションもサポートしています。Xamarinは最新バージョンで.NET Standard 2.1仕様をサポートしていますが、.NET Coreは使用していないという点がややこしい点です。ガイダンスについては、こちらをご覧ください。

Xamarinは、WindowsとLinux向けの.NET実装であるオープンソースのMonoフレームワークから発展しました。MonoにはMonoDevelopと呼ばれる独自のIDEがあり、Visual Studioとは異なり、元々は完全にC#で記述されていました。XamarinはMonoDevelopを改良してXamarin Studioを開発しました。2016年にMicrosoftがXamarinを買収した際、Xamarin StudioはMac専用IDEとなり、Visual Studio for Macに名称が変更されました。MonoDevelopは現在もMac、Windows、Linuxで利用可能ですが、Mac向けのダウンロードはVisual Studio for Macとなり、Windowsではソースコードからビルドする必要があります。

Visual Studio Code(VS Code)は、Electronフレームワーク、Node.js、ChromiumブラウザエンジンBlinkをベースに構築されたクロスプラットフォームエディタです。VS Codeは2015年に初めてプレビュー版が公開され、目覚ましい成功を収め、現在では人気のコーディングQ&AサイトStackOverflowで、他を大きく引き離してトップ開発環境にランクされています。Visual Studioと比較すると軽量ですが、VS Codeはデバッグサポートと豊富な拡張機能を備え、エディタとIDEの境界を越えた機能を提供します。

買収後、MicrosoftはVisual Studio for Windowsの技術の一部をMac版と共有する取り組みを進めてきました。これは、クロスプラットフォームの.NET Coreの開発と並行して進められており、Monoと.NET Core間のコード共有が可能になっていますが、Monoが完全に置き換えられたわけではありません。Mac版のVisual Studioは、Windows版のVisual Studioとは大きく異なるものであることは変わりません。

Visual Studio for Mac では何ができますか?

VS Macは主にXamarin開発用です。Xamarin開発者の大半はiOSとAndroid向けのアプリケーションを開発しており、その開発には2つの異なるアプローチがあります。

Xamarin.iOS と Xamarin.Android を使用すると、ネイティブ ツールを使用して UI を構築しながら、C# で非ビジュアル コードを記述できます。iOS の場合は Xcode、Android の場合は組み込みの Android デザイナーを使用します。

Xamarin FormsはクロスプラットフォームのGUIフレームワークです。XAMLでユーザーインターフェイスを設計し、選択したターゲットプラットフォーム向けにビルドできます。

iOSとAndroid以外にも、Xamarin.MacはCocoaアプリケーション向けで、Xamarin.iOSと同様のモデルを採用しています。Xamarin FormsはWindows UWP(ユニバーサルWindowsプラットフォーム)と、プレビュー版ではmacOSもターゲットにできます。

Unity によるゲーム開発のサポートも着実に改善されています。

Xamarin フォーラムをざっと見てみると、大まかな使い方の目安がわかります。Xamarin Forms は他のセクションの2倍以上のアクティビティ(51,000件以上のスレッド)があります。Xamarin.Android は34,000件、Xamarin.iOS は21,000件ですが、その他のセクションのアクティビティは比較的低く、例えば Xamarin.Mac は343件のスレッドです。

Xamarin Forms の Mac サポートは衰退しているようです。2017 年に発表されましたが、ここでのプラットフォームのステータスは 2018 年 5 月に最後に更新されており、不完全なままです。

Visual Studio for Mac は、Razor、Angular、React.js を使用した ASP.NET Core 開発と、Azure Functions を使用したサーバーレス開発もサポートしています。

ハゲタカの爪の下

iOS と Android で動作するクロスプラットフォームの Xamarin Forms アプリ

iOS と Android で動作するクロスプラットフォームの Xamarin Forms アプリ

2018 Mac MiniにVS Macをインストールしました。インストーラーはAndroid SDKを自動的にダウンロードしますが、Xcodeは別途インストールする必要があります。すべては簡単ですが、.NET Coreに関して少し問題があります。バージョン3.0は自動的にインストールされ、ASP.NET Coreアプリを作成できますが、モバイルアプリを作成する際に、ASP.NET Core APIバックエンドを作成するオプションが「ASP.NET Coreのインストールが必要」という理由で無効になっています。

IDEのルック&フィールは、製品の歴史から予想される通り、Windows版Visual Studioとは異なります。よりベーシックで洗練されておらず、似た名前を持つ同種の製品に比べて機能もごくわずかです。

Xamarin Formsにはビジュアルデザイナーはありませんが、ビジュアルプレビューはあります。残念ながら、非常にシンプルなデモアプリではiOSでは動作せず、MonoTouch例外メッセージが表示されました。しかし、アプリ自体はAndroidとiOSの両方で正常に動作しました。IDEは1、2回クラッシュしましたが、作業内容が失われることはありませんでした。

もう1つの実験は、Xamarin.Macアプリケーションを作成し、生成されたストーリーボード(ユーザーインターフェースを定義する)をXcodeで編集することでした。これは完璧に機能しました。

新着情報?

VS Mac 8.3 は .NET Core 3 と C# 8.0 をサポートし、Xamarin は Android 10、Xcode 11、iOS 13 をサポートするようになりました。

プレビュー段階ではありますが、大きな新機能の一つは、Xamarin Forms の XAML ホットリロードです。これにより、UI を定義する XAML ファイルを修正して保存し、エミュレーターやデバイス上で実行されているアプリで即座に変更内容を確認できます。

Visual Studio Mac ネイティブ エディターは Windows 上の Visual Studio とコードを共有します

Visual Studio Mac ネイティブ エディターは Windows 上の Visual Studio とコードを共有します

VS MacのC#エディタは、Microsoftによる買収後、Visual Studioチームによって書き直されました。Microsoftが「完全ネイティブUI」と呼ぶものになり、クロスプラットフォームのGtk#を使用していた旧MonoDevelopコードがVS Macにどれだけ残っているのかという興味深い疑問が生じます。新しいネイティブエディタは7月に完全リリースされましたが、VS Mac 8.3ではWeb編集(JavaScript、TypeScript、HTML、CSSなど)がサポートされるようになりました。これにより、Windows版Visual StudioとVS Macの間で、IntelliSenseの強化など、より多くの機能を共有できるようになります。また、双方向テキストのサポートや、選択したテキストの複数領域を同時に上書きできるマルチキャレット編集という便利な機能も備わっています。

NuGet パッケージ マネージャー用の新しいダイアログがありますが、すべての NuGet パッケージが Mac で動作するわけではないので注意が必要です。

これらはハイライトです。新機能の完全なリストはここにあります。

観察

Microsoftには2つの優れたVisual Studio開発ツールがあり、さらにVS Macがあります。これはMacベースのXamarin開発者にとってのみ重要です。macOSをターゲットとするXamarin.MacとXamarin Formsは、WindowsアプリをMacに移植する方法を模索している.NET開発者にとって興味深いものですが、どちらもiOSやAndroidに比べて注目されていません。ASP.NET Core向けの開発を希望する場合は、Windows版のVisual Studioを使用する方が適しており、コミュニティがはるかに大きく、拡張機能のサポートが豊富なVS Codeの方が適しているでしょう。戦略的に考えると、MicrosoftがVS CodeをXamarin開発者にとってより使いやすいものにするために投資するのは理にかなっていると言えるでしょう。とはいえ、VS Macは大幅に改良されており、価格も適切です。無料のCommunityエディションでも十分に使えるツールです。®

Discover More