雑記 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Visual Basic 中学校 > 雑記 >
この記事が対象とする製品・バージョン
![]() |
Visual Studio 2019 | ◎ | 対象です。 |
![]() |
Visual Studio 2017 | △ | 対象外ですが大体同じなので参考になります。 |
![]() |
Visual Studio 2015 | △ | 対象外ですが同じようにできるかもしれません。 |
![]() |
Visual Studio 2013 | △ | 対象外ですが同じようにできるかもしれません。 |
![]() |
Visual Studio 2012 | × | 対象外です。 |
![]() |
Visual Studio 2010 | × | 対象外です。 |
![]() |
Visual Studio 2008 | × | 対象外です。 |
![]() |
Visual Studio 2005 | × | 対象外です。 |
![]() |
Visual Studio 2003 | × | 対象外です。 |
![]() |
Visual Studio (2002) | × | 対象外です。 |
現在(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万円は超えないと思います。請求がいってしまったらバイトして返しましょう。)
請求が発生してからそれを取り消すことはできません。
https://azure.microsoft.com/ja-jp/free/
画面や内容はどんどん変わると思います。
ここでは2019年11月時点の操作例を紹介します。
持っていなければ、真ん中辺りにある「作成」をクリックしてアカウントを作成します。
これは、マイクロソフトで全般的に使用するアカウントであり、Azure専用のアカウントというわけではありません。
この後の手順を実行することでこのアカウントでAzureを使用できるようになります。
入力する情報の多くは名前など基本的な情報です。
途中で電話かスマホのSMSで確認コードを受け取って入力する必要があります。
電話の場合、カリフォルニアから自動音声の電話がかかってきました。英語で6桁の数字を言われるのでそれを入力しました。
英語で数字が聞き取れない人は電話は厳しいかもしれません。(Hello, thank you for using our authentication system...みたいな言葉が冒頭に流れてそのあと、ゆっくり、two, one, four のように6桁の数字を2回繰り返して読み上げていました。)
電話確認の後、クレジットカード情報の入力が必要です。
※冒頭にも書きましたが、無料の範囲で使用している分にはこのクレジットカードからの引き落としは発生しません。
それから、ちょっと紛らわしいのですが、「最初30日無料」というキャンペーンが別途あります。今回この記事で紹介するのはずっと永遠に無料なので、最初30日の期間が過ぎても関係ありません。(この記事で紹介する以外のAzureの機能を使用すると請求が発生する場合があります。)
最後に、同意してサインアップをすれば契約完了です。
なお、30日の無料期間を超えて使い続けると、有料契約へのアップグレードが必要になります。有料契約にアップグレードしても、この記事で紹介している機能は無料で使い続けられます。
ただし、アップグレードする際に有料のサポートを選ばないように注意してください。有料のサポートを選択すると何もしなくても月々数千円のサポート料金を請求されます。サポートなしを選択しましょう。
Azureのポータルが表示され、Azureが使用可能になります。
今後Azureで何か行いたい場合は、ブラウザーでこのポータルサイトにアクセスします。
Visual Studioから行える操作もあり、今回はVisual Studioだけで操作しますので、契約が完了したらブラウザーは閉じてください。
ポータルにいきたい場合は、このURLです。
https://portal.azure.com/
まずは、公開するWebアプリケーションを作成します。
クラウドは常に進化しているのでVisual Studioは最新のものを使用することをお勧めします。ここではVisual Studio 2019を使用します。
こちらも無償版がありますので、まだインストールしていない方はどうぞ。
WebアプリケーションはVBまたはC#で作成できます。
VBで作成したい人は、ASP.NET Webアプリケーション(.NET Framework)のプロジェクトを作成します。
C#で作りたい人も、同じようにASP.NET Webアプリケーション(.NET Framework)を選択してもよいですし、
より新しいASP.NET Core Web アプリケーションを選択することもできます。
特に理由がなければ新しいほうのASP.NET Core Webアプリケーションを選択しましょう。
※今後VBでもASP.NET Core Webアプリケーションが作成できるようになる予定です。
なお、AppService自体はJavaやPHPやその他の言語やコンテナにも対応していますがこの記事では触れません。
クラウド上で実行する関係上、作成するプログラムからローカルのコンピューターやデバイス(プリンタなど)にはプログラムからはアクセスできません。また、さきほど少し書きましたようにデータベースは無料の範囲には含まれていません。
ようするに、すべて無料で利用するにはどこに持っていてもそのプログラムだけあれば実行できるようになっている必要があります。
データベースのようなものが必要であればCSVなどテキストファイルをプロジェクトに含めておいて、そのファイルを読み書きするようにする手もあります。
(ただし、アプリが再起動されたりするとこのテキストファイルの内容は初期状態に戻ってしまいますので、一時的な用途にしか使えません。)
SQLiteのような完全にプロジェクトの内部に組み込めるデータベースであれば多分動作すると思います。やってみたことはありません。
この記事ではアプリケーションの実際のプログラミングの詳細には触れませんが、Webアプリケーションに慣れていない人もいると思うので、VBでごく簡単な計算を行うアプリケーションの作り方だけ紹介します。
既にWebアプリケーションの作り方がわかっている人はこの章は呼び飛ばしてください。
まずは、Visual Studio 2019でVisual Basicを選択し、ASP.NET Web アプリケーション (.NET Framework)を選択してから次へをクリックします。
次に、プロジェクト名を入力して「作成」をクリックします。プロジェクト名は何でもよいです。
フレームワークには.NET Framework 4.8を選択肢、「作成」をクリックします。
最後に、テンプレートとして「空」を選択して、その他はデフォルトのまま「作成」をクリックします。
ソリューションエクスプローラーでプロジェクト(下記私のソリューションの場合はMyAzureTest)を右クリックして、[追加] - [Webフォーム]を選択します。
※もし、「追加」の一覧に「Webフォーム」がない場合は、[追加] - [新しい項目]で表示される画面でWebを選択してWebフォームを探してください。
Webフォームの名前は何でもよいです。ここでは既定のWebForm1とします。
Webフォームを追加するとソリューションエクスプローラー上にWebForm1.aspxが追加されます。
WebForm1.aspxを右クリックし、「デザイナーの表示」を選択します。(ダブルクリックでもよいです。)
たし算のアプリケーションを作成するので、左側のツールボックスから、TextBoxを2つと、Buttonを1つと、答えを表示するためのLabelを1つ配置します。
このデザイナーはワープロのようになっており字を書いたり改行したりできます。私はコントロールを配置した後「計算サンプル」と「+」と「=」を字で書いてみました。
Buttonをダブルクリックし、Clickイベントに次のようにプログラムします。
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 |
このプログラム、妙な値を入力されるとエラーになるのですが、今回はこれで良しとします。
Visual Studioで、このプロジェクトを実行して動作を確認しましょう。
プロジェクトを実行するには、[デバッグ]メニューの[デバッグの開始」をクリックします。
ブラウザーが起動して今作成した画面が表示されます。
もし、ブラウザーが起動しても今作成した画面が表示されない場合は、自分でURLを入力してください。正しいURLは「https://localhost:xxxxx/WebForm1.aspx」です。(xxxxxの部分にはランダムに割り当てられた数値が入ります。これは起動したブラウザーのアドレスバーにはじめから表示されているので自分で入力する必要はありません。)
数字を入力してボタンをクリックすると、答えが表示されます。
ここでエラー等になる人は修正してください。
うまく動作する場合は、いよいよAzure上で動作させて見ましょう。
アプリケーションの作成はこれで完成です。デバッグの停止をクリックして実行を終了させてください。
手元にあるプロジェクトをどこか別の場所に持っていくことを「発行」や「デプロイ」と呼びます。
発行は単にファイル一式をコピーするだけの場合もありますが、Azureの場合はいろいろとやることがあり、Visual Studioがそのいろいろをうまい具合に自動でやってくれます。
プロジェクトをAzureに発行するには、まず、発行用の設定を作成します。
設定の作成は最初の1回だけ行えばよく、2回目以降はこの手順は飛ばすことができます。
設定を作成するには、ソリューションエクスプローラーでプロジェクトを右クリックして、「発行」を選択します。
Azure App Serviceが選択されていることを確認し、「新規作成」を選んで、「プロファイルの作成」をクリックします。
次のこの画面がポイントです。
Azureを契約しているアカウントが選択されていない場合は、右上の部分でアカウントを選択できますので、Azuruを契約しているアカウントを選択してください。
「名前」はURLの一部になります。初期状態では適当な名前がついています。今回はお試しなのでこの適当な名前のままでもよいですね。
「サブスクリプション」にはAzureのアカウントが契約しているサブスクリプション名が表示されています。アカウントを契約したときに自動的にデフォルトのサブスクリプションが作成されてるのでそれが表示されていると思います。
リソースグループは最初は何も表示されていないと思います。右の「新規」で作成してください。好きな名前を入力するだけです。
リソースグループはタグのようなものです。Azureにいろいろなものを作っていくと、どれをなんのアプリケーションで使っているかわからなくなっていくので、リソースグループというタグのようなものを割り当てて一括操作したり、区別したりします。
「ホスティングプラン」で料金が決まります。重要ですね。下で画像つきで説明します。
ホスティングプランの「新規」をクリックすると、このような画面が表示されます。
ここでは名前(ホスティングプラン)と「場所」はあまり重量ではありません。
無料で使用したい場合は、必ずサイズに「Free」を選んでください。
あとは、元の画面に戻って「作成」をクリックすれば設定の完了です。
まだ、発行は実行されていません。
最後に作成した設定で発行するには発行画面で「発行」をクリックします。
※発行画面が表示されていない場合は、ソリューションエクスプローラーでプロジェクトを右クリックして「発行」を選択します。
発行には少し時間がかかります。
「Web 発行アクティビティ」という小窓に状況が表示されます。
私の場合2分後くらいに発行が終了しました。
発行が終了するとこのようになり割り当てられたURLが表示されます。
また、自動的にブラウザーが起動して、このURLを表示します。
このURLで表示される画面は、発行したアプリケーションによって異なります。
前の手順で私が作り方を説明したWebアプリケーションの場合、自分で正しいURLを入力しましょう。
たとえば、次のようなURLです。
https://myazuretest20191123070613.azurewebsites.net/WebForm1.aspx
すばらしいですね!
これで、このURLを教えれば世界中の誰でもがこのアプリケーションを使用できます。
参考にVisual Studioではなく、Azureのポータルサイトではここまでの作業がどのように見えているか、確認してみましょう。
ポータルサイトからしか操作できない公開の停止方法も説明します。
まずは、ポータルサイトにログインしてください。
左上の 三 のようなボタンを展開します。
「すべてのリソース」をクリックすると、現在のこのAzure上で利用しているものの一覧が表示されます。
App Service1つと、App Serviceプランが表示されるはずです。
プランとは先ほど作ったフリーのホスティングプランのことです。このようなものまで利用しているものとしてこの一覧に載ります。
次は 三 のメニューで App Serviceを選択してみましょう。
1つ価格レベルFree(無料)で実行中になっているのがわかります。
ここで、このApp Serviceをクリックして詳細情報を見たり、いろいろと設定を変更することもできます。
「停止」というボタンをクリックすると、停止できます。
「削除」で完全に削除することもできます。
Webアプリケーションでは、あなたが作成したものが世界中に公開されるため個人情報が漏れないようにするなど注意が必要です。
一般的にSNSやインターネットを扱う場合でも、学校では注意が呼びかけられています。実際にSNSやインターネットを通して子どもが犯罪の被害に合うことは多いようです。
プログラマーには一般以上の注意が必要です。いくつか例を挙げます。
あなたのアプリケーションの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