雑記
Visual Studio.NET (2002) Visual Studio.NET 2003 Visual Studio 2005 Visual Studio 2008 Visual Studio 2010 Visual Studio 2012 Visual Studio 2013 Visual Studio 2015 Visual Studio 2017 Visual Studio 2019

無料でAzureを使ってVB/C#のアプリを公開する方法

この記事が対象とする製品・バージョン (バージョンの確認方法)

VS2019 Visual Studio 2019 対象です。
VS2017 Visual Studio 2017 対象外ですが大体同じなので参考になります。
VS2015 Visual Studio 2015 対象外ですが同じようにできるかもしれません。
VS2013 Visual Studio 2013 対象外ですが同じようにできるかもしれません。
VS2012 Visual Studio 2012 × 対象外です。
VS2010 Visual Studio 2010 × 対象外です。
VS2008 Visual Studio 2008 × 対象外です。
VS2005 Visual Studio 2005 × 対象外です。
VS.NET 2003 Visual Studio 2003 × 対象外です。
VS.NET 2002 Visual Studio (2002) × 対象外です。
 

1.あなたのプログラムを無料で公開できます

現在(2019年11月時点)では、マイクロソフトのクラウドプラットフォームである Azure (読み方:アジュール)には無料で使えるフリープランがあり、VBやC#で作ったWebアプリケーションを無料で公開することができます。

ここで説明するフリープランには期間制限はなく、ずっと使用できます。

※紛らわしいのですがこれとは別に最初30日間無料というキャンペーンがあります。ここで説明する無料プランはこれとは関係ないので30日をすぎても大丈夫です。30日間無料キャンペーンとの併用もできます。

 

この記事ではその利用方法を紹介します。

公開できるアプリケーションの種類はWebアプリケーションです。URLにアクセスすることで世界中の誰でもブラウザーを使ってそのWebアプリケーションにアクセスすることができます。

Azureにはいろいろなサービスがありますが、ここで使用するのはApp Serviceというものです。

価格表はここにあります。

https://azure.microsoft.com/ja-jp/pricing/details/app-service/windows/

使用できるWebアプリケーションの機能には特に制限はありませんが、性能や稼動保証はかなり見劣りします。主なポイントは次の通りです。

 

前提として、Azureにアカウントを作成している必要があります。Azureのアカウントの作成も無料でできるのですが、アカウント自体には有料/無料の区別がないため、登録時にクレジットカード情報を入力する必要があります。

Azureのアカウントの作成方法は次の章で紹介します。

 

前提としてメールアドレスとクレジットカードが必要です。

親にクレジットカードを借りるときは、マイクロソフトのAzureというクラウドサービスであり怪しいものではないという点、無料で使用できる機能しか使わないという点を説明しましょう。それに加えて、あなたがどんな思いでそれを使いたいのかも言うといいかもしれません。

ただ、間違って有料の機能を使ってしまうと請求がいく場合があるので、2、3ヶ月は明細を確認してもらうとよいです。(間違って使ってしまうレベルの有料の機能はどんなにいっても月1万円は超えないと思います。請求がいってしまったらバイトして返しましょう。)

請求が発生してからそれを取り消すことはできません。

 

2.Azureのアカウントの作成

 

2−1.下記URLにアクセスします。

https://azure.microsoft.com/ja-jp/free/

 

画面や内容はどんどん変わると思います。

ここでは2019年11月時点の操作例を紹介します。

 

2−2.「無料で始める」をクリックします。

 

2−3.マイクロソフトアカウント持ってれば、サインインします。

持っていなければ、真ん中辺りにある「作成」をクリックしてアカウントを作成します。

これは、マイクロソフトで全般的に使用するアカウントであり、Azure専用のアカウントというわけではありません。

この後の手順を実行することでこのアカウントでAzureを使用できるようになります。

 

2−4.情報を入力しAzureと契約します。

入力する情報の多くは名前など基本的な情報です。

途中で電話かスマホのSMSで確認コードを受け取って入力する必要があります。

電話の場合、カリフォルニアから自動音声の電話がかかってきました。英語で6桁の数字を言われるのでそれを入力しました。

英語で数字が聞き取れない人は電話は厳しいかもしれません。(Hello, thank you for using our authentication system...みたいな言葉が冒頭に流れてそのあと、ゆっくり、two, one, four のように6桁の数字を2回繰り返して読み上げていました。)

いろいろ入力

電話確認の後、クレジットカード情報の入力が必要です。

※冒頭にも書きましたが、無料の範囲で使用している分にはこのクレジットカードからの引き落としは発生しません。

それから、ちょっと紛らわしいのですが、「最初30日無料」というキャンペーンが別途あります。今回この記事で紹介するのはずっと永遠に無料なので、最初30日の期間が過ぎても関係ありません。(この記事で紹介する以外のAzureの機能を使用すると請求が発生する場合があります。)

 

最後に、同意してサインアップをすれば契約完了です。

 

なお、30日の無料期間を超えて使い続けると、有料契約へのアップグレードが必要になります。有料契約にアップグレードしても、この記事で紹介している機能は無料で使い続けられます。

ただし、アップグレードする際に有料のサポートを選ばないように注意してください。有料のサポートを選択すると何もしなくても月々数千円のサポート料金を請求されます。サポートなしを選択しましょう。

 

2−5.Azureが使用可能になります。

Azureのポータルが表示され、Azureが使用可能になります。

今後Azureで何か行いたい場合は、ブラウザーでこのポータルサイトにアクセスします。

Visual Studioから行える操作もあり、今回はVisual Studioだけで操作しますので、契約が完了したらブラウザーは閉じてください。

ポータルにいきたい場合は、このURLです。

https://portal.azure.com/

 

3.Webアプリケーション作成

 

まずは、公開するWebアプリケーションを作成します。

クラウドは常に進化しているのでVisual Studioは最新のものを使用することをお勧めします。ここではVisual Studio 2019を使用します。

こちらも無償版がありますので、まだインストールしていない方はどうぞ。

Visual Studio 2019 インストールの手引き

 

WebアプリケーションはVBまたはC#で作成できます。

VBで作成したい人は、ASP.NET Webアプリケーション(.NET Framework)のプロジェクトを作成します。

VBでASP,NET(.NET Framework)プロジェクトを作成

 

C#で作りたい人も、同じようにASP.NET Webアプリケーション(.NET Framework)を選択してもよいですし、

より新しいASP.NET Core Web アプリケーションを選択することもできます。

特に理由がなければ新しいほうのASP.NET Core Webアプリケーションを選択しましょう。

※今後VBでもASP.NET Core Webアプリケーションが作成できるようになる予定です。

ASP.NET Core Webアプリケーションの作成

 

なお、AppService自体はJavaやPHPやその他の言語やコンテナにも対応していますがこの記事では触れません。

 

クラウド上で実行する関係上、作成するプログラムからローカルのコンピューターやデバイス(プリンタなど)にはプログラムからはアクセスできません。また、さきほど少し書きましたようにデータベースは無料の範囲には含まれていません。

ようするに、すべて無料で利用するにはどこに持っていてもそのプログラムだけあれば実行できるようになっている必要があります。

データベースのようなものが必要であればCSVなどテキストファイルをプロジェクトに含めておいて、そのファイルを読み書きするようにする手もあります。

(ただし、アプリが再起動されたりするとこのテキストファイルの内容は初期状態に戻ってしまいますので、一時的な用途にしか使えません。)

SQLiteのような完全にプロジェクトの内部に組み込めるデータベースであれば多分動作すると思います。やってみたことはありません。

 

4.プログラム

 

4−1.プロジェクト作成

この記事ではアプリケーションの実際のプログラミングの詳細には触れませんが、Webアプリケーションに慣れていない人もいると思うので、VBでごく簡単な計算を行うアプリケーションの作り方だけ紹介します。

既にWebアプリケーションの作り方がわかっている人はこの章は呼び飛ばしてください。

 

まずは、Visual Studio 2019でVisual Basicを選択し、ASP.NET Web アプリケーション (.NET Framework)を選択してから次へをクリックします。

プロジェクト作成

 

次に、プロジェクト名を入力して「作成」をクリックします。プロジェクト名は何でもよいです。

フレームワークには.NET Framework 4.8を選択肢、「作成」をクリックします。

プロジェクト名を入力して作成

 

最後に、テンプレートとして「空」を選択して、その他はデフォルトのまま「作成」をクリックします。

テンプレートは空を選択

 

4−2.Webフォームの追加

ソリューションエクスプローラーでプロジェクト(下記私のソリューションの場合はMyAzureTest)を右クリックして、[追加] - [Webフォーム]を選択します。

※もし、「追加」の一覧に「Webフォーム」がない場合は、[追加] - [新しい項目]で表示される画面でWebを選択してWebフォームを探してください。

Webフォームの名前は何でもよいです。ここでは既定のWebForm1とします。

Webフォームを追加するとソリューションエクスプローラー上にWebForm1.aspxが追加されます。

Webフォームを追加したソリューションエクスプローラー

 

4−3.画面作成

WebForm1.aspxを右クリックし、「デザイナーの表示」を選択します。(ダブルクリックでもよいです。)

たし算のアプリケーションを作成するので、左側のツールボックスから、TextBoxを2つと、Buttonを1つと、答えを表示するためのLabelを1つ配置します。

フォームにコントロールを配置

このデザイナーはワープロのようになっており字を書いたり改行したりできます。私はコントロールを配置した後「計算サンプル」と「+」と「=」を字で書いてみました。

 

4−4.プログラム作成

Buttonをダブルクリックし、Clickイベントに次のようにプログラムします。

VB.NET 2002 VB.NET 2003 VB2005 VB2008 VB2010 VB2012 VB2013 VB2015 VB2017 VB2019

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim x As Integer = Integer.Parse(TextBox1.Text)
    Dim y As Integer = Integer.Parse(TextBox2.Text)

    Dim answer As Integer = x + y

    Label1.Text = answer.ToString

End Sub

このプログラム、妙な値を入力されるとエラーになるのですが、今回はこれで良しとします。

 

4−5.動作確認

Visual Studioで、このプロジェクトを実行して動作を確認しましょう。

プロジェクトを実行するには、[デバッグ]メニューの[デバッグの開始」をクリックします。

ブラウザーが起動して今作成した画面が表示されます。

もし、ブラウザーが起動しても今作成した画面が表示されない場合は、自分でURLを入力してください。正しいURLは「https://localhost:xxxxx/WebForm1.aspx」です。(xxxxxの部分にはランダムに割り当てられた数値が入ります。これは起動したブラウザーのアドレスバーにはじめから表示されているので自分で入力する必要はありません。)

 

数字を入力してボタンをクリックすると、答えが表示されます。

動作確認

 

ここでエラー等になる人は修正してください。

うまく動作する場合は、いよいよAzure上で動作させて見ましょう。

アプリケーションの作成はこれで完成です。デバッグの停止をクリックして実行を終了させてください。

 

5.Azureへ発行

 

5−1.設定作成

手元にあるプロジェクトをどこか別の場所に持っていくことを「発行」や「デプロイ」と呼びます。

発行は単にファイル一式をコピーするだけの場合もありますが、Azureの場合はいろいろとやることがあり、Visual Studioがそのいろいろをうまい具合に自動でやってくれます。

 

プロジェクトをAzureに発行するには、まず、発行用の設定を作成します。

設定の作成は最初の1回だけ行えばよく、2回目以降はこの手順は飛ばすことができます。

 

設定を作成するには、ソリューションエクスプローラーでプロジェクトを右クリックして、「発行」を選択します。

 

 

Azure App Serviceが選択されていることを確認し、「新規作成」を選んで、「プロファイルの作成」をクリックします。

発行先の選択

 

次のこの画面がポイントです。

Azureを契約しているアカウントが選択されていない場合は、右上の部分でアカウントを選択できますので、Azuruを契約しているアカウントを選択してください。

「名前」はURLの一部になります。初期状態では適当な名前がついています。今回はお試しなのでこの適当な名前のままでもよいですね。

「サブスクリプション」にはAzureのアカウントが契約しているサブスクリプション名が表示されています。アカウントを契約したときに自動的にデフォルトのサブスクリプションが作成されてるのでそれが表示されていると思います。

リソースグループは最初は何も表示されていないと思います。右の「新規」で作成してください。好きな名前を入力するだけです。

リソースグループはタグのようなものです。Azureにいろいろなものを作っていくと、どれをなんのアプリケーションで使っているかわからなくなっていくので、リソースグループというタグのようなものを割り当てて一括操作したり、区別したりします。

「ホスティングプラン」で料金が決まります。重要ですね。下で画像つきで説明します。

Azureの設定

ホスティングプランの「新規」をクリックすると、このような画面が表示されます。

ここでは名前(ホスティングプラン)と「場所」はあまり重量ではありません。

無料で使用したい場合は、必ずサイズに「Free」を選んでください。

ホスティングプランで無料を選択

あとは、元の画面に戻って「作成」をクリックすれば設定の完了です。

まだ、発行は実行されていません。

 

5−2.発行

最後に作成した設定で発行するには発行画面で「発行」をクリックします。

※発行画面が表示されていない場合は、ソリューションエクスプローラーでプロジェクトを右クリックして「発行」を選択します。

発行の実行

発行には少し時間がかかります。

「Web 発行アクティビティ」という小窓に状況が表示されます。

Web発行アクティビティ

私の場合2分後くらいに発行が終了しました。

発行が終了するとこのようになり割り当てられたURLが表示されます。

発行完了

また、自動的にブラウザーが起動して、このURLを表示します。

このURLで表示される画面は、発行したアプリケーションによって異なります。

ブラウザーが自動的に起動します

前の手順で私が作り方を説明したWebアプリケーションの場合、自分で正しいURLを入力しましょう。

たとえば、次のようなURLです。

https://myazuretest20191123070613.azurewebsites.net/WebForm1.aspx

自作のWebアプリケーションがAzureで動作している

すばらしいですね!

これで、このURLを教えれば世界中の誰でもがこのアプリケーションを使用できます。

 

6.Azureポータルでの操作

参考にVisual Studioではなく、Azureのポータルサイトではここまでの作業がどのように見えているか、確認してみましょう。

ポータルサイトからしか操作できない公開の停止方法も説明します。

まずは、ポータルサイトにログインしてください。

https://portal.azure.com/

左上の 三 のようなボタンを展開します。

 

「すべてのリソース」をクリックすると、現在のこのAzure上で利用しているものの一覧が表示されます。

App Service1つと、App Serviceプランが表示されるはずです。

プランとは先ほど作ったフリーのホスティングプランのことです。このようなものまで利用しているものとしてこの一覧に載ります。

次は 三 のメニューで App Serviceを選択してみましょう。

1つ価格レベルFree(無料)で実行中になっているのがわかります。

ここで、このApp Serviceをクリックして詳細情報を見たり、いろいろと設定を変更することもできます。

「停止」というボタンをクリックすると、停止できます。

「削除」で完全に削除することもできます。

 

 

7.注意

Webアプリケーションでは、あなたが作成したものが世界中に公開されるため個人情報が漏れないようにするなど注意が必要です。

一般的にSNSやインターネットを扱う場合でも、学校では注意が呼びかけられています。実際にSNSやインターネットを通して子どもが犯罪の被害に合うことは多いようです。

プログラマーには一般以上の注意が必要です。いくつか例を挙げます。

 

URLを秘密にできると思わないこと!

あなたのアプリケーションのURLは探り当てられる場合があります。もし、あなたが誰にもURLを教えないで秘密にしていても、誰かがURLを探りだす場合があるので注意してください。URLを秘密にしておくだけどあなた専用のアプリケーションにはなりません。

あなたや限られた友達だけが使うアプリケーションを作成したい場合は、認証機能をプログラムするのが最善です。

 

そもそも個人情報を含まない

プログラム内部やプログラムに含めるファイルとして、あなたの個人情報を含めないように注意してください。名前やパスワードはもちろん、住所や学校・職場などのヒントになるようなものは一切含めないでください。通常、URLにアクセスしてプログラムを実行しているだけであれば、プログラム内部のコメントや埋め込まれているファイルには直接アクセスされませんが、何かの脆弱性や、設定ミスで思わぬファイルが公開されてしまうかもしれません。このようなことがあっても、そもそも何の情報も含んでいないようにいしてれば安心です。

 

ビルド設定はDebugではなくReleaseにしてください。デフォルトではReleaseビルドで発行されることになっています。Debugビルドにはあなたのローカルコンピューターのフォルダー名が含まれます。そのフォルダー名にはユーザー名を含んでいる場合はあります。

※新潟県に住んでて、サッカーのキーパーやってます。みなたいな情報をSNSに投稿していて、Debugビルドの情報からユーザー名が kazuya ということがわかるとこれだけで大分どこの誰だかばれると思いますよね。このように断片的な情報をネットにさらして、それが結びついたときに何が起こるか。そして、それらの情報は一度ネットに載ってしまうと、まず削除することができないので、大人になってからも付きまとうというのが恐ろしいところです。

 

参考資料

マイクロソフトの公式資料にも結構親切な説明がありますのでリンクしておきます。

AzureにASP.NET Framework Web アプリを作成する

https://docs.microsoft.com/ja-jp/azure/app-service/app-service-web-get-started-dotnet-framework

AzureにASP.NET Core Webアプリを作成する

https://docs.microsoft.com/ja-jp/azure/app-service/app-service-web-get-started-dotnet