- 你所在位置:首页 〉VS.net〉C#〉C#高级编程(4版)〉1.7 C#高级编程:用C#创建.NET应用程序
- 1.7 C#高级编程:用C#创建.NET应用程序
- 作者:佚名 文章来源:http://book.csdn.net/ 发布日期:2007-11-10 浏览次数:550
-
- 打印这篇文章
-
1.7 用C#创建.NET应用程序
C#可以用于创建控制台应用程序:仅使用文本、运行在DOS窗口中的应用程序。在进行单元测试类库、创建Unix/Linux daemon进程时,就要使用控制台应用程序。但是,我们常常使用C#创建利用许多与.NET相关的技术的应用程序,下面简要论述可以用C#创建的不同类型的应用程序。
1.7.1 创建ASP.NET应用程序
ASP是用于创建带有动态内容的Web页面的一种Microsoft技术。ASP页面基本是一个嵌有服务器端VBScript或JavaScript代码块的HTML文件。当客户浏览器请求一个ASP页面时,Web服务器就会发送页面的HTML部分,并处理服务器端脚本。这些脚本通常会查询数据库的数据,在HTML中标记数据。ASP是客户建立基于浏览器的应用程序的一种便利方式。
但ASP也有缺点。首先,ASP页面有时显示得比较慢,因为服务器端代码是解释性的,而不是编译的。第二,ASP文件很难维护,因为它不是结构化的,服务器端的ASP代码和一般的HTML会混合在一起。第三,ASP有时开发起来会比较困难,因为它不支持错误处理和语法检查。特别是如果使用VBScript,并希望在页面中进行错误处理,就必须使用On Error Resume Next语句,通过Err.Number检查调用每个组件,以确保该调用正常进行。
ASP.NET是ASP的修订版本,它解决了ASP的许多问题。但ASP.NET页面并没有替代ASP,而是可以与原来的ASP应用程序在同一个服务器上同时并存。当然,也可以用C#编写ASP.NET。
后面的章节(第26~27章)会详细讨论ASP.NET,这里仅解释它的一些重要特性。
1. ASP.NET的特性
首先,也是最重要的是,ASP.NET页面是结构化的。这就是说,每个页面都是一个继承了.NET类System.Web.UI.Page的类,可以重写在Page对象的生存期中调用的一系列方法, (可以把这些事件看成是页面所特有的,对应于原ASP的global.asa文件中的OnApplication_Start 和OnSession_Start事件)。因为可以把一个页面的功能放在有明确含义的事件处理程序中,所以ASP.NET比较容易理解。
ASP.NET页面的另一个优点是可以在Visual Studio 2005中创建它们,在该环境下,可以创建ASP.NET页面使用的业务逻辑和数据访问组件。Visual Studio 2005项目(也称为解决方案)包含了与应用程序相关的所有文件。而且,也可以在编辑器中调试传统的ASP页面,在以前使用Visual InterDev时,把InterDev和项目的Web服务器配置为支持调试常常是一个让人头痛的问题。
最清楚的是,ASP.NET的后台编码功能允许进一步采用结构化的方式。ASP.NET允许把页面的服务器端功能单独放在一个类中,把该类编译为DLL,并把该DLL放在HTML部分下面的一个目录中。放在页面顶部的后台编码指令将把该文件与其DLL关联起来。当浏览器请求该页面时,Web服务器就会在页面的后台DLL中引发类中的事件。
最后ASP.NET在性能的提高上非常明显。传统的ASP页面是和每个页面请求一起进行解释,而Web服务器是在编译后高速缓存ASP.NET页面。这表示以后对ASP.NET页面的请求就比ASP页面的执行速度快得多。
ASP.NET还易于编写通过浏览器显示窗体的页面,这在内联网环境中会使用。传统的方式是基于窗体的应用程序提供一个功能丰富的用户界面,但较难维护,因为它们运行在非常多的不同机器上。因此,当用户界面是必不可少的,并可以为用户提供扩展支持时,人们就会依赖基于窗体的应用程序。
但随着Internet Explorer 5的出现,而Navigator 6的性能乏善可陈时,基于窗体的应用程序的优点就非常突出了。IE 5对DHTML的健全的支持,允许程序员创建基于Web的应用程序,这些应用程序都能很好地对应于其客户端程序。当然,这种应用程序需要在IE上进行标准化,而不支持Navigator。在许多行业中,这种标准化现在是很常见的。
2. Web窗体
为了简化Web页面的结构,Visual Studio 2005提供了Web窗体。它们允许以创建Visual Basic 6或 C++ Builder窗口的方式图形化地建立ASP.NET页面;换言之,就是把控件从工具箱拖放到窗体上,再考虑窗体的代码,为控件编写事件处理程序。在使用C#创建Web窗体时,就是创建一个继承于Page 基类的C#类,以及把这个类看作是后台编码的ASP.NET页面。当然不必使用C#创建Web窗体,而可以使用Visual Basic 2005或另一种.NET语言来创建。
过去,Web开发的困难使一些开发小组不愿意使用Web。为了成功地进行Web开发,必须了解非常多的不同技术,例如VBScript、ASP、DHTML、JavaScript等。把窗体概念应用于Web页面,Web窗体就可以使Web开发容易许多。
Web服务器控件
用于添加到Web窗体上的控件与ActiveX控件并不是同一种控件,它们是ASP.NET命名空间中的XML标记,当请求一个页面时,Web浏览器会动态地把它们转换为HTML和客户端脚本。Web服务器能以不同的方式显示相同的服务器端控件,产生一个对应于请求者特定Web浏览器的转换。这意味着现在很容易为Web页面编写相当复杂的用户界面,而不必担心如何确保页面运行在可用的任何浏览器上,因为Web窗体会完成这些任务。
可以使用C#或Visual Basic 2005扩展Web窗体工具箱。创建一个新服务器端控件,仅是执行.NET的System.Web.UI.WebControls.WebControl类而已。
3. XML Web服务
目前,HTML页面解决了World Wide Web上的大部分通信问题。有了XML,计算机就可以用一种独立于设备的格式,在Web上彼此通信。将来,计算机可以使用Web和XML交流信息,而不是专用的线路和专用的格式,例如EDI (Electronic Data Interchange)。XML Web服务是为面向Web的服务而设计的,即远程计算机彼此提供可以分析和重新格式化的动态信息,最后显示给用户。XML Web服务是计算机给Web上的其他计算机以XML格式显示信息的一种便利方式。
在技术上,.NET上的XML Web服务是给请求的客户返回XML而不是HTML的ASP.NET页面。这种页面有后台编码的DLL,它包含了派生自WebService类的类。Visual Studio 2005 IDE提供的引擎简化了Web服务的开发。
公司选择使用XML Web服务主要有两个原因。第一是因为它们依赖于HTTP,而XML Web服务可以把现有的网络(HTTP)用作传输信息的媒介。第二是因为XML Web服务使用XML,该数据格式是自我描述的、非专用的、独立于平台的。
1.7.2 创建Windows窗体
C#和.NET非常适合于Web开发,它们还为所谓的“胖客户端”应用程序提供了极好的支持,这种“胖客户端”应用程序必须安装在处理大多数操作的最终用户的机器上,这种支持来源于Windows窗体。
Windows窗体是Visual Basic 6窗体的.NET版本,要设计一个图形化的窗口界面,只需把控件从工具箱拖放到Windows窗体上即可。要确定窗口的行为,应为该窗体的控件编写事件处理例程。Windows Form项目编译为.EXE,该EXE必须与.NET运行库一起安装在最终用户的计算机上。与其他.NET项目类型一样,Visual Basic 2005和C#都支持Windows Form项目。第23章将详细介绍Windows窗体。
1.7.3 Windows控件
Web窗体和Windows窗体的开发方式一样,但应为它们添加不同类型的控件。Web窗体使用Web服务器控件,Windows窗体使用Windows控件。
Windows控件比较类似于ActiveX控件。在执行Windows控件后,它会编译为必须安装到客户机器上的DLL。实际上,.NET SDK提供了一个实用程序,为ActiveX控件创建包装器,以便把它们放在Windows窗体上。与Web控件一样,Windows控件的创建需要派生于特定的类System.Windows.Forms.Control。
1.7.4 Windows服务
Windows服务(最初称为NT服务)是一个在Windows NT/2000/XP/2003 (但没有Windows 9x)后台运行的程序。当希望程序连续运行,响应事件,但没有用户的明确启动操作时,就应使用Windows服务。例如Web服务器上的World Wide Web服务,它们监听来自客户的Web请求。
用C#编写服务是非常简单的。System.ServiceProcess命名空间中的.NET Framework基类可以处理许多与服务相关的样本任务,另外,Visual Studio 2005允许创建C# Windows Service项目,为基本Windows服务编写C#源代码。第36章将详细介绍如何编写C# Windows服务。
- 打印这篇文章
- 与本文主题相关的文章
-
- 返回首页
