创建"控制台应用程序"项目 控制台应用程序就是命令行应用程序,它没有任何图形界面,它非常适合用在不需要Windows图形用户界面(GUI)的后台应用程序中,其中一些应用包括向数据库提交大量的交易、产生基于字符的报告、在空闲时间使用调度程序运行批处理任务。
要创建一个控制台应用程序,需要选择"控制台应用程序"项目模板,如下图奖项目的名字改为ADOBook03-01,然后点击OK按钮。
(图05)
Visual Studio将创建带有一个代码模块的空的控制台应用程序,代码模块中包含有Sub Main()的过程模板。这也是我们的应用程序的入口点。下面我们在Main过程中添加一行代码。由于这是我们的第一个应用程序,我们将使用古老的"Hello World"例子。
Module Module1 Sub Main() Console.WriteLine("Hello World") End Sub
End Module |
现在我们就可以编译我们的代码了,从"连编"菜单中选择"连编 ADOBook03-01",如下图所示:

(图06)
我们就会看到输出窗口中显示的编译状态。编译结束时,它将显示编译错误,如果我们的程序中没有任何错误,我们就可以运行这个小程序了。这需要使用控制台窗口,不要使用Windows中带的标准控制台图标。如果看一下"启动"菜单,在"微软Visual Studio .NET工具"下面我们会看到一个"Visual Studio .NET命令提示符"条目,除了设置执行.NET应用程序的环境外,它与正常的命令提示符相似。我们可能希望在桌面上建立该应用程序的一个快捷方式或命令条。也许我们还想创建快捷方式,使命令提示符显示在Visual Studio Project文件夹后面,使我们能够迅速地知道可执行文件在哪个文件夹中。
缺省情况下,Visual Studio把可执行文件创建在项目文件夹中的bin子文件夹中,在本例中,可执行文件的路径是:
C:\Documents and Settings\bhowell\My Documents\Visual Studio Projects\ADOBook\ADOBook03\ADOBook03-01\bin |
一旦找到了该文件夹,我们就可以输入小程序的名字━━ADOBook03-01,并键入回车键,我们就能够在屏幕上看到"Hello World"的字样以及返回的命令行提示符。
创建Windows项目 要创建一个Windows应用程序,点击"新项目"按钮并选择"Windows应用程序模板"图标,将项目的名字改为ADOBook03-02。完成这些工作后,项目窗口应当如下所示:
(图07)
Visual Studio创建了一个空白窗体,并打开了其设计器窗口。如图7所示,Visual Studio添加了该项目的新引用。System.Windows.Forms是新的Windows窗体类库,该库有效地将大多数Windows用户API封装在一个.NET类库中。System.Drawing library封装了图形设备界面(GDI+)API。这二个类库提供了我们创建图形界面所需要的所有元素。
打开窗体设计器,重新改变窗体的大小,并在上面"拖放"一个按钮。将窗体的"文本"属性改为"Hello",将按钮的"文本"属性改为"Say Hello"。我们得到的窗体应当如下图所示:

(图08)
然后,双击"命令"按钮,这将为该按钮的点击事件创建一个函数模板,并将下面的代码添加到点击事件中:
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click MessageBox.Show("Hello World") End Sub |
点击"运行"菜单项编译、运行程序。在这个程序中我们不需要命令提示符,因为它是一个Windows程序。程序编译结束后,我们的窗口就应当显示出来。点击"Say Hello"按钮,就会出现一个消息框,关闭消息框。关闭窗口就可以结束该程序的运行。
ASP .NET项目 现在我们来看看Visual Studio .NET与以前版本相比真正"闪光"的地方。 过去,要使用Visual Studio工具开发一个web应用程序,根据开发的应用软件的类型,我们必须在Visual Interdev、FrontPage和VB之间"跳来跳去",我们使用Visual Interdev开发客户端web应用程序,使用FrontPage开发静态网页,使用VB开发web类和服务器端组件,每种工具各有优缺点。在Visual Studio.NET中,所有这些都成了历史,开发web应用程序不再需要单独的工具,开发服务器端web应用程序的过程与开发标准的Windows应用程序非常相似。下面我们通过一个简单的例子来说明这一点。
在开始前,我们先来看看所需要的工具和组件。我们应当已经安装了Visual Studio.NET专业版或更高版本的开发工具。另外,我们还需要在Windows 2000或XP Pro上安装的IIS 5.0,ISS 5.0还必须使用端口80。
此外,我们还需要确认没有安装Apache等其它web服务器。在Windows XP平台上,如果二种服务同时使用端口80,我们不会得到错误信息,首先启动的服务将获得端口的使用权。在WinNT 4和2000平台上,如果在一个已经被使用的端口上启动另一个应用程序,在日志中会有相关出错信息。如果有其它应用程序在使用端口80,为了运行IIS,我们必须首先中断其它应用程序。另外,还需要将服务的启动模式改为手动方式。
ISS还需要使用Microsoft ASP.NET文件(ASPX)扩展进行更新,Visual Studio也需要安装它。要检查是否进行了更新,可以打开"管理控制台",扩展"互联网信息服务"节点,扩展"Web站点",右击"缺省Web站点",选择"属性",然后选择"主目录"标签,点击窗体底部的"配置"按钮,我们会看到如下图所示的内容:

(图09)
注意.NET的所有引用。如果没有看到任何引用,我们就需要重新配置计算机了。Visual Studio Installer会为我们完成这一任务。
如果能够确保已经满足了所有这些要求,我们就能够开始自己的项目了。首先,关闭任何打开的项目,选择"新项目",在打开对话框时选择"ASP.NET Web应用程序",将项目的名字改为ADOBook03-03,并点击"OK"按钮。我们注意到的第一个不同之处是Visual Studio与web站点交互的方式,这是因为Visual Studio使项目在ISS服务器上运行。如果我们使用的是本地计算机,则缺省路径是C:\InetPub\WWWRoot\ADOBook03-03;如果web站点保存在一台服务器上,则文件也存储在服务器上。"引用"节点扩展后的"项目管理器"如图10所示:
(图10)
需要注意的东西:
引用━━注意对System.Web的引用,该库文件中包含开发web应用程序所必需的类。
ADOBook03-03.vsdisco━━这是一个Web服务发现文档,该文档用于UDDI目录服务。这些服务帮助用户发现Web服务,并提供发现它们的标准,它就象一个Web服务的搜索引擎。
Web.config━━该文件包含应用程序配置信息,它的作用与ini文件相似。
如果打开vsdisco或web.config文件,我们就会看到XML文件,这才是Web服务的真谛所在。关于.NET的一句谚语是:如果分辨不出它是什么,就假定它是XML好了。
下面就该是最巧妙的部分了。我们在新的Web窗体中添加一个按钮,打开工具箱,现在我们看到的是Web Form控件,而不再是Windows控件,将一个按钮拖放到窗体上。缺省情况下,窗体将对其中的元素使用绝对位置,这意味着这些元素是固定,当用户改变浏览器窗口的大小时,这些元素将不能自动移动。我们也可以使用相对定位,在这种模式下,当用户改变浏览器窗口的大小时,这些元素将被重新整理。由于我们是在设计窗体,因此我们将使用绝对定位,如果浏览器窗口窗口太小而不能包含整个窗体,就会出现移动条,使用户能够看到窗体的其余部分。
现在我们来添加一个向用户通报该应用程序目的的标签。在窗体上拖一个标签控件,将该标签的text属性改为"Say Hello World Application",将按钮的text属性改为"Say Hello",将控件放在如下图所示的位置:

(图11)
小技巧:
在设计Web窗体时,我们要考虑目标用户。如果具有要求较小屏幕分辩率(例如800x600)的能力,在设计时要考虑到这一点。如果不能控制用户的机器,我们应当使窗体能够在640X480的分辩率下正常显示,以使所有用户都能够有一个比较好的体验。研究表明,用户体验决定着大多数应用程序是否成功,而与其代码的质量关系不大。 |
创建一个Web窗体,将该窗体的pageLayout属性改为"FlowLayout"。现在,我们就可以直接在网页上输入了。事实上,在IDE中我们可以使用FrontPage的所有设计功能。从下拉列表中选择"标题1",直接在该页上输入"Hello World"。在该页上拖放另一个按钮,将其text属性改为"Back"。为了有趣,点击设计窗口底部的HTML标签,就会看到它变成了正常的HTMK代码。缺省情况下ASP.NET应用程序生成标准的HTML代码,使该窗体能够在所有浏览器上运行。
在WebForm1中双击该攛,就会出现一个代码窗口和点击事件过程。在点击事件过程中输入下面的代码:
| Me.Response.Redirect("WebForm2.aspx") |
然后在WebForm2执行同样的操作,但不要输入WebForm1中的代码。点击"Run"按钮,程序就会被编译,但它的运行与标准的Windows应用程序不同,而是会打开一个浏览器窗口,并显示WebForm1窗体。从"View"菜单中选择"Source"菜单项就会出现HTML代码,这是非常基本的HTML代码。点击"Say Hello"按钮就会出现WebForm2窗口,点击"Go Back"按钮就会出现WebForm1窗体。关闭浏览器窗口就可以结束程序的运行。由于所有的数据处理都在服务器上运行,因此该网页能够在任何浏览器。(待续)