Vb.net-web-programming
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 |
アプリケーションの存続期間中に存在する変数やオブジェクトなど、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アプリケーションの作成にすでに使用したものとほぼ同じです。
Webフォーム
Webフォームはで構成されています-
- ユーザーインターフェース
- アプリケーションロジック
ユーザーインターフェイスは、静的なHTMLまたはXML要素とASP.Netサーバーコントロールで構成されます。 Webアプリケーションを作成すると、HTMLまたはXML要素とサーバーコントロールは、*。aspx *拡張子を持つファイルに保存されます。 このファイルはページファイルとも呼ばれます。
アプリケーションロジックは、ページ内のユーザーインターフェイス要素に適用されるコードで構成されます。 このコードは、VB.Net、C#などの.Net言語で記述します。 次の図は、デザインビューのWebフォームを示しています-
例
ユーザーがボタンをクリックすると、現在の日付と時刻が表示されるWebフォームを使用して新しいWebサイトを作成しましょう。 次の手順を実行します-
- ファイル→新規→Webサイトを選択します。 [新しいWebサイト]ダイアログボックスが表示されます。
- ASP.Net Empty Web Siteテンプレートを選択します。 Webサイトの名前を入力し、ファイルを保存する場所を選択します。
- サイトにデフォルトページを追加する必要があります。 ソリューションエクスプローラーでWebサイト名を右クリックし、コンテキストメニューから[新しいアイテムの追加]オプションを選択します。 [新しい項目の追加]ダイアログボックスが表示されます-
- [Webフォーム]オプションを選択し、デフォルトページの名前を指定します。 Default.aspxとして保存しました。 [追加]ボタンをクリックします。
- デフォルトページはソースビューに表示されます
- ソースビューで、ページの<Title>タグに値を追加して、デフォルトのWebページのタイトルを設定します-
- Webページにコントロールを追加するには、デザインビューに移動します。 フォームにテキストボックスとボタンの3つのラベルを追加します。
- ボタンをダブルクリックして、ボタンのクリックイベントに次のコードを追加します-
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アプリケーションです。これは基本的に、他のアプリケーションで使用できるメソッドで構成されるクラスです。 また、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サービステンプレートを選択します-
- [Webロケーション]ドロップダウンリストから[ファイルシステム]を選択します。
- WCFサービスの名前と場所を指定して、[OK]をクリックします。
- 新しいWCFサービスが作成されます。
サービス契約の作成と操作の定義
サービスコントラクトは、サービスが実行する操作を定義します。 WCFサービスアプリケーションでは、ソリューションエクスプローラーのApp_Codeフォルダーに2つのファイルが自動的に作成されます。
- IService.vb-これにはサービス契約があります。簡単に言えば、サービスに提供するメソッドの定義を備えたサービスのインターフェイスがあり、これをサービスに実装します。
- Service.vb-これはサービス契約を実装します。
- 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サービスを実行するには、メニューバーから[デバッグ]→[デバッグの開始]オプションを選択します。 出力は次のようになります-
サービス操作をテストするには、左ペインのツリーから操作の名前をダブルクリックします。 新しいタブが右側のペインに表示されます。
右ペインのリクエスト領域にパラメータの値を入力し、「起動」ボタンをクリックします。
次の図は、 GetPrice 操作のテスト結果を示しています-
次の図は、 GetName 操作のテスト結果を示しています-
サービスの活用
作成したばかりのWCFサービスを使用する元のソリューションに、ASP.NET Webフォームであるデフォルトページを追加しましょう。
次の手順を実行します-
- ソリューションエクスプローラーでソリューション名を右クリックし、新しいWebフォームをソリューションに追加します。 Default.aspxという名前になります。
- フォームにテキストボックスとボタンの2つのラベルを追加します。
- 作成したばかりの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ツールバーで使用可能な[スタート]ボタンを使用して実行されると、ブラウザで次のページが開きます-
- 記号を入力し、[価格の取得]ボタンをクリックして、ハードコーディングされた価格を取得します-