VB.Net - 网络编程

动态网络应用程序包含以下两种类型的程序中的一种或两种 :

  • 服务器端脚本 : 这些是在Web服务器上执行的程序,使用服务器端脚本语言(如ASP(Active Server Pages)或JSP(Java Server Pages))编写.

  • 客户端脚本 : 这些是在浏览器上执行的程序,使用JavaScript,VBScript等脚本语言编写.

ASP.Net是.Net版本由Microsoft引入的ASP,用于通过使用服务器端脚本创建动态网页. ASP.Net应用程序是使用.Net框架中存在的可扩展和可重用组件或对象编写的编译代码.这些代码可以使用.Net框架中的整个类层次结构.

ASP.Net应用程序代码可以用以下任何一种语言编写 :

  • Visual Basic .Net

  • C#

  • Jscript

  • J#

<在本章中,我们将简要介绍使用VB.Net编写ASP.Net应用程序.有关详细讨论,请参阅 ASP.Net教程.

ASP.Net内置对象

ASP.Net有一些在Web服务器上运行的内置对象.这些对象具有在应用程序开发中使用的方法,属性和集合.

下表列出了ASP.Net内置对象的简要说明 :

Sr.No.对象&描述
1

应用程序

描述存储与整个Web应用程序相关的信息的对象的方法,属性和集合,包括生命周期中存在的变量和对象应用程序.

您可以使用此对象来存储和检索要在应用程序的所有用户之间共享的信息.例如,您可以使用Application对象来创建电子商务页面.

2

请求

描述方法,属性和集合存储与HTTP请求相关的信息的对象.这包括表单,cookie,服务器变量和证书数据.

您可以使用此对象访问从浏览器到服务器的请求中发送的信息.例如,您可以使用Request对象访问用户在HTML表单中输入的信息.

3

回复

描述方法,属性,以及存储与服务器响应相关的信息的对象的集合.这包括显示内容,操纵标题,设置区域设置和重定向请求.

您可以使用此对象将信息发送到浏览器.例如,您使用Response对象将脚本中的输出发送到浏览器.

4

服务器

描述对象的方法和属性提供各种服务器任务的方法.使用这些方法,您可以执行代码,获取错误条件,编码文本字符串,创建供网页使用的对象,以及映射物理路径.

您可以使用此对象访问各种实用程序函数在服务器上.例如,您可以使用Server对象为脚本设置超时.

5

会话

描述方法,属性和集合存储与用户会话相关的信息的对象,包括会话生命周期中存在的变量和对象.

您可以使用此对象存储和检索有关特定用户会话的信息.例如,您可以使用Session对象来保存有关用户及其偏好的信息,并跟踪待处理的操作.

ASP.Net编程模型

ASP.Net提供两种类型的编程模型 :

  • 网络表单 : 这使您可以创建将应用于用户界面的各个组件的用户界面和应用程序逻辑.

  • WCF服务 : 这使您可以远程访问某些服务器端功能.

在本章中,您需要使用Visual Studio Web Developer,它是自由. IDE与您用于创建Windows应用程序的IDE几乎相同.

VS Web开发人员IDE

Web表单

Web表单由 :

  • $ b $组成b

  • 用户界面

  • 应用程序逻辑

用户界面由静态HTML或XML元素和ASP.Net服务器控件组成.创建Web应用程序时,HTML或XML元素和服务器控件存储在 .aspx 扩展名的文件中.此文件也称为页面文件.

应用程序逻辑由应用于页面中用户界面元素的代码组成.您可以使用任何.Net语言(如VB.Net或C#)编写此代码.下图显示了设计视图中的Web窗体 :

Web Form

示例

让我们创建一个带有Web表单的新网站,该网站将显示用户单击按钮时的当前日期和时间.采取以下步骤 :

  • 选择File → 新的 → 网站.将出现"新建网站"对话框.

Web表单示例

  • 选择ASP.Net空网站模板.输入网站名称并选择保存文件的位置.

  • 您需要向网站添加默认页面.右键单击解决方案资源管理器中的网站名称,然后从上下文菜单中选择"添加新项"选项.显示添加新项对话框 :

Web表单示例

  • 选择"Web表单"选项并提供默认页面的名称.我们将其保留为Default.aspx.单击"添加"按钮.

  • "默认"页面显示在"源"视图中

Web表单示例

  • 通过向< Title>添加值来设置默认网页的标题.页面的标签,在源视图中 :

  • 在网页上添加控件,转到设计视图.在表单上添加三个标签,一个文本框和一个按钮.

Web Form Example

  • 双击该按钮并将以下代码添加到Click事件按钮 :

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 Form Example

Web服务

Web服务是一个Web应用程序,这基本上是一个由其他应用程序可以使用的方法组成的类.它还遵循代码隐藏架构,如ASP.Net网页,虽然它没有用户界面.

.Net Framework的早期版本使用了ASP.Net的这个概念Web Service,具有.asmx文件扩展名.但是,从.Net Framework 4.0开始,Windows Communication Foundation(WCF)技术已经发展成为Web Services,.Net Remoting和其他一些相关技术的新继承者.它将所有这些技术结合在一起.在下一节中,我们将简要介绍Windows Communication Foundation(WCF).

如果您使用的是以前版本的.Net Framework,您仍然可以创建传统的Web服务.有关详细说明,请参阅 ASP.Net  -  Web Services 教程.

Windows Communication Foundation

Windows Communication Foundation或WCF提供用于创建分布式面向服务的应用程序的API,称为WCF服务.

与Web服务类似, WCF服务还支持应用程序之间的通信.但是,与Web服务不同,此处的通信不仅限于HTTP.可以将WCF配置为通过HTTP,TCP,IPC和消息队列使用.支持WCF的另一个优点是,它支持双工通信,而对于Web服务,我们只能实现单工通信.

从初学者的角度来看,编写WCF服务是与编写Web服务完全不同.为了简单起见,我们将看到如何&减去;

  • 创建WCF服务

  • 创建服务合同并定义操作

  • 实施合同

  • 测试服务

  • 利用服务

示例

为了理解这个概念,让我们创建一个提供股票价格信息的简单服务.客户可以根据股票代码查询股票的名称和价格.为了简化这个例子,这些值是在二维数组中硬编码的.这项服务有两种方法 :

  • GetPrice Method : 它将根据提供的符号返回股票的价格.

  • GetName Method : 它将根据提供的符号返回股票的名称.

创建WCF服务

采取以下步骤 :

  • 打开VS Express for Web 2012

  • 选择"新建网站"以打开"新建网站"对话框.

  • 从模板列表中选择WCF服务模板 :

创建WCF服务

  • 从Web位置下拉列表中选择文件系统.

  • 提供WCF服务的名称和位置,然后单击"确定".

  • 创建新的WCF服务.

创建服务合同并定义操作

服务合同定义服务执行的操作.在WCF服务应用程序中,您将在解决方案资源管理器中找到在App_Code文件夹中自动创建的两个文件

  • IService.vb &减去;这将有服务合同;换句话说,它将具有服务的接口,以及服务将提供的方法的定义,您将在服务中实现.

  • 服务.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文件中,您将找到一个名为 Service 的类,它将实现 IService 接口中定义的服务合同.

使用以下代码替换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服务,选择Debug → 从菜单栏中启动调试选项.输出将是 :

WCF服务测试

要测试服务操作,请双击左窗格中树的操作名称.右侧窗格中将显示一个新选项卡.

在右侧窗格的"请求"区域中输入参数值,然后单击"调用"按钮.

下图显示了测试 GetPrice 操作的结果 :

WCF服务测试

下图显示测试 GetName 操作的结果 :

WCF服务测试

利用服务

让我们添加一个默认页面,一个ASP.NET Web表单,在同一个解决方案中我们将使用我们刚刚创建的WCF服务.

采取以下步骤 :

  • 在解决方案资源管理器中右键单击解决方案名称,然后向解决方案添加新的Web表单.它将命名为Default.aspx.

  • 在表单上添加两个标签,一个文本框和一个按钮.

WCF服务利用率

  • 我们需要为刚刚创建的WCF服务添加服务引用.右键单击Solution Explorer中的网站,然后选择Add Service Reference选项.这将打开"添加服务引用"对话框.

  • 在"地址"文本框中输入服务的URL(位置),然后单击"转到"按钮.它使用默认名称 ServiceReference1 创建服务引用.单击确定按钮.

添加服务参考

添加引用为您的项目执行两个作业 :

  • 创建web.config文件中服务的地址和绑定.

  • 创建代理类以访问服务.

  • 双击表单中的"获取价格"按钮,在其Click事件中输入以下代码片段 :

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服务利用率