Visual Studio 2017 for Mac

Last Update: 2017/05/15

Microsoft は、Visual Studio 2017 for Mac がリリースされたことをお知らせいたします。 Visual Studio for Mac は Visual Studio ファミリの新しい製品です。macOS をご利用の開発者はモバイル用アプリ、Web 用アプリ、Xamarin または .NET Core を利用したクラウド用のアプリ、Unity を利用したゲームを開発できます。

Visual Studio 2017 for Mac を利用し、Android、macOS、iOS、tvOS、watchOS、Web、クラウド用のアプリを開発できます。 短期間でコードを記述し、デバッグし、診断を簡単に実行でき、頻繁にテストを行い、確信をもって公開できます。 今回の新しいリリースでは、バージョン管理を使用した、迅速で、効率的な共同作業が可能になりました。

Download Visual Studio 2017 for Mac

他の関連ダウンロードについては、ダウンロードのページをご覧ください。 Visual Studio 2017 for Mac の詳細については、「Mac System Requirements」 (Mac システム要件) と「Mac Platform Targeting and Compatibility」 (Mac の対象プラットフォームと互換性) を参照してください。

フィードバック

皆様のご意見をお待ちしております。 問題がございましたら、インストーラーまたは Visual Studio IDE 自体の [問題の報告] オプションからお知らせください。 オプションは、右上隅に表示されています。 お客様のフィードバックは、開発者コミュニティ ポータルで追跡することができます。 ご意見やご要望は、UserVoice からお寄せください。

Visual Studio for Mac の新機能

中心的機能

Visual Studio for Mac は、現代の IDE に求められるすべてが備わっています。全機能搭載のソース エディター、コード検索/コード内移動、強力なデバッガー、カスタマイズ可能なワークスペース、Git 統合、豊富な機能を持つ拡張システムなどです。

その他の機能:

  • Roslyn ベースの C# IntelliSense、リファクタリング、アナライザー、コード修正。
  • NuGet ベースのパッケージ管理。
  • Visual Studio 互換のプロジェクト形式。
  • MSBuild ビルド エンジン。
  • 統合単体試験。
  • すぐに F# を利用可能。

.NET Core サポート

.NET Core は、Windows、Linux、Mac で実行できるアプリケーションを作成するためのプラットフォームです。 Visual Studio for Mac では、.NET Core プロジェクトを読み込み、作成し、実行し、デバッグできます。

.NET Core プロジェクトを実行するには、.NET Core SDK をダウンロードし、インストールする必要があります。

.NET Core サポート:

  • C# と F# の IntelliSense。
  • コンソール、ライブラリ、Web アプリケーションのための .NET Core プロジェクト テンプレート。
  • ブレークポイント、コール スタック、ウォッチ ウィンドウなど、完全なデバッグ サポート。
  • NuGet PackageReferences と MSBuild ベースの復元。
  • .NET Core SDK に含まれる Visual Studio テスト プラットフォームでテストを実行し、デバッグするための統合単体試験サポート。
  • 以前の project.json 形式からの以降。

Web ツール

Visual Studio for Mac では、HTML、CSS、JSON ファイルのための新しい Web ツール サポートが追加されています。

HTML

  • 新しい HTML テンプレート。
  • 強化されたスマート インデントと書式設定。
  • 強化された色づけ。
  • 強化された IntelliSense。
  • コードの折りたたみ (有効にする必要があります)。
  • コマンドのアンミニファイ。
  • 強化されたコード テンプレート (スニペット)。
  • <div> を使用して選択範囲を囲む。
  • 上/下オプションで、選択したテキストを上下に移動する。

CSS

  • 強化されたスマート インデントと書式設定。
  • 強化された色づけ。
  • 強化された IntelliSense。
  • コード折りたたみ。
  • さまざまなコード テンプレート (スニペット)。
  • 上/下オプションで、選択したテキストを上下に移動する。

JSON

  • schemastore.org へのアクセスを利用したスキーマ選択。
  • スキーマからの検証。
  • スキーマからの IntelliSense。
  • 強化されたスマート インデントと書式設定。
  • 強化された色づけ。
  • コメント化/コメント解除。
  • 引用の挿入と中かっこの一致。
  • 上/下オプションで、選択したテキストを上下に移動する。

Xamarin

Xamarin のファーストクラス サポートにより、Android、macOS、iOS、tvOS、watchOS のために機能が豊富なネイティブ エクスペリエンスを開発できます。 Xamarin.Forms のクロスプラットフォーム アプリケーションにより、ネイティブ機能へのアクセスを制限することなく、Android、iOS、macOS 間で XAML ベースの UI コードを共有できます。

バインディングには、以下の項目が含まれます。

  • ビルド、展開、デバッグ、プロファイル。
  • iOS と Android の UI デザイナーのドラッグアンドドロップ。
  • Xamarin フォームのライブ プレビュー。
  • .NET Standard 互換フレームワーク。
  • ネイティブ API へのバインド。

マルチプラットフォーム アプリ テンプレート

マルチプラットフォーム Xamarin.Forms アプリネイティブ アプリのプロジェクト テンプレートで、マルチプラットフォーム モバイル アプリとそのクラウド バックエンドを簡単に作成できるようになりました。

これらのテンプレートでは、次に示す複数のプロジェクトを作成します。共有プロジェクト経由でコードを共有する Xamarin.iOS アプリ プロジェクトと Xamarin.Android アプリ プロジェクト、アプリのバックエンド サービスを実装する .NET Core Web API プロジェクトです (図 1)。

Debugging with .NET Core

(図 1) .NET Core によるデバッグ

ASP.NET Core の Web アプリを Azure App Services に発行する

ASP.NET Core の Web アプリを Azure App Services に発行できます (図 2)。

Publish to Azure content menu

(図 2) Azure コンテンツ メニューに発行する

Web アプリを発行するには、[Solution Pad] または [プロジェクト] メニューから [Publish | Publish to Azure] コマンドを選択します。 次に、デプロイ先のアプリ サービスを選択するか、新しい Azure App Service を作成します (図 3)。 発行からの出力は [発行] 出力パッドに記録されます。発行プロファイルはプロジェクトの [プロパティ]、[発行プロファイル] の下に作成されます。

Publish a new app service

(図 3) 新しいアプリ サービスの発行

プロジェクトで定義された発行プロファイルはすべて、[発行] メニュー内にオプションとして表示されます。アプリ サービスを再び選択しなくても再デプロイできます。

マルチプロセス デバッグ

プロジェクトにはプロジェクト実行構成があります。これは、プロジェクトを実行するためのオプションと引数を指定するものです。 ツールバーのドロップダウンで、現在有効な実行構成を表示し、変更できます。

Visual Studio for Mac のソリューション実行構成ウィンドウでは、_複数_のプロジェクトを一度に起動できます。 [ソリューション オプション] ダイアログでソリューション実行構成を作成できます。 これは、モバイル アプリとそのバックエンド サービスのやり取りをデバッグする際に便利です。

TextMate バンドル

Visual Studio for Mac は TextMate 言語バンドルに対応しています。これを利用して次のものを追加できます。

  • エディターの配色テーマ。
  • コード スニペット。
  • 新しい言語の文法、強調表示、基本 IntelliSense。

TextMate バンドルは [ユーザー設定]、[テキスト エディター]、[言語バンドル] で追加できます。

iOS

オーディオ ユニット ウィザード

新しい Audio Unit Extension ウィザード (図 4) には、Audio Unit プロジェクト テンプレートの plist をカスタマイズするためのオプションが 3 つ追加されます。

  • オーディオ ユニットの種類
    • インストルメント
    • ジェネレーター
    • 効果
    • 音楽効果
  • サブタイプ コード: 厳密に 4 文字にする必要がある。
  • 製造元コード: 厳密に 4 文字にする必要がある。

Audio Unit Wizard

(図 4) オーディオ ユニット ウィザード

watchOS Extension ウィザード

Xcode 8.3 で、Apple は watchOS 拡張を導入しました (iOS のものと似ています)。Intents Extension (Siri) から始めます。

watchOS Extension ウィザード (図 5) が更新され、watchOS 拡張をサポートするようになりました。また、Intents Extension の専用テンプレートが用意されました。

watchOS extension wizard

(図 5) watchOS Extension ウィザード

その他の機能強化とバグ修正
  • オートコンプリート ウィンドウで Deprecated 属性と Obsoleted 属性を処理できるようになりました。 これにより、Xamarin.iOS の廃止された非推奨の API が取り消し線が引かれた状態で表示されます。
  • デバイスを配置する際に進行状況バーが表示されます。 これは特に watchOS で便利です。 (Xamarin.iOS 10.5.0.323 以上が必要)
  • Xamarin.iOS の既知の OS バージョンを利用して、配置ターゲット ドロップダウンに入力します。
    2 つの長所は、アプリ拡張の種類ごとに正確な最小バージョンが与えられることと、Xcode をベースとし、Xamarin.iOS ではまだサポートされていない OS バージョンが表示されないことです。

Mac/iOS API 問題アナライザー

  • アナライザーが始動したとき、マーカーが重複する問題を解消しました。
  • 属性から "メッセージ" (API が非推奨になっている理由を説明する、フレームワークの情報) を取得し、その情報を別の可用性メッセージに追加します。
  • 可用性メッセージをすべて更新した結果、より明確になりました。
  • 可用性メッセージで記号の名前を使用することでより明確になりました。以下は変更前のものです。
    API Usage Issue: this API requires iOS 10.0 or later
    この行を次のように変更します。
    'MyMethod' is only available on iOS 10.0 or newer

Android

  • 新しい SDK Manager

Visual Studio for Mac には、独自の Android SDK マネージャーが含まれています (図 6)。

Android SDK Manager window

(図 6) Android SDK Manager

  • プロジェクトをデバイスまたはエミュレーターにデプロイする作業が /t:Install msbuild ターゲットで行われるようになりました。 以前は、Visual Studio for Mac はアプリケーションをデバイスにデプロイする際、独自の内部ロジックを使用していましたが、端末から採用できる、あるいは Windows の Visual Studio で使用されている同じ共通ターゲットが使用されるようになりました。 この利点の 1 つは、展開の問題の診断に、以前より良いログが利用できることです。

  • class-parse は、新しいバインド プロジェクトの既定になりました。 JVM がなくても Java バイトコードを直接解析することができます。 デバッグ シンボルを含む Java バイトコードからパラメーター名を抽出できるようになりました。 たとえば、javac -g でコンパイルされたバイトコードなどです。 class-parse はまた、解決できない種類のメンバーから継承するクラスやそのようなメンバーが含まれるクラスを "スキップ" しません。

ユーザー補助

  • このバージョンの Visual Studio for Mac では、Voice Over など、補助技術サポートが含まれています。 エディターやソリューション エクスプローラーといったユーザー インターフェイスの多くの部分が、これらの技術によって利用できるようになりました。 ただし、これはまだ進行中の作業であるため、今後のリリースでさらなる改善が行われる予定です。