演练:使用多种编程语言开发网站
默认情况下,App_Code 文件夹不允许使用多种编程语言。不过,您可以将 Web 应用程序结构和配置设置修改为支持多种编程语言,如 Visual Basic 和 C#。这样,ASP.NET 就可以创建多个程序集,一个程序集对应一种语言。有关更多信息,请参见 ASP.NET 网站中的共享代码文件夹。开发人员通常在 Web 应用程序中包括多种编程语言,以便为独立工作并偏好不同编程语言的多个开发小组提供支持。
此演练解释如何向 ASP.NET 应用程序添加多种编程语言。
如果您已经通过完成演练:在 Visual Web Developer 中创建基本网页在 Visual Web Developer 中创建了网站,则可以使用该网站,并转至下一部分。否则,按照下面的步骤创建一个新的网站和网页。
创建文件系统网站
-
打开 Visual Web Developer。
-
在“文件”菜单上,单击“新建”,再单击“网站”。如果您使用的是 Visual Web Developer 速成版,则在“文件”菜单上单击“新建网站”。
“新建网站”对话框随即出现。
-
在“Visual Studio 已安装的模板”下单击“ASP.NET 网站”。
-
在第一个“位置”框中选择“文件系统”,在第二个框中输入要保存网站网页的文件夹的名称。
例如,键入文件夹名称 C:\WebSites\BulkUpdate。
-
在“语言”列表中,单击您想使用的编程语言。
-
单击“确定”。
Visual Web Developer 创建该文件夹和一个名为 Default.aspx 的新页。
在演练的该部分中,您将用两种语言(Visual Basic 和 C#)创建简单类文件。
向 App_Code 文件夹添加语言特定类文件
-
如果您的网站还没有 App_Code 文件夹,请执行以下操作:
-
在解决方案资源管理器中,选择该网站的名称。
-
在“网站”菜单中,单击“添加 ASP.NET 文件夹”,再单击“App_Code”。
-
-
在解决方案资源管理器中,右击 App_Code 文件夹,再单击“新建文件夹”。
-
将新文件夹命名为“CSCode”。
-
选择 CSCode 文件夹。
-
在“网站”菜单中单击“添加新项”。
显示“添加新项”对话框。
-
在“添加新项”对话框中,选择“类”模板,将类命名为“CSExample”,选择 C# 作为语言,再单击“添加”。
-
在解决方案资源管理器中,双击 CSExample.cs 文件以打开它。
-
将下面的代码添加到 CSExample.cs 文件中,重写此文件中的现有 CSExample 类:
C#public class CSExample { private string teamString; public cSharpExample() { TeamString = "C# Code"; } public string TeamString { get { return teamString; } set { teamString = value; } } }
-
重复步骤 2-7,使用下面的值为 Visual Basic 代码创建文件夹和类:
-
新文件夹:VBCode
-
新类文件:VBExample
注意 确保在创建新的 Visual Basic 类文件时将语言设置为 Visual Basic。
-
-
将下面的代码添加到 VBExample.vb 文件中,重写此文件中的现有 VBExample 类:
Visual BasicPublic 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
在为每种编程语言创建了单独的子文件夹后,必须更改网站配置,以便 ASP.NET 能分别编译各个子文件夹。
修改 Web.config 文件以支持多种编程语言
-
在解决方案资源管理器中,选择该网站的名称。
-
如果您的网站还没有 Web.config 文件,请执行以下操作:
-
在“网站”菜单中单击“添加新项”。
-
选择“Web 配置文件”,再单击“添加”。
-
-
双击 Web.config 文件以打开它。
-
通过复制下面的节并将其粘贴为 <compilation> 节的子节点,将 <compilation> 节修改为包括 <codeSubDirectories> 节点:
<codeSubDirectories> <add directoryName="CSCode"/> <add directoryName="VBCode"/> </codeSubDirectories>
注意 在 Machine.config 中该节的定义被 Web.config 文件中的设置重写。另外,配置条目的顺序就是它们的创建和链接顺序。
现在您可以测试网站是否可以使用两种编程语言的类。
查看使用多种编程语言的结果
-
如果您的网站还没有 Default.aspx 页,请执行以下操作:
-
在解决方案资源管理器中,右击该网站的名称,再单击“添加新项”。
-
选择“Web 窗体”,将页命名为“Default.aspx”,再单击“添加”。
-
-
在解决方案资源管理器中,双击 Default.aspx 页。
-
将 Button 控件添加到 Default.aspx 页中。
-
将 Button 控件的文本设置为“类语言”,将按钮的 ID 设置为“classLanguage”。
-
将 Label 控件添加到 Default.aspx 页中,将其 ID 属性设置为“classLabel”,并清除其 Text 属性。
-
在设计视图中双击 Button 控件,为其 Click 事件创建事件处理程序。
-
将下面的代码添加到 classLanguage_Click 处理程序中:
C#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(); }
Visual BasicDim 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
-
在解决方案资源管理器中,右击 Default.aspx 并选择“设为起始页”。
-
运行该网站,按“类语言”按钮以在两种不同的语言类之间切换。