演练:使用多种编程语言开发网站

更新:2007 年 11 月

默认情况下,App_Code 文件夹不允许使用多种编程语言。不过,您可以将 Web 应用程序结构和配置设置修改为支持多种编程语言,如 Visual Basic 和 C#。这样,ASP.NET 就可以创建多个程序集,一个程序集对应一种语言。有关更多信息,请参见 ASP.NET 网站中的共享代码文件夹。开发人员通常在 Web 应用程序中包括多种编程语言,以便为独立工作并偏好不同编程语言的多个开发小组提供支持。

此演练解释如何向 ASP.NET 应用程序添加多种编程语言。

创建网站

如果您已经通过完成 演练:在 Visual Web Developer 中创建基本网页 在 Visual Web Developer 中创建了网站,则可以使用该网站,并转至下一部分。否则,按照下面的步骤创建一个新的网站和网页。

创建文件系统网站

  1. 打开 Visual Web Developer。

  2. 在**“文件”菜单上,单击“新建”,再单击“网站”。如果您使用的是 Visual Web Developer 速成版,则在“文件”菜单上单击“新建网站”**。

    **“新建网站”**对话框随即出现。

  3. 在**“Visual Studio 已安装的模板”下单击“ASP.NET 网站”**。

  4. 在第一个**“位置”框中选择“文件系统”**,在第二个框中输入要保存网站网页的文件夹的名称。

    例如,键入文件夹名称 C:\WebSites\BulkUpdate。

  5. 在**“语言”**列表中,单击您想使用的编程语言。

  6. 单击**“确定”**。

    Visual Web Developer 创建该文件夹和一个名为 Default.aspx 的新页。

创建语言特定类

在演练的该部分中,您将用两种语言(Visual Basic 和 C#)创建简单类文件。

向 App_Code 文件夹添加语言特定类文件

  1. 如果您的网站还没有 App_Code 文件夹,请执行以下操作:

    1. 在解决方案资源管理器中,选择该网站的名称。

    2. 在**“网站”菜单中,单击“添加 ASP.NET 文件夹”,再单击“App_Code”**。

  2. 在解决方案资源管理器中,右击 App_Code 文件夹,再单击**“新建文件夹”**。

  3. 将新文件夹命名为“CSCode”。

  4. 选择 CSCode 文件夹。

  5. 在**“网站”菜单中单击“添加新项”**。

    显示**“添加新项”**对话框。

  6. 在**“添加新项”对话框中,选择“类”模板,将类命名为“CSExample”,选择 C# 作为语言,再单击“添加”**。

  7. 在解决方案资源管理器中,双击 CSExample.cs 文件以打开它。

  8. 将下面的代码添加到 CSExample.cs 文件中,覆盖此文件中的现有 CSExample 类:

    public class CSExample
    {
        private string teamString;
        public CSExample()
        {
            TeamString = "C# Code";
        }
        public string TeamString 
        {
          get {
            return teamString;
          }
          set {
            teamString = value;
          }
        }
    }
    
  9. 重复步骤 2-7,使用下面的值为 Visual Basic 代码创建文件夹和类:

    • 新文件夹:VBCode

    • 新类文件:VBExample

      ms366714.alert_note(zh-cn,VS.90).gif说明:

      确保在创建新的 Visual Basic 类文件时将语言设置为 Visual Basic。

  10. 将下面的代码添加到 VBExample.vb 文件中,覆盖此文件中的现有 VBExample 类:

    Public Class VBExample
        Private teamStr As String
        Public Sub New()
            TeamString = "Visual Basic Code"
        End Sub
        Public Property TeamString() As String
            Get
                Return teamStr
            End Get
            Set(ByVal Value As String)
                teamStr = Value
            End Set
        End Property
    End Class
    

修改 Web.config 文件

在为每种编程语言创建了单独的子文件夹后,必须更改网站配置,以便 ASP.NET 能分别编译各个子文件夹。

修改 Web.config 文件以支持多种编程语言

  1. 在解决方案资源管理器中,选择该网站的名称。

  2. 如果您的网站还没有 Web.config 文件,请执行以下操作:

    1. 在**“网站”菜单中单击“添加新项”**。

    2. 选择**“Web 配置文件”,再单击“添加”**。

  3. 双击 Web.config 文件以打开它。

  4. 通过复制下面的节并将其粘贴为 <compilation> 节的子节点,将 <compilation> 节修改为包括 <codeSubDirectories> 节点:

    <codeSubDirectories>
      <add directoryName="CSCode"/>
      <add directoryName="VBCode"/>
    </codeSubDirectories>
    
    ms366714.alert_note(zh-cn,VS.90).gif说明:

    在 Machine.config 中该节的定义被 Web.config 文件中的设置覆盖。另外,配置条目的顺序就是它们的创建和链接顺序。

测试类

现在您可以测试网站是否可以使用两种编程语言的类。

查看使用多种编程语言的结果

  1. 如果您的网站还没有 Default.aspx 页,请执行以下操作:

    1. 在解决方案资源管理器中,右击该网站的名称,再单击**“添加新项”**。

    2. 选择**“Web 窗体”,将页命名为“Default.aspx”,再单击“添加”**。

  2. 在解决方案资源管理器中,双击 Default.aspx 页。

  3. 将 Button 控件添加到 Default.aspx 页中。

  4. 将 Button 控件的文本设置为“类语言”,将按钮的 ID 设置为“classLanguage”。

  5. 将 Label 控件添加到 Default.aspx 页中,将其 ID 属性设置为“classLabel”,并清除其 Text 属性。

  6. 在设计视图中双击 Button 控件,为其 Click 事件创建事件处理程序。

  7. 将下面的代码添加到 classLanguage_Click 处理程序中:

    CSExample CSCode = new CSExample();
    VBExample VBCode = new VBExample();
    if (classLabel.Text == CSCode.TeamString.ToString())
    {
        classLabel.Text = VBCode.TeamString.ToString();
    }
    else
    {
        classLabel.Text = CSCode.TeamString.ToString();
    }
    
    Dim CSCode As CSExample =  New CSExample() 
    Dim VBCode As VBExample =  New VBExample() 
    If classLabel.Text = CSCode.TeamString.ToString() Then
        classLabel.Text = VBCode.TeamString.ToString()
    Else 
        classLabel.Text = CSCode.TeamString.ToString()
    End If
    
  8. 在解决方案资源管理器中,右击 Default.aspx 并选择**“设为起始页”**。

  9. 运行该网站,按“类语言”按钮以在两种不同的语言类之间切换。

请参见

概念

ASP.NET 网站中的共享代码文件夹

IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期概述

ASP.NET 预编译概述

参考

compilation 元素(ASP.NET 设置架构)