Vb.net-web-programming

提供:Dev Guides
移動先:案内検索

VB.Net-Webプログラミング

動的なWebアプリケーションは、次の2種類のプログラムのいずれかまたは両方で構成されています-

  • サーバーサイドスクリプティング-これらはWebサーバー上で実行されるプログラムで、ASP(Active Server Pages)やJSP(Java Server Pages)などのサーバーサイドスクリプト言語を使用して記述されています。
  • クライアント側スクリプティング-JavaScript、VBScriptなどのスクリプト言語を使用して記述されたブラウザで実行されるプログラム

ASP.Netは、サーバー側スクリプトを使用して動的なWebページを作成するためにMicrosoftによって導入されたASPの.Netバージョンです。 ASP.Netアプリケーションは、.Netフレームワークに存在する拡張可能で再利用可能なコンポーネントまたはオブジェクトを使用して記述されたコンパイル済みコードです。 これらのコードは、.Netフレームワークのクラスの階層全体を使用できます。

ASP.Netアプリケーションコードは、次の言語のいずれかで書くことができます-

  • Visual Basic .Net
  • C#
  • Jscript *J#

この章では、VB.Netを使用してASP.Netアプリケーションを記述するための非常に簡単な紹介をします。 詳細については、リンクを参照してください:/asp.net/index [ASP.Net Tutorial。]

ASP.Net組み込みオブジェクト

ASP.Netには、Webサーバーで実行される組み込みオブジェクトがいくつかあります。 これらのオブジェクトには、アプリケーション開発で使用されるメソッド、プロパティ、およびコレクションがあります。

次の表は、簡単な説明付きのASP.Netビルトインオブジェクトを示しています-

Sr.No. Object & Description
1
  • Application*

アプリケーションの存続期間中に存在する変数やオブジェクトなど、Webアプリケーション全体に関連する情報を格納するオブジェクトのメソッド、プロパティ、コレクションについて説明します。

このオブジェクトを使用して、アプリケーションのすべてのユーザー間で共有される情報を保存および取得します。 たとえば、アプリケーションオブジェクトを使用してeコマースページを作成できます。

2

Request

HTTP要求に関連する情報を格納するオブジェクトのメソッド、プロパティ、およびコレクションについて説明します。 これには、フォーム、Cookie、サーバー変数、および証明書データが含まれます。

このオブジェクトを使用して、ブラウザからサーバーへのリクエストで送信された情報にアクセスします。 たとえば、Requestオブジェクトを使用して、ユーザーがHTMLフォームに入力した情報にアクセスできます。

3

Response

サーバーの応答に関連する情報を格納するオブジェクトのメソッド、プロパティ、およびコレクションについて説明します。 これには、コンテンツの表示、ヘッダーの操作、ロケールの設定、リクエストのリダイレクトが含まれます。

このオブジェクトを使用して、情報をブラウザに送信します。 たとえば、Responseオブジェクトを使用して、スクリプトからの出力をブラウザーに送信します。

4

Server

さまざまなサーバータスクのメソッドを提供するオブジェクトのメソッドとプロパティについて説明します。 これらのメソッドを使用して、コードの実行、エラー状態の取得、テキスト文字列のエンコード、Webページで使用するオブジェクトの作成、物理パスのマッピングを行うことができます。

このオブジェクトを使用して、サーバー上のさまざまなユーティリティ機能にアクセスします。 たとえば、Serverオブジェクトを使用して、スクリプトのタイムアウトを設定できます。

5

Session

セッションの存続期間中に存在する変数やオブジェクトなど、ユーザーのセッションに関連する情報を格納するオブジェクトのメソッド、プロパティ、コレクションについて説明します。

このオブジェクトを使用して、特定のユーザーセッションに関する情報を保存および取得します。 たとえば、Sessionオブジェクトを使用して、ユーザーとその設定に関する情報を保持し、保留中の操作を追跡できます。

ASP.Netプログラミングモデル

ASP.Netは、2種類のプログラミングモデルを提供します-

  • * Webフォーム*-これにより、ユーザーインターフェイスと、ユーザーインターフェイスのさまざまなコンポーネントに適用されるアプリケーションロジックを作成できます。
  • * WCFサービス*-これにより、サーバー側の一部の機能にリモートアクセスできます。

この章では、無料のVisual Studio Web Developerを使用する必要があります。 IDEは、Windowsアプリケーションの作成にすでに使用したものとほぼ同じです。

VS Web Developer IDE

Webフォーム

Webフォームはで構成されています-

  • ユーザーインターフェース
  • アプリケーションロジック

ユーザーインターフェイスは、静的なHTMLまたはXML要素とASP.Netサーバーコントロールで構成されます。 Webアプリケーションを作成すると、HTMLまたはXML要素とサーバーコントロールは、*。aspx *拡張子を持つファイルに保存されます。 このファイルはページファイルとも呼ばれます。

アプリケーションロジックは、ページ内のユーザーインターフェイス要素に適用されるコードで構成されます。 このコードは、VB.Net、C#などの.Net言語で記述します。 次の図は、デザインビューのWebフォームを示しています-

Webフォーム

ユーザーがボタンをクリックすると、現在の日付と時刻が表示されるWebフォームを使用して新しいWebサイトを作成しましょう。 次の手順を実行します-

  • ファイル→新規→Webサイトを選択します。 [新しいWebサイト]ダイアログボックスが表示されます。

Webフォームの例

  • ASP.Net Empty Web Siteテンプレートを選択します。 Webサイトの名前を入力し、ファイルを保存する場所を選択します。
  • サイトにデフォルトページを追加する必要があります。 ソリューションエクスプローラーでWebサイト名を右クリックし、コンテキストメニューから[新しいアイテムの追加]オプションを選択します。 [新しい項目の追加]ダイアログボックスが表示されます-

Webフォームの例

  • [Webフォーム]オプションを選択し、デフォルトページの名前を指定します。 Default.aspxとして保存しました。 [追加]ボタンをクリックします。
  • デフォルトページはソースビューに表示されます

Webフォームの例

  • ソースビューで、ページの<Title>タグに値を追加して、デフォルトのWebページのタイトルを設定します-
  • Webページにコントロールを追加するには、デザインビューに移動します。 フォームにテキストボックスとボタンの3つのラベルを追加します。

Webフォームの例

  • ボタンをダブルクリックして、ボタンのクリックイベントに次のコードを追加します-
Protected Sub Button1_Click(sender As Object, e As EventArgs) _
Handles Button1.Click
   Label2.Visible = True
   Label2.Text = "Welcome to Tutorials Point: " + TextBox1.Text
   Label3.Text = "You visited us at: " + DateTime.Now.ToString()
End Sub

上記のコードが実行され、Microsoft Visual Studioツールバーで使用可能な[スタート]ボタンを使用して実行されると、ブラウザで次のページが開きます-

Webフォームの例

名前を入力して、[送信]ボタンをクリックします-

Webフォームの例

ウェブサービス

WebサービスはWebアプリケーションです。これは基本的に、他のアプリケーションで使用できるメソッドで構成されるクラスです。 また、ASP.Net Webページのような分離コードアーキテクチャに従いますが、ユーザーインターフェイスはありません。

Windows Communication Foundation

Net Frameworkの以前のバージョンを使用している場合でも、従来のWebサービスを作成できます。 詳細については、リンク:/asp.net/asp.net_web_services [ASP.Net-Web Services]チュートリアルを参照してください。.

Windows Communication FoundationまたはWCFは、WCFサービスと呼ばれる分散サービス指向アプリケーションを作成するためのAPIを提供します。

Webサービスと同様に、WCFサービスもアプリケーション間の通信を可能にします。 ただし、Webサービスとは異なり、ここでの通信はHTTPのみに限定されません。 WCFは、HTTP、TCP、IPC、およびメッセージキューで使用されるように構成できます。 WCFのもう1つの長所は、二重通信のサポートを提供するのに対して、Webサービスではシンプレックス通信のみを実現できることです。

初心者の観点から見ると、WCFサービスの作成はWebサービスの作成とまったく違いはありません。 物事をシンプルに保つために、私たちはどのようにするのか見ていきます-

  • WCFサービスを作成する
  • サービス契約を作成し、操作を定義する
  • 契約を実施する
  • サービスをテストする
  • サービスを活用する

この概念を理解するために、株価情報を提供する単純なサービスを作成しましょう。 クライアントは、銘柄記号に基づいて銘柄の名前と価格について照会できます。 この例を単純にするために、値は2次元配列にハードコーディングされています。 このサービスには2つの方法があります-

  • GetPriceメソッド-提供されたシンボルに基づいて、株価を返します。
  • GetNameメソッド-提供されたシンボルに基づいて、株式の名前を返します。

WCFサービスの作成

次の手順を実行します-

  • VS Express for Web 2012を開きます
  • [新しいWebサイト]を選択して、[新しいWebサイト]ダイアログボックスを開きます。
  • テンプレートのリストからWCFサービステンプレートを選択します-

WCFサービスの作成

  • [Webロケーション]ドロップダウンリストから[ファイルシステム]を選択します。
  • WCFサービスの名前と場所を指定して、[OK]をクリックします。
  • 新しいWCFサービスが作成されます。

サービス契約の作成と操作の定義

サービスコントラクトは、サービスが実行する操作を定義します。 WCFサービスアプリケーションでは、ソリューションエクスプローラーのApp_Codeフォルダーに2つのファイルが自動的に作成されます。

  • IService.vb-これにはサービス契約があります。簡単に言えば、サービスに提供するメソッドの定義を備えたサービスのインターフェイスがあり、これをサービスに実装します。
  • Service.vb-これはサービス契約を実装します。

WCFサービスの例

  • IService.vbファイルのコードを特定のコードに置き換えます-
Public Interface IService
   <OperationContract()>
   Function GetPrice(ByVal symbol As String) As Double

   <OperationContract()>
   Function GetName(ByVal symbol As String) As String
End Interface

契約の実施

Service.vbファイルには、 IService インターフェイスで定義されたサービスコントラクトを実装する Service という名前のクラスがあります。

IService.vbのコードを次のコードに置き換えます-

' NOTE: You can use the "Rename" command on the context menu to change the class name "Service" in code, svc and config file together.
Public Class Service
   Implements IService
   Public Sub New()
   End Sub
   Dim stocks As String(,) =
   {
      {"RELIND", "Reliance Industries", "1060.15"},
      {"ICICI", "ICICI Bank", "911.55"},
      {"JSW", "JSW Steel", "1201.25"},
      {"WIPRO", "Wipro Limited", "1194.65"},
      {"SATYAM", "Satyam Computers", "91.10"}
   }

   Public Function GetPrice(ByVal symbol As String) As Double _
   Implements IService.GetPrice

      Dim i As Integer
      'it takes the symbol as parameter and returns price
      For i = 0 To i = stocks.GetLength(0) - 1

         If (String.Compare(symbol, stocks(i, 0)) = 0) Then
            Return Convert.ToDouble(stocks(i, 2))
         End If
      Next i
      Return 0
   End Function

   Public Function GetName(ByVal symbol As String) As String _
   Implements IService.GetName

      ' It takes the symbol as parameter and
      ' returns name of the stock
      Dim i As Integer
      For i = 0 To i = stocks.GetLength(0) - 1

         If (String.Compare(symbol, stocks(i, 0)) = 0) Then
            Return stocks(i, 1)
         End If
      Next i
      Return "Stock Not Found"
   End Function
End Class

サービスのテスト

作成されたWCFサービスを実行するには、メニューバーから[デバッグ]→[デバッグの開始]オプションを選択します。 出力は次のようになります-

WCFサービステスト

サービス操作をテストするには、左ペインのツリーから操作の名前をダブルクリックします。 新しいタブが右側のペインに表示されます。

右ペインのリクエスト領域にパラメータの値を入力し、「起動」ボタンをクリックします。

次の図は、 GetPrice 操作のテスト結果を示しています-

WCFサービステスト

次の図は、 GetName 操作のテスト結果を示しています-

WCFサービステスト

サービスの活用

作成したばかりのWCFサービスを使用する元のソリューションに、ASP.NET Webフォームであるデフォルトページを追加しましょう。

次の手順を実行します-

  • ソリューションエクスプローラーでソリューション名を右クリックし、新しいWebフォームをソリューションに追加します。 Default.aspxという名前になります。
  • フォームにテキストボックスとボタンの2つのラベルを追加します。

WCFサービス使用率

  • 作成したばかりのWCFサービスにサービス参照を追加する必要があります。 ソリューションエクスプローラーでWebサイトを右クリックし、[サービス参照の追加]オプションを選択します。 これにより、[サービス参照の追加]ダイアログボックスが開きます。
  • [アドレス]テキストボックスにサービスのURL(場所)を入力し、[移動]ボタンをクリックします。 デフォルトの名前 ServiceReference1 でサービス参照を作成します。 OKボタンをクリックしてください。

サービス参照の追加

参照を追加すると、プロジェクトに2つのジョブが実行されます-

  • web.configファイルにサービスのアドレスとバインディングを作成します。
  • サービスにアクセスするためのプロキシクラスを作成します。
  • フォームの[価格を取得]ボタンをダブルクリックして、クリックイベントに次のコードスニペットを入力します-
Partial Class _Default
   Inherits System.Web.UI.Page

   Protected Sub Button1_Click(sender As Object, e As EventArgs) _
   Handles Button1.Click
      Dim ser As ServiceReference1.ServiceClient = _
      New ServiceReference1.ServiceClient
      Label2.Text = ser.GetPrice(TextBox1.Text).ToString()
   End Sub
End Class
  • 上記のコードが実行され、Microsoft Visual Studioツールバーで使用可能な[スタート]ボタンを使用して実行されると、ブラウザで次のページが開きます-

WCFサービス使用率

  • 記号を入力し、[価格の取得]ボタンをクリックして、ハードコーディングされた価格を取得します-

WCFサービス使用率