💭

Visual Studio 2022を使った.NETクライアントアプリとAzureリソースへの接続

に公開

Webサービスを開発する上で普段はPythonとAzureを使って開発をしている者です。今回は少し趣向を変えて、クライアントアプリとしてAzureリソースにアクセスするプロジェクトに取り組む機会がありました。開発にはVisual Studio 2022を利用し、.NETの環境で進めました。この記事では、その過程と技術的なポイントについてまとめたいと思います。

プロジェクト概要

これまではPythonを用いてAzureリソースにアクセスするバックエンド開発を行うことが多くありました。例えば、Pythonのazure.identityライブラリを利用し、DefaultAzureCredentialを使用することでシームレスに認証を行い、Azureのサービスを操作することができていました。

今回は、WindowsクライアントアプリとしてAzureリソースにアクセスし、データを操作するという異なる形態のアプリケーション開発を手がけることになりました。そこで、.NETを利用し、初めてVisual Studio 2022を使った開発に挑戦しました。

.NETでAzureリソースにアクセスする方法

.NETでもPythonと同様にAzure SDKが提供されており、Azureリソースに簡単にアクセスできる仕組みが整っています。開発に必要なパッケージはNuGetを通じてインストールすることが可能で、今回はAzure.Identityを利用しました。このパッケージを使うことで、PythonのDefaultAzureCredentialに相当する認証プロセスを実現できます。

Visual Studio 2022では、GUIでNuGetパッケージを簡単に検索・追加することができます。もちろんコマンドラインからも追加可能です。

dotnet add package Azure.Identity

上記のコマンドを使うことで、プロジェクト内にAzure.Identityを組み込むことができます。

接続済みサービスの設定

PythonでAzureリソースに接続する際は、環境変数やサービスプリンシパルの設定を手動で行うことが多いですが、今回利用したVisual Studio 2022には「接続済みサービス」という機能がありました。この機能を利用することで、AzureアカウントをVisual Studioのプロジェクトに簡単に設定することができ、Azureリソースへの接続がスムーズになります。

こちらは以下の手順で設定しました:

  1. Visual Studioの「ソリューションエクスプローラー」でプロジェクトを右クリックし、「接続済みサービス」を選択。
  2. 表示されたウィンドウでAzureアカウントを登録し、プロジェクトに必要なリソースを選択。
  3. 設定完了後、DefaultAzureCredentialを使用して認証情報を取得。

この設定を行うことで、コード内で必要以上に認証周りの設定を意識することなく開発を進めることができました。

Python開発との比較

今回初めて.NETを使ってAzureリソースにアクセスしましたが、Python開発との間にはいくつか違いがありました。

  • 環境設定の方法:Python開発時には、環境変数やサービスプリンシパルを手動で設定することが多いですが、Visual Studioの接続済みサービスを使えばこれらを簡略化できる点が便利に感じました。
  • パッケージ管理:PyPIを使ったPythonのパッケージ管理と同様に、NuGet経由で必要なライブラリを簡単にインストール・管理できました。

基本的な認証フローやAzure SDKのライブラリの使い方には共通点が多いものの、IDEに組み込まれた機能が多い点は.NET開発の特色だと思います。

まとめ

今回のプロジェクトでは、Visual Studio 2022を使い、.NET環境でAzureリソースへのアクセスを実現しました。初めての.NET開発ということもあり学ぶことが多かったですが、Pythonとはまた違った利便性を感じることができました。また、Visual Studioの「接続済みサービス」機能によって認証設定が簡素化され、開発の手間が軽減された点も印象的です。

これから.NET開発を行う方、またはVisual Studioを活用したAzureリソースのアクセスを検討している方の参考になれば幸いです。

ヘッドウォータース

Discussion