用条件属性而不是#if预编译块
使用#if/#endif 块可以在同样源码上生成不同的编译(结果),大多数debug和release两个版本。但它们决不是我们喜欢用的工具。由于#if/#endif很容易被滥用,使得编写的代码难于理解且更难于调试。程序语言设计者有责任提供更好的工具,用于生成在不同运行环境下的机器代码。C#就提供了条件属性(Conditional attribute)来识别哪些方法可以根据环境设置来判断是否应该被调用。
(译注:属性在C#里有两个单词,一个是property另一个是attribute,它们有不是的意思,但译为中文时一般都是译为了属性。property是指一个对象的性质,也就是Item1里说的属性。而这里的attribute指的是.net为特殊的类,方法或者property附加的属性。可以在MSDN里查找attribute取得更多的帮助,总之要注意:attribute与property的意思是完全不一样的。)
使用#if/#endif 块可以在同样源码上生成不同的编译(结果),大多数debug和release两个版本。但它们决不是我们喜欢用的工具。由于#if/#endif很容易被滥用,使得编写的代码难于理解且更难于调试。程序语言设计者有责任提供更好的工具,用于生成在不同运行环境下的机器代码。C#就提供了条件属性(Conditional attribute)来识别哪些方法可以根据环境设置来判断是否应该被调用。
(译注:属性在C#里有两个单词,一个是property另一个是attribute,它们有不是的意思,但译为中文时一般都是译为了属性。property是指一个对象的性质,也就是Item1里说的属性。而这里的attribute指的是.net为特殊的类,方法或者property附加的属性。可以在MSDN里查找attribute取得更多的帮助,总之要注意:attribute与property的意思是完全不一样的。)
Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序。
.Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要--从socket套接字到普通的请求/响应,更重要的是,这种分层是可以扩展的,能够适应Internet不断扩展的需要。
抛开ISO/OSI模型的7层构架,单从TCP/IP模型上的逻辑层面上看,.Net类可以视为包含3个层次:请求/响应层、应用协议层、传输层。WebReqeust和WebResponse 代表了请求/响应层,支持Http、Tcp和Udp的类组成了应用协议层,而Socket类处于传输层。
.Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要--从socket套接字到普通的请求/响应,更重要的是,这种分层是可以扩展的,能够适应Internet不断扩展的需要。
抛开ISO/OSI模型的7层构架,单从TCP/IP模型上的逻辑层面上看,.Net类可以视为包含3个层次:请求/响应层、应用协议层、传输层。WebReqeust和WebResponse 代表了请求/响应层,支持Http、Tcp和Udp的类组成了应用协议层,而Socket类处于传输层。
在ASP.NET 1.0 中,最火红的资料显示控件非 DataGrid 莫属 (ASP.NET 2.0 的 GridView 亦同),其可显示储存在 Web server 记忆体中,DataSet/DataTable 里的“表格式资料”。但在 ASP.NET 页面中要处理“表格式资料”,事实上还有另一种较不起眼的 Table 控件 (不同于 DataTable)。该“显示型”Table 控件虽然内建的功能有限,但自由度反而较高,可由程序员自行撰写程式码去设计表格的外观,包括:可“跨栏、跨列”即时显示从数据库捞出的资料;以及自订依每个“储存格 (TableCell)”里的数值不同,动态显示不同的颜色。所以 Table 控件等于是一个“空心的”显示型控件,很多特性和方法它都不提供,必须由程序员手工打造,但也因此少掉许多包袱,并可能创作出比其它控件更强大的功能。
不过透过 Table 控件显示的“表格式资料”,无法在 Post-back 后保存下来,表格内容必须在每次 Post-back 后再重新建构。根据 MSDN Library 的说法,若预期会进行大量的修改,建议改用 DataList 或 DataGrid 控件来代替 Table 控件。

图 1 Table 控件结构图
不过透过 Table 控件显示的“表格式资料”,无法在 Post-back 后保存下来,表格内容必须在每次 Post-back 后再重新建构。根据 MSDN Library 的说法,若预期会进行大量的修改,建议改用 DataList 或 DataGrid 控件来代替 Table 控件。

图 1 Table 控件结构图
Chawt是一个不得不服的NB网站,竟然可以真正做到免费给全球发短信。Chawt与飞信、SINAGO这些国内的短信软件有很大区别,国内的软件基本上支持移动短信。而Chawt可以给国内移动、联通免费发短信,最强悍的Chawt更重要的是可以在网页上给全球各国手机发短信。
本以为此英文网站无法支持将短信发送至中国,因为国际间短信结算的费用是很昂贵的。可是我自己测试了一下,居然支持中文短信,并且可以可以成功地发送到我的手机,还相当地迅速。我只能说彻底服了这个免费发短信的网站:Chawt。这个网站是英文界面,但我们提供了注册教程,按照我们的要求步骤注册即可。
点这里进入Chawt注册页面,下图提供了中英文对照
本以为此英文网站无法支持将短信发送至中国,因为国际间短信结算的费用是很昂贵的。可是我自己测试了一下,居然支持中文短信,并且可以可以成功地发送到我的手机,还相当地迅速。我只能说彻底服了这个免费发短信的网站:Chawt。这个网站是英文界面,但我们提供了注册教程,按照我们的要求步骤注册即可。
点这里进入Chawt注册页面,下图提供了中英文对照
MONO
602
0


程序代码












