<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="css/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>大统一网</title><link>http://www.datongyi.com/</link><description></description><generator>RainbowSoft Studio Z-Blog 1.8 Walle Build 100427</generator><language>zh-CN</language><copyright>Copyright &amp;amp;copy 2008-2010 大统一. Some Rights Reserved.鄂ICP备09005938号 </copyright><pubDate>Tue, 03 Jan 2012 11:55:55 +0800</pubDate><item><title>利用VS的自定义向导生成C++项目模板（Custom Wizard）</title><author>a@b.com (cnwang)</author><link>http://www.datongyi.com/post/28.html</link><pubDate>Tue, 03 Jan 2012 11:44:45 +0800</pubDate><guid>http://www.datongyi.com/post/28.html</guid><description><![CDATA[<p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">最近打算研究一下</span><span lang="EN-US">DirectX</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">。于是关注了一下</span><span lang="EN-US">DirectX</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">环境的配置问题。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">发现每次新建一个</span><span lang="EN-US">DX</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">项目时，都需要配置一遍项目属性，比较麻烦。于是想通过用项目模板来完成这一工作。如下是整个模板的生成过程。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">笔者的环境是</span><span lang="EN-US">Win7</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">下的</span><span lang="EN-US">VS2005<o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">首先在新建项目</span><span lang="EN-US">,</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">项目类型里选择</span><span lang="EN-US">Virtual C++ </span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">自定义向导。填写好名称和位置。位置最好放到&ldquo;</span><span lang="EN-US">Visual Studio</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">用户项目模板位置&rdquo;（不知道的可以在</span><span lang="EN-US">VS</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">中，【工具】【选项】【项目和解决方案】里查看位置。）</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">确定，然后出现自定义应用程序向导。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">下一步，填写向导友好名称（会显示在新建项目面板中）。由于这里不需要用户界面，所以去掉勾选&ldquo;用户界面&rdquo;。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">完成。这时</span><span lang="EN-US">VS</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">会在如下位置生成一些文件：</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left:18.0pt;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span lang="EN-US">1.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span lang="EN-US">Program Files\Microsoft Visual Studio 8\VC\vcprojects<o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left:18.0pt"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">该目录下会生成三个文件。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left:18.0pt"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">一个</span><span lang="EN-US">ico</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">文件。将会显示在新建项目面板中。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left:18.0pt"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">一个</span><span lang="EN-US">vsdir</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">文件。定义如何把向导包含的信息呈现给用户。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left:18.0pt"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">一个</span><span lang="EN-US">vsz</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">文件。记录项目模板的存放路径。这个路径这是下面要说的第二个位置了。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left:18.0pt"><img alt="" title="" src="http://www.datongyi.com/upload/01.jpg" /></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span lang="EN-US">2 &nbsp;..\Templates\ProjectTemplates\Virtual C++\DirectX.<o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">即我们在新建此模板时自己指定的位置。这里会生成一个工程。就是当前</span><span lang="EN-US">VS</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">里显示的这个项目。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><img alt="" title="" style="text-indent: 0px; " src="http://www.datongyi.com/upload/201201031150274677.png" /></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">该项目下有五个文件夹。分别是：</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span lang="EN-US">HTML</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">文件、图像文件、杂项文件、模板文件和脚本文件。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span lang="EN-US">HTML</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">文件与图像文件两个文件夹用于存放界面向导的相关文件。这里是非</span><span lang="EN-US">UI</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的向导，所以这两个文件夹里没有文件。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">杂项文件夹里，除了上面介绍的三个文件，还有</span><span lang="EN-US">default.vcproj</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">和</span><span lang="EN-US">Templates.inf</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">第一个文件是用此模板生成项目的项目文件模板，第二个文件，记录用该模板生成的项目里应该包含哪些文件（这里有一些需要注意的地方，该在后面指出）。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">模板文件夹。这个文件夹</span> <span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">应该对应到模板项目下的</span><span lang="EN-US">Templates</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">文件夹。即</span><span lang="EN-US">&hellip;\Templates\ProjectTemplates\Virtual C++\DirectX\DirectX\Templates</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">。里面包含了利用该模板生成项目时会带进去的文件。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">最后一个文件夹，脚本文件夹。只有一个文件，</span><span lang="EN-US">default.js</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">。这个文件是整个模板项目的灵魂。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">至此，第一步算是完成了。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">第二步我们将根据自己的需要，改造这个项目模板。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left:18.0pt;mso-list:l1 level1 lfo2"><!--[if !supportLists]--><span lang="EN-US">1.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">修改脚本文件。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left:18.0pt"><span lang="EN-US">Default.js</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的第一个方法</span> <span lang="EN-US" style="font-size:10.0pt;font-family:新宋体;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#010001;background:white;mso-highlight:white;mso-font-kerning:0pt;mso-no-proof:yes">OnFinis</span><span lang="EN-US" style="background:white;mso-highlight:white">h</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">（</span><span lang="EN-US">&hellip;</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">）。这个方法应该算是整个脚本的</span><span lang="EN-US">&rdquo;</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">主函数</span><span lang="EN-US">&rdquo;</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">。其它的方法，基本就可以顾名思义了。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">我们希望新项目里要包含&ldquo;头文件&rdquo;&ldquo;源文件&rdquo;&ldquo;资源文件&rdquo;三个文件夹，分别存放对应的文件。这里就需要修改</span><span lang="EN-US">AddFilters(&hellip;)</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">方法，添加过滤组了。添加格式如下：</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left:36.0pt;text-indent:20.0pt"><span lang="EN-US" style="font-size:10.0pt;font-family:新宋体;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;color:blue;background:white;mso-highlight:white;mso-font-kerning:0pt;mso-no-proof:yes">var</span><span lang="EN-US" style="font-size:10.0pt;font-family:新宋体;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;background:white;mso-highlight:white;mso-font-kerning:0pt;mso-no-proof:yes"> <span style="color:#010001">group</span> = <span style="color:#010001">proj</span>.<span style="color:#010001">Object</span>.<span style="color:#010001">AddFilter</span>(</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&quot;;mso-ascii-font-family:新宋体;mso-fareast-font-family:新宋体;color:#A31515;background:white;mso-highlight:white;mso-font-kerning:0pt;mso-no-proof:yes">&lsquo;</span><span lang="EN-US" style="font-size:10.0pt;font-family:新宋体;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#A31515;background:white;mso-highlight:white;mso-font-kerning:0pt;mso-no-proof:yes">[</span><span style="font-size:10.0pt;font-family:新宋体;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#A31515;background:white;mso-highlight:white;mso-font-kerning:0pt;mso-no-proof:yes">文件夹名<span lang="EN-US">]'</span></span><span lang="EN-US" style="font-size:10.0pt;font-family:新宋体;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;background:white;mso-highlight:white;mso-font-kerning:0pt;mso-no-proof:yes">).<span style="color:#010001">Filter</span> = <span style="color:#A31515">&quot;[</span></span><span style="font-size:10.0pt;font-family:新宋体;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#A31515;background:white;mso-highlight:white;mso-font-kerning:0pt;mso-no-proof:yes">过滤格式<span lang="EN-US">]&quot;</span></span><span lang="EN-US" style="font-size:10.0pt;font-family:新宋体;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;background:white;mso-highlight:white;mso-font-kerning:0pt;mso-no-proof:yes">;</span><span lang="EN-US" style="font-size:10.0pt;font-family:新宋体;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;mso-font-kerning:0pt;mso-no-proof:yes"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left:36.0pt"><img alt="" title="" src="http://www.datongyi.com/upload/201201031150350185.png" /></p><p class="MsoListParagraph" style="margin-left:36.0pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p><p class="MsoListParagraph" style="margin-left:36.0pt"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">为了避免每个</span><span lang="EN-US">DX</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">项目都要配置附加目录的麻烦，我们将在项目模板里将附加目录添加进项目。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left:36.0pt"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">这里需要修改</span><span lang="EN-US" style="background:white;mso-highlight:white">AddConfig</span><span lang="EN-US">(&hellip;)</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">方法。这里将分别配置</span><span lang="EN-US">Debug</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">和</span><span lang="EN-US">Release</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">两种配置。在</span><span lang="EN-US" style="font-size:10.0pt;font-family:新宋体;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#A31515;background:white;mso-highlight:white;mso-font-kerning:0pt;mso-no-proof:yes">VCCLCompilerTool</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">配置下面添加</span><span lang="EN-US" style="background:white;mso-highlight:white">AdditionalIncludeDirectories</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">属性项，并配置属性为安装</span><span lang="EN-US">DX</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的</span><span lang="EN-US">Include</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">文件夹。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left:36.0pt"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">在</span><span lang="EN-US" style="font-size:10.0pt;font-family:新宋体;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#A31515;background:white;mso-highlight:white;mso-font-kerning:0pt;mso-no-proof:yes">VCLinkerTool</span><span lang="EN-US" style="font-size:10.0pt;font-family:新宋体;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#A31515;mso-font-kerning:0pt;mso-no-proof:yes"> </span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">配置下面添加</span><span lang="EN-US" style="font-size:10.0pt;font-family:新宋体;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#010001;background:white;mso-highlight:white;mso-font-kerning:0pt;mso-no-proof:yes">AdditionalLibraryDirectories</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">属性并配置该属性为安装</span><span lang="EN-US">DX</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的</span><span lang="EN-US">Lib</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">库目录。添加</span><span lang="EN-US">AdditionalDependencies</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">属性项，并配置属性为所需要使用到的</span><span lang="EN-US">lib</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">库</span><span lang="EN-US">,</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">各个库之间用空格分开。添加</span><span lang="EN-US" style="font-size:10.0pt;font-family:新宋体;mso-hansi-font-family:&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#010001;background:white;mso-highlight:white;mso-font-kerning:0pt;mso-no-proof:yes">GenerateDebugInformation</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">属性，关配置为</span><span lang="EN-US">True.<o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left:36.0pt"><img alt="" title="" src="http://www.datongyi.com/upload/201201031150420731.png" /></p><p class="MsoListParagraph" style="margin-left:36.0pt"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">这里需要注意的是，只有项目里添加了</span><span lang="EN-US">C++</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言相关的文件</span><span lang="EN-US">(</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">如</span><span lang="EN-US">.h</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">头文件</span><span lang="EN-US">)</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">时，链接器和编译器的属性配置才有效。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoListParagraph" style="margin-left:18.0pt;mso-list:l1 level1 lfo2"><!--[if !supportLists]--><span lang="EN-US">2.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><!--[endif]--><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">修改</span><span lang="EN-US">Templates.inf</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">文件。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">这个文件前面做了介绍，文件里包含模板需要带出的文件的文件名。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">这里新建一个测试文件</span><span lang="EN-US">datongyi.cpp</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">，关将文件名加入到</span><span lang="EN-US">inf</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">文件里。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><span lang="EN-US"><img alt="" title="" style="text-indent: 0px; " src="http://www.datongyi.com/upload/201201031150498130.png" /><img alt="" title="" style="text-indent: 0px; " src="http://www.datongyi.com/upload/201201031150577681.png" /></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">至此模板基本上配置完成了。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">我们新建一个项目来测试这个模板。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><img alt="" title="" style="text-indent: 0px; " src="http://www.datongyi.com/upload/201201031151055181.png" /></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-no-proof:yes">但是</span><span lang="EN-US">VS</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-no-proof:yes">给出了下面的对话框：无法访问所需文件的数据，因为它处于僵停状态</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><img alt="" title="" style="text-indent: 0px; " src="http://www.datongyi.com/upload/201201031151138783.png" /></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-no-proof:yes">然后是：未能完成操作。未指定的错误</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0">&nbsp;</p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-no-proof:yes">这是什么原因呢？</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-no-proof:yes">我们打开</span> <span lang="EN-US">\Templates\ProjectTemplates\Virtual C++\DirectX\DirectX\Templates\2052</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-no-proof:yes">文件夹，发现该文件夹里并没有包含</span><span lang="EN-US">datongyi.cpp</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-no-proof:yes">文件。</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-no-proof:yes">将外层的</span><span lang="EN-US">datongyi.cpp</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-no-proof:yes">文件剪切到</span><span lang="EN-US">2052</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-no-proof:yes">文件夹，用模板再次新建一个项目，调试成功！</span><span lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:21.0pt;mso-char-indent-count:2.0"><img alt="" title="" style="text-indent: 0px; " src="http://www.datongyi.com/upload/201201031151238257.png" /></p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>Copyright © 2008</p><p><a href="http://www.datongyi.com/post/28.html" target="_blank">继续阅读《利用VS的自定义向导生成C++项目模板（Custom Wizard）》的全文内容...</a></p><p>分类: <a href="http://www.datongyi.com/catalog.asp?cate=3">Programs</a> | Tags: <a href="http://www.datongyi.com/catalog.asp?tags=C+%E8%87%AA%E5%AE%9A%E4%B9%89%E5%90%91%E5%AF%BC+%E6%A8%A1%E6%9D%BF+DirectX">C 自定义向导 模板 DirectX</a>&nbsp;&nbsp; | <a href="http://www.datongyi.com/post/28.html#comment" target="_blank">添加评论</a>(0)</p><p><a href="http://www.datongyi.com/post/28.html#comment" target="_blank">还没有相关文章，您来说两句？</a></p>]]></description><category>Programs</category><comments>http://www.datongyi.com/post/28.html#comment</comments><wfw:comment>http://www.datongyi.com/</wfw:comment><wfw:commentRss>http://www.datongyi.com/feed.asp?cmt=28</wfw:commentRss><trackback:ping>http://www.datongyi.com/cmd.asp?act=tb&amp;id=28&amp;key=ec9d9dc4</trackback:ping></item><item><title>一个程序员的爱情故事</title><author>a@b.com (cnwang)</author><link>http://www.datongyi.com/post/27.html</link><pubDate>Sun, 07 Aug 2011 14:06:40 +0800</pubDate><guid>http://www.datongyi.com/post/27.html</guid><description><![CDATA[<p><span style="font-family: 宋体; background: #f8f8f8; color: #393939; font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">今天在<span lang="EN-US">csdn</span>上看了一篇帖子：<span lang="EN-US"><a href="http://topic.csdn.net/u/20110517/12/0ab11541-6206-40c9-a8b1-5439d642ab49.html" target="_blank"><span style="color: #6466b3" lang="EN-US"><span lang="EN-US">这段代码描述我最近的心情</span></span></a></span>。<span class="apple-converted-space"> </span>才发现原来用代码可以书写人生。</span></p><div style="font-family: &quot;[object HTMLOptionElement]&quot;, &quot;Consolas&quot;, &quot;Lucida Console&quot;, &quot;Courier New&quot;; color: #000000" class="source" jquery1312697343734="14"><div style="background-color: #f9f7ed" id="codee_html"><div style="background-color: #f9f7ed; font-family: &quot;[object HTMLOptionElement]&quot;, &quot;Consolas&quot;, &quot;Lucida Console&quot;, &quot;Courier New&quot;; color: #000000" class="source" jquery1312697343734="14"><span style="font-style: italic; color: #606060">01 </span><span style="color: #208090; font-weight: bold">public</span> <span style="color: #208090; font-weight: bold">class</span> <span style="color: #e090e0; font-weight: bold">MyLoveStory</span><br /><span style="font-style: italic; color: #606060">02 </span><span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">03 </span>&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">public</span> <span style="color: #208090; font-weight: bold">static</span> <span style="color: #208090; font-weight: bold">void</span> <span style="color: #50e0d0; font-weight: bold">Main</span>(<span style="color: #6060f0; font-weight: bold">string</span><span style="color: #000000">[]</span> <span style="color: #000000">args</span>)<br /><span style="font-style: italic; color: #606060">04 </span>&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="color: #f810b0">05 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//The ForeStory</span><br /><span style="font-style: italic; color: #606060">06 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #6060f0; font-weight: bold">int</span> <span style="color: #000000">result</span> <span style="color: #000000">=</span> <span style="color: #6000e0; font-weight: bold">1</span>;<br /><span style="font-style: italic; color: #606060">07 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #6060f0; font-weight: bold">bool</span> <span style="color: #000000">love</span> <span style="color: #000000">=</span> <span style="color: #208090; font-weight: bold">false</span>;<br /><span style="font-style: italic; color: #606060">08 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">if</span>(<span style="color: #000000">love</span>)<br /><span style="font-style: italic; color: #606060">09 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">result</span> <span style="color: #000000">=</span> <span style="color: #000000">AtOneTime</span>();<br /><span style="color: #f810b0">10 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><span style="font-style: italic; color: #606060">11 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//But Now...</span><br /><span style="font-style: italic; color: #606060">12 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">if</span>(<span style="color: #000000">args</span><span style="color: #000000">[</span><span style="color: #6000e0; font-weight: bold">0</span><span style="color: #000000">]</span> <span style="color: #000000">==</span> <span style="background-color: #e0e0ff">&quot;Has&quot;</span> <span style="color: #000000">&amp;&amp;</span> <span style="color: #000000">args</span><span style="color: #000000">[</span><span style="color: #6000e0; font-weight: bold">1</span><span style="color: #000000">]</span> <span style="color: #000000">==</span> <span style="background-color: #e0e0ff">&quot;Third&quot;</span> <span style="color: #000000">&amp;&amp;</span> <span style="color: #000000">args</span><span style="color: #000000">[</span><span style="color: #6000e0; font-weight: bold">2</span><span style="color: #000000">]==</span><span style="background-color: #e0e0ff">&quot;One&quot;</span>)&nbsp;&nbsp;&nbsp; <br /><span style="font-style: italic; color: #606060">13 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">14 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">love</span> <span style="color: #000000">=</span> <span style="color: #208090; font-weight: bold">false</span>;<br /><span style="color: #f810b0">15 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">result</span> <span style="color: #000000">=</span> <span style="color: #000000">DoPart</span>();<br /><span style="font-style: italic; color: #606060">16 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">Console</span><span style="color: #000000">.</span><span style="color: #000000">WriteLine</span>(<span style="color: #000000">GetNowHeartState</span><span style="color: #000000">.</span><span style="color: #000000">ToString</span>());<br /><span style="font-style: italic; color: #606060">17 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #606060">18 </span>&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #606060">19 </span>&nbsp;&nbsp;&nbsp; <br /><span style="color: #f810b0">20 </span>&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">internal</span> <span style="color: #208090; font-weight: bold">enum</span> <span style="color: #000000">HeartState</span><br /><span style="font-style: italic; color: #606060">21 </span>&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">22 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">Sad</span><span style="color: #000000">,</span><br /><span style="font-style: italic; color: #606060">23 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">MoreSad</span>&nbsp;&nbsp;&nbsp; <br /><span style="font-style: italic; color: #606060">24 </span>&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="color: #f810b0">25 </span>&nbsp;&nbsp;&nbsp; <br /><span style="font-style: italic; color: #606060">26 </span>&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">internal</span> <span style="color: #208090; font-weight: bold">enum</span> <span style="color: #000000">LifeState</span><br /><span style="font-style: italic; color: #606060">27 </span>&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">28 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">Nice</span><span style="color: #000000">,</span><br /><span style="font-style: italic; color: #606060">29 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">Poor</span><span style="color: #000000">,</span>&nbsp;&nbsp;&nbsp; <br /><span style="color: #f810b0">30 </span>&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #606060">31 </span>&nbsp;&nbsp;&nbsp; <br /><span style="font-style: italic; color: #606060">32 </span>&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">internal</span> <span style="color: #000000">HeartState</span> <span style="color: #50e0d0; font-weight: bold">GetNowHeartState</span>(<span style="color: #000000">LifeState</span> <span style="color: #000000">girlLife</span>)<br /><span style="font-style: italic; color: #606060">33 </span>&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">34 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">if</span>(<span style="color: #000000">gilrLife</span> <span style="color: #000000">==</span> <span style="color: #000000">LifeState</span><span style="color: #000000">.</span><span style="color: #000000">Poor</span>)&nbsp;&nbsp;&nbsp; <br /><span style="color: #f810b0">35 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">return</span> <span style="color: #000000">HeartState</span><span style="color: #000000">.</span><span style="color: #000000">Sad</span>;<br /><span style="font-style: italic; color: #606060">36 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">else</span><br /><span style="font-style: italic; color: #606060">37 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">return</span> <span style="color: #000000">HeartState</span><span style="color: #000000">.</span><span style="color: #000000">MoreSad</span>;<br /><span style="font-style: italic; color: #606060">38 </span>&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #606060">39 </span>&nbsp;&nbsp;&nbsp; <br /><span style="color: #f810b0">40 </span>&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">internal</span> <span style="color: #208090; font-weight: bold">static</span> <span style="color: #6060f0; font-weight: bold">int</span> <span style="color: #50e0d0; font-weight: bold">AtOneTime</span>()<br /><span style="font-style: italic; color: #606060">41 </span>&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">42 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">return</span> <span style="color: #6000e0; font-weight: bold">1</span> <span style="color: #000000">+</span> <span style="color: #6000e0; font-weight: bold">1</span>;&nbsp;&nbsp;&nbsp; <br /><span style="font-style: italic; color: #606060">43 </span>&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #606060">44 </span>&nbsp;&nbsp;&nbsp; <br /><span style="color: #f810b0">45 </span>&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">internal</span> <span style="color: #208090; font-weight: bold">static</span> <span style="color: #6060f0; font-weight: bold">int</span> <span style="color: #50e0d0; font-weight: bold">DoPart</span>()<br /><span style="font-style: italic; color: #606060">46 </span>&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">47 </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">return</span> <span style="color: #6000e0; font-weight: bold">2</span> <span style="color: #000000">-</span> <span style="color: #6000e0; font-weight: bold">1</span>;&nbsp;&nbsp;&nbsp; <br /><span style="font-style: italic; color: #606060">48 </span>&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #606060">49 </span><span style="color: #000000">}</span><br />&nbsp;</div></div></div><p style="margin: 3.75pt 0cm"><span style="color: #393939; font-size: 10.5pt"><font face="宋体">我遂耗费<span lang="EN-US">N</span>时<span lang="EN-US">,</span>来读上面的代码，我在这里做了一个简单的翻译，题目是：《一个程序员的爱情故事》，请看注释：</font></span></p><p><span style="color: #393939; font-size: 10.5pt"><font face="宋体"><span lang="EN-US"><o:p><div style="clear: both">&nbsp;</div><div style="background-color: #f9f7ed" id="codee_html"><div style="background: #fdfdfd; color: black"><u>C#语言</u>: <a href="http://fayaa.com/code/view//">临时自用代码</a></div><div style="background-color: #f9f7ed; font-family: &quot;[object HTMLOptionElement]&quot;, &quot;Consolas&quot;, &quot;Lucida Console&quot;, &quot;Courier New&quot;; color: #000000" class="source" jquery1312697549490="14"><span style="font-style: italic; color: #606060">01</span> <span style="font-style: italic; color: #606060">//一个程序员的爱情故事</span><br /><span style="font-style: italic; color: #606060">02</span> <span style="color: #208090; font-weight: bold">public</span> <span style="color: #208090; font-weight: bold">class</span> <span style="color: #e090e0; font-weight: bold">MyLoveStory</span><br /><span style="font-style: italic; color: #606060">03</span> <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">04</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">public</span> <span style="color: #208090; font-weight: bold">static</span> <span style="color: #208090; font-weight: bold">void</span> <span style="color: #50e0d0; font-weight: bold">Main</span>(<span style="color: #6060f0; font-weight: bold">string</span><span style="color: #000000">[]</span> <span style="color: #000000">args</span>)<br /><span style="color: #f810b0">05</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">06</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//The ForeStory</span><br /><span style="font-style: italic; color: #606060">07</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #6060f0; font-weight: bold">int</span> <span style="color: #000000">result</span> <span style="color: #000000">=</span> <span style="color: #6000e0; font-weight: bold">1</span>;<br /><span style="font-style: italic; color: #606060">08</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #6060f0; font-weight: bold">bool</span> <span style="color: #000000">love</span> <span style="color: #000000">=</span> <span style="color: #208090; font-weight: bold">false</span>;<span style="font-style: italic; color: #606060">//以前有个小男孩，没有爱情，孤孤单单一个人。</span><br /><span style="font-style: italic; color: #606060">09</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">if</span> (<span style="color: #000000">love</span>)&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//他认为如果是爱情。</span><br /><span style="color: #f810b0">10</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">result</span> <span style="color: #000000">=</span> <span style="color: #000000">AtOneTime</span>();<span style="font-style: italic; color: #606060">//那必须是两个人在同一个时间爱上彼此。</span><br /><span style="font-style: italic; color: #606060">11</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//But Now...</span><br /><span style="font-style: italic; color: #606060">12</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//但是现在长大了，有了爱情，却出现了第三者</span><br /><span style="font-style: italic; color: #606060">13</span> <br /><span style="font-style: italic; color: #606060">14</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">if</span> (<span style="color: #000000">args</span><span style="color: #000000">[</span><span style="color: #6000e0; font-weight: bold">0</span><span style="color: #000000">]</span> <span style="color: #000000">==</span> <span style="background-color: #e0e0ff">&quot;Has&quot;</span> <span style="color: #000000">&amp;&amp;</span> <span style="color: #000000">args</span><span style="color: #000000">[</span><span style="color: #6000e0; font-weight: bold">1</span><span style="color: #000000">]</span> <span style="color: #000000">==</span> <span style="background-color: #e0e0ff">&quot;Third&quot;</span> <span style="color: #000000">&amp;&amp;</span> <span style="color: #000000">args</span><span style="color: #000000">[</span><span style="color: #6000e0; font-weight: bold">2</span><span style="color: #000000">]</span> <span style="color: #000000">==</span> <span style="background-color: #e0e0ff">&quot;One&quot;</span>)&nbsp;&nbsp; <br /><span style="color: #f810b0">15</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">16</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">love</span> <span style="color: #000000">=</span> <span style="color: #208090; font-weight: bold">false</span>;<span style="font-style: italic; color: #606060">//爱情没了</span><br /><span style="font-style: italic; color: #606060">17</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">result</span> <span style="color: #000000">=</span> <span style="color: #000000">DoPart</span>();<span style="font-style: italic; color: #606060">//分手，独自一个人。</span><br /><span style="font-style: italic; color: #606060">18</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//现在这个男孩的心情是：如果女生生活的很悲惨，自己会伤心。</span><br /><span style="font-style: italic; color: #606060">19</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//如果看到女生活的很幸福，自己更伤心，因为幸福不是自己给的。</span><br /><span style="color: #f810b0">20</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">Console</span><span style="color: #000000">.</span><span style="color: #000000">WriteLine</span>(<span style="color: #000000">GetNowHeartState</span><span style="color: #000000">.</span><span style="color: #000000">ToString</span>());<br /><span style="font-style: italic; color: #606060">21</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #606060">22</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #606060">23</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//男生的心情</span><br /><span style="font-style: italic; color: #606060">24</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">internal</span> <span style="color: #208090; font-weight: bold">enum</span> <span style="color: #000000">HeartState</span><br /><span style="color: #f810b0">25</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">26</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">Sad</span><span style="color: #000000">,</span><br /><span style="font-style: italic; color: #606060">27</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">MoreSad</span><br /><span style="font-style: italic; color: #606060">28</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #606060">29</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//女生的生活状态</span><br /><span style="color: #f810b0">30</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">internal</span> <span style="color: #208090; font-weight: bold">enum</span> <span style="color: #000000">LifeState</span><br /><span style="font-style: italic; color: #606060">31</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">32</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">Nice</span><span style="color: #000000">,</span><br /><span style="font-style: italic; color: #606060">33</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">Poor</span><span style="color: #000000">,</span><br /><span style="font-style: italic; color: #606060">34</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="color: #f810b0">35</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//男生现在的心情</span><br /><span style="font-style: italic; color: #606060">36</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">internal</span> <span style="color: #000000">HeartState</span> <span style="color: #50e0d0; font-weight: bold">GetNowHeartState</span>(<span style="color: #000000">LifeState</span> <span style="color: #000000">girlLife</span>)<br /><span style="font-style: italic; color: #606060">37</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">38</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//现在这个小男孩的心情是：如果生活的很悲惨，自己会伤心。</span><br /><span style="font-style: italic; color: #606060">39</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//如果看到女生活的很幸福，自己更伤心，因为幸福不是自己给的。</span><br /><span style="color: #f810b0">40</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">if</span> (<span style="color: #000000">gilrLife</span> <span style="color: #000000">==</span> <span style="color: #000000">LifeState</span><span style="color: #000000">.</span><span style="color: #000000">Poor</span>)<br /><span style="font-style: italic; color: #606060">41</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">return</span> <span style="color: #000000">HeartState</span><span style="color: #000000">.</span><span style="color: #000000">Sad</span>;<br /><span style="font-style: italic; color: #606060">42</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">else</span><br /><span style="font-style: italic; color: #606060">43</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">return</span> <span style="color: #000000">HeartState</span><span style="color: #000000">.</span><span style="color: #000000">MoreSad</span>;<br /><span style="font-style: italic; color: #606060">44</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="color: #f810b0">45</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//爱情是在同一时间爱上彼此</span><br /><span style="font-style: italic; color: #606060">46</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">internal</span> <span style="color: #208090; font-weight: bold">static</span> <span style="color: #6060f0; font-weight: bold">int</span> <span style="color: #50e0d0; font-weight: bold">AtOneTime</span>()<br /><span style="font-style: italic; color: #606060">47</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">48</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//1+1=2</span><br /><span style="font-style: italic; color: #606060">49</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">return</span> <span style="color: #6000e0; font-weight: bold">1</span> <span style="color: #000000">+</span> <span style="color: #6000e0; font-weight: bold">1</span>;<br /><span style="color: #f810b0">50</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #606060">51</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">//分手</span><br /><span style="font-style: italic; color: #606060">52</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">internal</span> <span style="color: #208090; font-weight: bold">static</span> <span style="color: #6060f0; font-weight: bold">int</span> <span style="color: #50e0d0; font-weight: bold">DoPart</span>()<br /><span style="font-style: italic; color: #606060">53</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #606060">54</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-style: italic; color: #606060">// 2-1=1</span><br /><span style="color: #f810b0">55</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #208090; font-weight: bold">return</span> <span style="color: #6000e0; font-weight: bold">2</span> <span style="color: #000000">-</span> <span style="color: #6000e0; font-weight: bold">1</span>;<br /><span style="font-style: italic; color: #606060">56</span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #606060">57</span> <span style="color: #000000">}</span><br />&nbsp;</div></div></o:p></span></font></span></p><p style="margin: 3.75pt 0cm"><span style="color: #393939; font-size: 10.5pt"><font face="宋体">不知道我是否真的理解深意了</font></span><span style="color: #393939; font-size: 10.5pt"><font face="宋体">。</font></span></p><p style="margin: 3.75pt 0cm"><span style="color: #393939; font-size: 10.5pt"><font face="宋体">尽管如此我可以深深的感受到我们程序员几大的特质：<span lang="EN-US"><o:p></o:p></span></font></span></p><p style="margin: 0cm 0cm 0pt"><strong><span style="font-family: 宋体; color: #393939; font-size: 11.5pt; mso-bidi-font-family: 宋体" lang="EN-US">1</span></strong><strong><span style="font-family: 宋体; color: #393939; font-size: 11.5pt; mso-bidi-font-family: 宋体">、含蓄。</span></strong><span style="color: #393939; font-size: 10.5pt" lang="EN-US"><o:p></o:p></span></p><p style="margin: 0cm 0cm 0pt"><strong><span style="font-family: 宋体; color: #393939; font-size: 11.5pt; mso-bidi-font-family: 宋体" lang="EN-US">2</span></strong><strong><span style="font-family: 宋体; color: #393939; font-size: 11.5pt; mso-bidi-font-family: 宋体">、朴实。</span></strong><span style="color: #393939; font-size: 10.5pt" lang="EN-US"><o:p></o:p></span></p><p style="margin: 0cm 0cm 0pt"><strong><span style="font-family: 宋体; color: #393939; font-size: 11.5pt; mso-bidi-font-family: 宋体" lang="EN-US">3</span></strong><strong><span style="font-family: 宋体; color: #393939; font-size: 11.5pt; mso-bidi-font-family: 宋体">、聪明。</span></strong><span style="color: #393939; font-size: 10.5pt" lang="EN-US"><o:p></o:p></span></p><p style="margin: 0cm 0cm 0pt"><strong><span style="font-family: 宋体; color: #393939; font-size: 11.5pt; mso-bidi-font-family: 宋体" lang="EN-US">4</span></strong><strong><span style="font-family: 宋体; color: #393939; font-size: 11.5pt; mso-bidi-font-family: 宋体">、有才。</span></strong><span style="color: #393939; font-size: 10.5pt" lang="EN-US"><o:p></o:p></span></p><p style="margin: 0cm 0cm 0pt"><font face="宋体"><span style="color: #393939; font-size: 11.5pt">不多说了，</span></font><span style="color: #393939; font-size: 11.5pt"><font face="宋体">每个程序员上辈子都是折翼的天使，你们伤不起<span lang="EN-US">!</span></font></span><span style="color: #393939; font-size: 10.5pt" lang="EN-US"><o:p></o:p></span></p><p>&nbsp;</p><p>Copyright © 2008</p><p><a href="http://www.datongyi.com/post/27.html" target="_blank">继续阅读《一个程序员的爱情故事》的全文内容...</a></p><p>分类: <a href="http://www.datongyi.com/catalog.asp?cate=4">Jokes</a> | Tags:  | <a href="http://www.datongyi.com/post/27.html#comment" target="_blank">添加评论</a>(6)</p><p><a href="http://www.datongyi.com/post/27.html#comment" target="_blank">还没有相关文章，您来说两句？</a></p>]]></description><category>Jokes</category><comments>http://www.datongyi.com/post/27.html#comment</comments><wfw:comment>http://www.datongyi.com/</wfw:comment><wfw:commentRss>http://www.datongyi.com/feed.asp?cmt=27</wfw:commentRss><trackback:ping>http://www.datongyi.com/cmd.asp?act=tb&amp;id=27&amp;key=a998c54a</trackback:ping></item><item><title>Winsows Mobile开发环境搭建</title><author>a@b.com (cnwang)</author><link>http://www.datongyi.com/post/26.html</link><pubDate>Thu, 21 Apr 2011 21:35:01 +0800</pubDate><guid>http://www.datongyi.com/post/26.html</guid><description><![CDATA[<p>&nbsp;</p><p class="MsoNormal">以VS2005 为例：&nbsp;</p><p class="MsoNormal">首先，请确认安装了VS2005，并将其升级到版本 SP1 以上。否则下面的安装将无法进行。&nbsp;</p><p class="MsoNormal">第二，您需要准备以下文件：&nbsp;</p><p class="MsoNormal">1、activesync 4.5.msi (XP系统)&nbsp;</p><p class="MsoNormal">2、Windows Mobile 5.0 Pocket PC SDK.msi&nbsp;</p><p class="MsoNormal">下载地址：&nbsp;</p><p class="MsoNormal">http://download.microsoft.com/download/d/2/e/d2e43e33-53b0-45b6-ba70-fe6fdc4aa5bb/Windows Mobile 5.0 Pocket PC SDK.msi</p><p>&nbsp;</p><p class="MsoNormal">3、Windows Mobile 5.0 Emulator Images for Pocket PC - CHS.msi&nbsp;</p><p class="MsoNormal">4、Windows Mobile 6 Professional SDK Refresh.msi&nbsp;</p><p class="MsoNormal">下载地址：&nbsp;</p><p class="MsoNormal"><a href="http://www.microsoft.com/downloads/info.aspx?na=46&amp;p=1&amp;SrcDisplayLang=en&amp;SrcCategoryId=&amp;SrcFamilyId=06111a3a-a651-4745-88ef-3d48091a390b&amp;u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2ff%2f2%2f3%2ff232f773-7edc-4300-be07-d3b76a5b3a91%2fWindows+Mobile+6+Professional+SDK+Refresh.msi">http://www.microsoft.com/downloads/info.aspx?na=46&amp;p=1&amp;SrcDisplayLang=en&amp;SrcCategoryId=&amp;SrcFamilyId=06111a3a-a651-4745-88ef-3d48091a390b&amp;u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2ff%2f2%2f3%2ff232f773-7edc-4300-be07-d3b76a5b3a91%2fWindows+Mobile+6+Professional+SDK+Refresh.msi</a><o:p></o:p></p><p>&nbsp;5、Windows Mobile 6 Professional Images (CHS).msi&nbsp;</p><p class="MsoNormal">下载地址：&nbsp;</p><p class="MsoNormal"><a href="http://download.microsoft.com/download/0/1/2/012bfbba-9fe5-4e68-86c9-d434446d97dd/0804/Windows%20Mobile%206%20Standard%20Images%20(CHS).msi">http://download.microsoft.com/download/0/1/2/012bfbba-9fe5-4e68-86c9-d434446d97dd/0804/Windows%20Mobile%206%20Standard%20Images%20(CHS).msi</a><o:p></o:p></p><p>&nbsp;6、Windows Mobile 6.5 Professional Developer Tool Kit (CHS).msi 或Windows Mobile 6.5 Standard Developer Tool Kit (CHS).msi</p><p>&nbsp;按照上面文件列出的顺序进行安装。&nbsp;</p><p class="MsoNormal">如果您的系统是Windows 7,则文件1 可以不用安装。因为Windows 7 自带了移动设备管理中心；&nbsp;</p><p class="MsoNormal">如果您不需要进行5.0版本的开发，则文件2、3可以不用安装。&nbsp;</p><p class="MsoNormal">以上文件，您也可以在以下地址中查找并下载。&nbsp;</p><p class="MsoNormal"><a href="http://support.microsoft.com/gp/downloadover/zh-cn#tab13">http://support.microsoft.com/gp/downloadover/zh-cn#tab13</a>&nbsp;</p><p class="MsoNormal">安装完毕后，您可以从以下地址选择启动设备仿真管理器：&nbsp;</p><p class="MsoNormal">开始菜单\程序\Windows Mobile 6 SDK\Tools\Device Emulator Manager&nbsp;</p><p class="MsoNormal">从列表中选择您想要启动的设备，右键，连接。就可以启动一个仿真设备。&nbsp;</p><p><img style="width: 579px; height: 540px" title="" alt="" onload="ResizeImage(this,520)" src="http://www.datongyi.com/upload/201104212134291017.jpg" /></p><p>&nbsp;如上图，已经启动了一个 Windows Mobile 6 Classic 仿真设备。这样您就可以对其进行仿真操作。&nbsp;</p><div>如果您希望将设备连接到PC，进行仿真的文件同步操作，这时您需要用到我们安装的文件1，MS Activesync。这是XP下的移动设备同步软件。（如果您的PC机是 Winsows 7 系统，那么您应该启动的是Windows Mobile 设备中心。）</div><div>当然，这个软件同样适用于真机。&nbsp;</div><p><span style="font-size: 10.5pt">在仿真设备管理器中选择已经启动的设备，右键，插入底座。这时仿真设备会仿真连接到</span><span style="font-size: 10.5pt">PC</span><span style="font-size: 10.5pt">机的操作。确保您已经启动了</span><span style="font-size: 10.5pt">MS Activesync</span><span style="font-size: 10.5pt">或设备中心。</span><span style="font-size: 10.5pt">Activesync</span><span style="font-size: 10.5pt">会自动检测您连接到</span><span style="font-size: 10.5pt">PC</span><span style="font-size: 10.5pt">的设备，启动同步连接。</span>&nbsp;</p><p><img title="" alt="" onload="ResizeImage(this,520)" src="http://www.datongyi.com/upload/201104212136442184.JPG" /></p><p>&nbsp;<img title="" alt="" onload="ResizeImage(this,520)" src="http://www.datongyi.com/upload/201104212137161840.JPG" /></p><p>&nbsp;<img title="" alt="" onload="ResizeImage(this,520)" src="http://www.datongyi.com/upload/201104212137345366.jpg" /></p><p>&nbsp;连接完成后，打开&ldquo;我的电脑&rdquo;，就会发现多出一个移动设备。这样您就可以和仿真机间进行数据传送了</p><p><img title="" alt="" onload="ResizeImage(this,520)" src="http://www.datongyi.com/upload/201104212137431601.jpg" /></p><p>&nbsp;</p><p>Copyright © 2008</p><p><a href="http://www.datongyi.com/post/26.html" target="_blank">继续阅读《Winsows Mobile开发环境搭建》的全文内容...</a></p><p>分类: <a href="http://www.datongyi.com/catalog.asp?cate=3">Programs</a> | Tags: <a href="http://www.datongyi.com/catalog.asp?tags=Winsows+Mobile">Winsows Mobile</a>&nbsp;&nbsp; | <a href="http://www.datongyi.com/post/26.html#comment" target="_blank">添加评论</a>(5)</p><p><a href="http://www.datongyi.com/post/26.html#comment" target="_blank">还没有相关文章，您来说两句？</a></p>]]></description><category>Programs</category><comments>http://www.datongyi.com/post/26.html#comment</comments><wfw:comment>http://www.datongyi.com/</wfw:comment><wfw:commentRss>http://www.datongyi.com/feed.asp?cmt=26</wfw:commentRss><trackback:ping>http://www.datongyi.com/cmd.asp?act=tb&amp;id=26&amp;key=cf82b8e7</trackback:ping></item><item><title>dotNET学习路线</title><author>a@b.com (cnwang)</author><link>http://www.datongyi.com/post/25.html</link><pubDate>Wed, 22 Dec 2010 22:47:25 +0800</pubDate><guid>http://www.datongyi.com/post/25.html</guid><description><![CDATA[<p>&nbsp;<b><span style="font-size:18.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:red;mso-font-kerning:0pt">入门篇</span></b><b><span lang="EN-US" style="font-size:18.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> </span></b></p><p class="MsoNormal" align="left" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-align:left;mso-pagination:widow-orphan;mso-outline-level:3"><span style="color: rgb(0, 0, 255); "><span lang="EN-US" style="font-size: 14pt; font-family: Tahoma, sans-serif; ">1.&nbsp;</span><span style="font-size: 14pt; font-family: 宋体; ">学习面向对象</span><span lang="EN-US" style="font-size: 14pt; font-family: Tahoma, sans-serif; ">(OOP)</span><span style="font-size: 14pt; font-family: 宋体; ">的编程思想</span></span><b><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></b></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">许多高级语言都是面向对象的编程，</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">也不例外。如果您第一次接触面向对象的编程，就必须理解类、对象、字段、属性、方法和事件、封装、继承和多态性、重载、重写等概念。需要说明的是，微软的产品帮助文档做得非常完善，而且查询相当方便，入门者不得不看。安装完</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Visual Studio 2008(</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">或以上版本</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">)</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">后，在</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">&ldquo;</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">程序</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">&rdquo;</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">组里有一个</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Visual Studio </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">组合帮助集合。初学者从帮助文档就会获得许多知识。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="color: rgb(0, 0, 255); "><span lang="EN-US" style="font-size: 14pt; font-family: Tahoma, sans-serif; ">2.</span><span style="font-size: 14pt; font-family: 宋体; ">选择一门语言，学习语法及相关基础知识</span></span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> <o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">选择语言的标准：根据你自己的需求和个人的技术背景。在</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">平台下，</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">C#</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">、</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">VB.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">都是调用</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Framework</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">的类库，效率基本一样，</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">C#</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">的语法严谨，适合以前</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">C++</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">、</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">VC</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">的程序员。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">VB.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">不区分大小写，写法随意一些</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">，自动缩进，适合以前</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">VB</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">的程序员，微软也一再提倡用</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">VB.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">进行快速开发。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">VC++.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">更接近底层，可以用托管和非托管两种方式进行编程。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">选择了需要使用的语言后，我们需要了解语言的语法规则，包括语句、类型、表达式、运算符、函数等等，我建议一开始写程序就要养成良好的编程风格，规范地进行变量的命名，在代码中写好注释。这对以后的软件开发生涯都是很有意义的。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="color: rgb(0, 0, 255); "><span lang="EN-US" style="font-size: 14pt; font-family: Tahoma, sans-serif; ">3.</span><span style="font-size: 14pt; font-family: 宋体; ">理解</span><span lang="EN-US" style="font-size: 14pt; font-family: Tahoma, sans-serif; ">.NET</span><span style="font-size: 14pt; font-family: 宋体; ">思想并熟悉框架类库（</span><span lang="EN-US" style="font-size: 14pt; font-family: Tahoma, sans-serif; ">Framework Class Library</span><span style="font-size: 14pt; font-family: 宋体; ">）</span></span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> <o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">首先，我们要了解公共语言运行库、程序集、通用类型系统的概念。在此基础上，学习</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">框架类库。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">框架类库是一个与公共语言运行库紧密集成的可重用的类型集合。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">框架类库封装了大部分</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Win32 API </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">，许多以前需要调用</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">API</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">才能实现的功能，在</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">下非常容易就实现，许多情况下只需要一句话就足够了。所以，我们在程序设计的时候要尽量避免调用</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Win32 API</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">。学习</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">框架类库的捷径：掌握常用的类库，其它不常用的类库只需要了解，用到的时候查阅即可。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="color: rgb(0, 0, 255); "><span lang="EN-US" style="font-size: 14pt; font-family: Tahoma, sans-serif; ">4.</span><span style="font-size: 14pt; font-family: 宋体; ">利用</span><span lang="EN-US" style="font-size: 14pt; font-family: Tahoma, sans-serif; ">Visual Studio.NET</span><span style="font-size: 14pt; font-family: 宋体; ">写程序</span></span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> <o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">在</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">平台下写程序我们一般用微软的开发工具</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Visual Studio.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">，因为一个好的</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">IDE</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">，能极大地提高开发效率。建议初学者从</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Windows Forms</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">或者是</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Web Form</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">开始，等有一定的基础之后，再转向写类库或是控件、组件方面的东西。微软的帮助文档里自带许多示例，我们可以一边看帮助，一边进行演练。在学习其中的代码的同时，一定要理解和思考。多写代码、从项目中锻炼是编程高手的成长之路。记住：一定要多看多写源代码；多上论坛（如</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">CSDN</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">和</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Dev-club</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">）和微软的新闻组讨论技术问题。</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">我们一定要用好</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Visual Studio.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">这个集成开发环境，除了编写代码外，我们还要了解</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">的部署原理，学习打包、部署及管理应用程序。多人开发的项目可以考虑用</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Visual Source Safe</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">进行源代码管理，这一系列开发工具的使用都要有大量的实践。</span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan">&nbsp;</p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="color: rgb(0, 0, 255); "><span lang="EN-US" style="font-size: 14pt; font-family: Tahoma, sans-serif; ">5.</span><span style="font-size: 14pt; font-family: 宋体; ">最好掌握大型数据库编程</span></span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> <o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">一般来讲，大多数软件开发都涉及到数据库。大部分软件的后台数据库都使用如</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Access</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">、</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">SQL SERVER</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">、</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Oracle</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">等。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">ADO.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">提供了对关系数据、</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">XML </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">和应用程序数据的访问。我们必须掌握</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Connection</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">、</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Command</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">、</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">DataReader </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">和</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> DataAdapter </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">对象的使用，正确运用</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">DataSet</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">数据集和</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">DataView</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">进行数据操作。当然，要有一定的数据库基础，包括表、视图、存储过程等的使用。必须把后台数据库和前台的</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">ADO.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">都掌握好，才能真正精通数据库编程。</span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">在项目的开发中，建议使用数据访问应用程序块（</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Data Access Application Block</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">）来简化</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">SQL</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">查询。微软</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">msdn</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">网站有下载，我们可以利用</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">SqlHelper</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">类进行的数据访问，使用起来非常简单，很容易地构建我们的数据访问层。参考微软</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">MSDN</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">文档：</span></p><p><span lang="EN-US" style="font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;mso-fareast-font-family:宋体;color:#333333;mso-ansi-language:EN-US;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA"><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/daab-rm.asp"><span style="mso-bidi-font-size:12.0pt;color:#108AC6;text-decoration:none;text-underline:none">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/daab-rm.asp</span></a></span></p><p>&nbsp;</p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan">&nbsp;</p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan">&nbsp;</p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="color: rgb(0, 0, 255); "><span lang="EN-US" style="font-size: 14pt; font-family: Tahoma, sans-serif; ">6. &nbsp;</span><span style="font-size: 14pt; font-family: 宋体; ">学习</span><span lang="EN-US" style="font-size: 14pt; font-family: Tahoma, sans-serif; ">XML WEB Service</span></span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> <o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">XML Web services </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">正在开创一个分布式应用程序开发的新时代。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">XML Web Services </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">是把软件当成服务的一种体现，通过使用</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> XML </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">消息处理启用数据交换和应用程序逻辑远程调用。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">XML</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">使数据能够通过防火墙，实现异类系统之间移动数据。虽然公共的</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Web Services</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">还不是很普及，但是在一些企业中，已经涉及到了</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Web Services</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">的开发。用</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Visual Studio.NET </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">很容易创建</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Web</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">服务，调用</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Web</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">服务也相当简单，只需要添加一个</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Web</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">引用，然后调用即可。进行这方面的学习，需要了解</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Web </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">服务描述语言</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> (WSDL)</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">、</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">SOAP</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">协议等。</span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan">&nbsp;</p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan">&nbsp;</p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan">&nbsp;</p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><b><span style="font-size:18.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:red;mso-font-kerning:0pt">提升篇</span></b></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> <o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span lang="EN-US" style="font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:red;mso-font-kerning:0pt">1.</span><span style="font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:red;mso-font-kerning:0pt">学习</span><span lang="EN-US" style="font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:red;mso-font-kerning:0pt">.NET</span><span style="font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:red;mso-font-kerning:0pt">框架开发平台底层原理和体系结构</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> <o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">框架的核心是公共语言运行时（</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Common Language Runtime</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">，</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">CLR</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">）。通常情况下，我们使用一种高级语言</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">(</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">如</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">C#</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">或者</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">VB.NET)</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">编写程序，这些高级语言的编译器产生的是一个托管模块（即中间语言</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">IL</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">代码）。托管模块是一个需要</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">CLR</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">才能执行的标准</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Windows PE</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">文件。执行中间语言代码的时候，</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">CLR</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">中的即时编译器</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">(Just-in-time</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">，简称</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">JIT) </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">把其转换成</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">CPU</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">指令。这中间有许多细节，包括怎么初始化</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">CLR</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">，微软组件运行时执行引擎</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">MSCorEE.dll(Microsoft Component Object Runtime Execution Engine</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">，在</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">system32</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">目录下</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">)</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">怎么工作等等。如果你想精通</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">技术，就必须对</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">框架原理、程序集、元数据、值类型／引用类型、类型设计、异常处理、自动垃圾回收等核心技术有一个清楚的认识。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">推荐书籍：</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">《</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">框架程序设计》</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">(</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">修订版</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">) (</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">清华大学出版社</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">)<o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">《</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Applied .NET Framework Programming</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">》（影印版）</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Jeffrey Richter</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">著</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">《</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.Microsoft .NET IL</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">汇编语言程序设计》</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">《</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">本质论》</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">(</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">中国电力出版社</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">)</span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span lang="EN-US" style="font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:red;mso-font-kerning:0pt">2.&nbsp;</span><span style="font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:red;mso-font-kerning:0pt">熟练运行底层工具进行调试和解决各种问题</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> <o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">了解</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">平台的底层原理，我们需要学会一些工具和</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">CLR </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">调试器</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> (DbgCLR.exe)</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">的使用。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">C# </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">命令行编译器</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">(Csc.exe)</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">和</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">VB.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">编译器</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">(Vbc.exe)</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">的重要性就不用再多说。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">框架</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> SDK </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">提供的几个比较重要的工具是：</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">MSIL</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">汇编程序</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">(Ilasm.exe)</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">、</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">MSIL</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">反汇编程序</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> (Ildasm.exe)</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">、程序集链接器</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> (Al.exe)</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">。强烈建议大家在开发中多使用</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">MSIL </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">反汇编程序</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> (Ildasm.exe)</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">，以加强对</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">CLR</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">和底层的了解。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">MSIL </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">汇编程序</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">(Ilasm.exe)</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">从</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> MSIL </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">汇编语言生成可移植可执行的</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> PE </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">文件。反汇编程序</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">(Ildasm.exe) </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">可对任意</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> .NET </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">框架</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> .exe </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">或</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> .dll </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">程序集进行分析，并以可读的格式显示信息。程序集链接器</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> (Al.exe) </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">从一个或多个文件生成一个带有程序集清单的文件。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">框架</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">SDK</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">还提供许多其它的工具，如：</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">PEVerify </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">工具</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> (Peverify.exe)</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">、强名称工具</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> (Sn.exe)</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">等，我们力求能用命令行的方式使用他们。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">需要指出的是：</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Visual Studio.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">不是能完成所有命令行能做的工作，一些任务必须由命令行来完成。如：创建多文件程序集，必须求助于</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">csc.exe</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">的</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">addmodule</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">选项。只有在对</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">框架有很深理解的基础上，才会灵活运用这些工具。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span lang="EN-US" style="font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:red;mso-font-kerning:0pt">3.&nbsp;</span><span style="font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:red;mso-font-kerning:0pt">进行大型软件系统架构设计</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> <o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">进行软件系统的架构设计，需要积累相当丰富的经验，要求我们从全局的概念上把握软件的总体结构。首先的一点是，我们必须参照软件需求说明书。需求说明书是用户和开发双方对所开发软件的功能、性能、用户界面及运行环境等做出详细的说明，所以我们设计软件必须以此为依据。接下来，我们要做软件的总体设计，即概要设计。一般需要根据软件的业务需求和业务流程进行模块划分，规划程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等，为详细设计奠定基础。在详细设计中需要指出每一模块是怎样实现的，包括实现算法、逻辑流程、数据流程图等。以后的工作，就是程序的实现。测试是和编码同步进行的，必须严格把好质量关。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">在用</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">.NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">开发大型系统的时候，一般都是做成三层（或是</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">N</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">层）结构的形式。即将应用程序逻辑地分为</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">3</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">个基本层：数据访问和存储、业务逻辑层、表示层。三层结构的优点主要是：可扩展性、可伸缩性和灵活性。在做</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Web</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">应用的时候，可以考虑采用</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">MVC</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">（模型</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">-</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">视图</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">-</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">控制器</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> Model-View-Controller</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">）模式让</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Web</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">应用程序的用户界面功能实现模块化。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">顺便要说的是，大型软件有时需要整合多种产品，来满足企业级的应用需求。微软提供了许多</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Server</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">产品，如</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">SQL Server </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">、</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Exchange Server</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">、</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Share Point Server</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">、</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">BizTalk Server</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">等。记住：大家一定要多了解微软的产品线，微软很多技术都是相符相承的，结合起来才能发挥作用！我们可以微软的</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Server</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">级产品的基础上整合软件系统、实现数据共享访问、终端设备上的电子邮件、消息协作。总之，通过互联网，让所有人一起协同工作，是未来软件的发展趋势。我们把握好这些方向，就等于驾驭未来。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">推荐书籍：</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">《使用</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> Microsoft .NET </span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">的企业解决方案模式》微软出版社</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">《</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Enterprise Solution Patterns Using Microsoft .NET</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">》</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> MS Press<o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">网上资源：</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">软件工程专家网</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><a href="http://lyqidao.javaeye.com/blog/link.php?url=http://www.51cmm.com%2F"><span style="mso-bidi-font-size:12.0pt;color:#108AC6;text-decoration:none;text-underline:none">http://www.51cmm.com</span></a> <o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">UML</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">软件工程组织</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><a href="http://lyqidao.javaeye.com/blog/link.php?url=http://www.uml.org.cn%2F"><span style="mso-bidi-font-size:12.0pt;color:#108AC6;text-decoration:none;text-underline:none">http://www.uml.org.cn/</span></a> <o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><a href="http://lyqidao.javaeye.com/blog/link.php?url=http://www.umlchina.com%2F"><span style="mso-bidi-font-size:12.0pt;color:#108AC6;text-decoration:none;text-underline:none">http://www.umlchina.com</span></a> <o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span lang="EN-US" style="font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:red;mso-font-kerning:0pt">4.</span><span style="font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:red;mso-font-kerning:0pt">带领团队进行软件开发</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"> <o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">一个好的团队，才能开发一个成功的产品。软件开发主要由项目管理团队、软件开发团队、软件测试团队组成。项目管理人员主要对项目进行控制，协调开发人员、测试人员的工作。开发人员的工作主要是负责软件的实现。测试人员是软件产品的质量保障。其它人员，如产品规划方面、软件技术支持和文档、后勤都是不可缺少的。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">大型软件是许多人集体智慧的结晶，要求</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Project Leader</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">有较强的管理能力和技术背景，以及良好的沟通能力。如果你作技术的时间很长，积累了丰富的经验，做过项目组长等管理工作，通过不断的学习和提升，极有可能成长为</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Project Leader</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">。如果你已是</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt">Project Leader</span><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">，就到对软件的成败负责，你可以根据现有资源决定开发中任务分配，合理用人，决定功能模块是否值得开发，项目进度控制等许多问题。总之，带领团队的人必须有远见卓识，采取正确方法引领团队取得成功。</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">推荐书籍：</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">《人月神话》清华大学出版社</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma;color:#333333;mso-font-kerning:0pt">《人件》清华大学出版社</span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p>&nbsp;</p><p class="MsoNormal" align="left" style="margin-bottom:9.6pt;text-align:left;mso-pagination:widow-orphan"><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:#333333;mso-font-kerning:0pt"><o:p></o:p></span></p><p>&nbsp;</p><p>Copyright © 2008</p><p><a href="http://www.datongyi.com/post/25.html" target="_blank">继续阅读《dotNET学习路线》的全文内容...</a></p><p>分类: <a href="http://www.datongyi.com/catalog.asp?cate=3">Programs</a> | Tags: <a href="http://www.datongyi.com/catalog.asp?tags=%2ENET">.NET</a>&nbsp;&nbsp;<a href="http://www.datongyi.com/catalog.asp?tags=C%23">C#</a>&nbsp;&nbsp;<a href="http://www.datongyi.com/catalog.asp?tags=%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF">学习路线</a>&nbsp;&nbsp; | <a href="http://www.datongyi.com/post/25.html#comment" target="_blank">添加评论</a>(3)</p><h3>相关文章:</h3><ul><li><a href="http://www.datongyi.com/post/20.html">使用 ListView 显示数据</a> (2010-5-2 0:16:44)  </li><li><a href="http://www.datongyi.com/post/18.html">.NET 4 各项技术的应用前景</a> (2010-5-1 22:18:22)  </li><li><a href="http://www.datongyi.com/post/16.html">微软美女工程师谈.NET 4.0 Beta 中的WCF工具</a> (2010-3-21 3:16:10)  </li><li><a href="http://www.datongyi.com/post/13.html">C#设计模式之简单工厂</a> (2010-3-18 21:23:5)  </li></ul>]]></description><category>Programs</category><comments>http://www.datongyi.com/post/25.html#comment</comments><wfw:comment>http://www.datongyi.com/</wfw:comment><wfw:commentRss>http://www.datongyi.com/feed.asp?cmt=25</wfw:commentRss><trackback:ping>http://www.datongyi.com/cmd.asp?act=tb&amp;id=25&amp;key=c3bd333a</trackback:ping></item><item><title>ASP.NET 三层架构(3-tier application) </title><author>a@b.com (cnwang)</author><link>http://www.datongyi.com/post/24.html</link><pubDate>Sat, 11 Sep 2010 01:00:16 +0800</pubDate><guid>http://www.datongyi.com/post/24.html</guid><description><![CDATA[<p>三层架构(3-tier application),通常意义上的三层架构就是将整个业务应用划分为：表现层（UI）、业务逻辑层（BLL）、数据访问层（DAL）。区分层次的目的即为了&ldquo;高内聚，低耦合&rdquo;的思想 <br /><br /><strong>概念简介 </strong><br />　　１、表现层（UI）：通俗讲就是展现给用户的界面，即用户在使用一个系统的时候他的所见所得。</p><p>　　２、业务逻辑层（BLL）：针对具体问题的操作，也可以说是对数据层的操作，对数据业务逻辑处理。</p><p>　　３、数据访问层（DAL）：该层所做事务直接操作数据库，针对数据的增添、删除、修改、更新、查找等。</p><p><br /><br /><strong>概述 </strong><br />　　在软件体系架构设计中，分层式结构是最常见，也是最重要的一种结构。微软推荐的分层式结构一般分为三层，从下至上分别为：数据访问层、业务逻辑层（又或成为领域层）、表示层。 　</p><p>&nbsp;　三层结构原理：3个层次中，系统主要功能和业务逻辑都在业务逻辑层进行处理。</p><p>　　所谓三层体系结构，是在客户端与数据库之间加入了一个&ldquo;中间层&rdquo;，也叫组件层。这里所说的三层体系，不是指物理上的三层，不是简单地放置三台机器就是三层体系结构，也不仅仅有B/S应用才是三层体系结构，三层是指逻辑上的三层，即使这三个层放置到一台机器上。 　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下，客户端不直接与数据库进行交互，而是通过COM/DCOM通讯与中间层建立连接，再经由中间层与数据库进行交互。 <br /><br />表示层 <br />　　　位于最外层（最上层），离用户最近。用于显示数据和接收用户输入的数据，为用户提供一种交互式操作的界面。 <br />　　 <br />业务逻辑层 <br />　　　业务逻辑层（Business Logic Layer）无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计，也即是说它是与系统所应对的领域（Domain）逻辑有关，很多时候，也将业务逻辑层称为领域层。例如Martin Fowler在《Patterns of Enterprise Application Architecture》一书中，将整个架构分为三个主要的层：表示层、领域层和数据源层。作为领域驱动设计的先驱Eric Evans，对业务逻辑层作了更细致地划分，细分为应用层与领域层，通过分层进一步将领域逻辑与领域逻辑的解决方案分离。 　　业务逻辑层在体系架构中的位置很关键，它处于数据访问层与表示层中间，起到了数据交换中承上启下的作用。由于层是一种弱耦合结构，层与层之间的依赖是向下的，底层对于上层而言是&ldquo;无知&rdquo;的，改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时，遵循了面向接口设计的思想，那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下，理想的分层式架构，应该是一个支持可抽取、可替换的&ldquo;抽屉&rdquo;式架构。正因为如此，业务逻辑层的设计对于一个支持可扩展的架构尤为关键，因为它扮演了两个不同的角色。对于数据访问层而言，它是调用者；对于表示层而言，它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上，如何实现依赖关系的解耦，则是除了实现业务逻辑之外留给设计师的任务。 　 <br />　 <br />数据层 <br />　　　数据访问层：有时候也称为是持久层，其功能主要是负责数据库的访问，可以访问数据库系统、二进制文件、文本文档或是XML文档。 　　简单的说法就是实现对数据表的Select，Insert，Update，Delete的操作。如果要加入ORM的元素，那么就会包括对象和数据表之间的mapping，以及对象实体的持久化。</p><p><br /><strong>优缺点 <br /></strong>优点 <br />　　1、开发人员可以只关注整个结构中的其中某一层； 　　2、可以很容易的用新的实现来替换原有层次的实现； 　　3、可以降低层与层之间的依赖； 　　4、有利于标准化； 　　5、利于各层逻辑的复用。 <br />缺点 <br />　　1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构，很多业务可以直接造访数据库，以此获取相应的数据，如今却必须通过中间层来完成。 　　2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能，为保证其设计符合分层式结构，可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。 <br />[编辑本段]规则 <br />　　三层结构的程序不是说把项目分成DAL, BLL, WebUI三个模块就叫三层了, 下面几个问题在你的项目里面： 　　1. UILayer里面只有少量(或者没有)的SQL语句或者存储过程调用, 并且这些语句保证不会修改数据? 　　2. 如果把UILayer拿掉, 你的项目还能在Interface/API的层次上提供所有功能吗? 　　3. 你的DAL可以移植到其他类似环境的项目吗? 　　4. 三个模块, 可以分别运行于不同的服务器吗? 　　如果不是所有答案都为YES, 那么你的项目还不能算是严格意义上的三层程序. 三层程序有一些需要约定遵守的规则： 　　1. 最关键的, UI层只能作为一个外壳, 不能包含任何BizLogic的处理过程 　　2. 设计时应该从BLL出发, 而不是UI出发. BLL层在API上应该实现所有BizLogic, 以面向对象的方式 　　3. 不管数据层是一个简单的SqlHelper也好, 还是带有Mapping过的Classes也好, 应该在一定的抽象程度上做到系统无关 　　4. 不管使用COM+(Enterprise Service), 还是Remoting, 还是WebService之类的远程对象技术, 不管部署的时候是不是真的分别部署到不同的服务器上, 最起码在设计的时候要做这样的考虑, 更远的, 还得考虑多台服务器通过负载均衡作集群 　　所以考虑一个项目是不是应该应用三层/多层设计时, 先得考虑下是不是真的需要? 实际上大部分程序就开个WebApplication就足够了, 完全没必要作的这么复杂. 而多层结构, 是用于解决真正复杂的项目需求的。 <br /><br /><strong>与MVC的区别 </strong><br />　　MVC（模型Model-视图View-控制器Controller）是一种设计模式，我们可以用它来创建在域对象和UI表示层对象之间的区分。 　　同样是架构级别的，相同的地方在于他们都有一个表现层，但是他们不同的地方在于其他的两个层。 　　在三层架构中没有定义Controller的概念。这是我认为最不同的地方。而MVC也没有把业务的逻辑访问看成两个层，这是采用三层架构或MVC搭建程序最主要的区别。当然了。在三层中也提到了Model，但是三层架构中Model的概念与MVC中Model的概念是不一样的，&ldquo;三层&rdquo;中典型的Model层是以实体类构成的，而MVC里，则是由业务逻辑与访问数据组成的。</p><p>Copyright © 2008</p><p><a href="http://www.datongyi.com/post/24.html" target="_blank">继续阅读《ASP.NET 三层架构(3-tier application) 》的全文内容...</a></p><p>分类: <a href="http://www.datongyi.com/catalog.asp?cate=3">Programs</a> | Tags: <a href="http://www.datongyi.com/catalog.asp?tags=ASP%2ENET">ASP.NET</a>&nbsp;&nbsp;<a href="http://www.datongyi.com/catalog.asp?tags=%E4%B8%89%E5%B1%82%E6%9E%B6%E6%9E%84">三层架构</a>&nbsp;&nbsp;<a href="http://www.datongyi.com/catalog.asp?tags=%E7%BD%91%E7%AB%99">网站</a>&nbsp;&nbsp; | <a href="http://www.datongyi.com/post/24.html#comment" target="_blank">添加评论</a>(1)</p><h3>相关文章:</h3><ul><li><a href="http://www.datongyi.com/post/19.html">物联网征程初启与物联网之阻</a> (2010-5-1 22:23:41)  </li><li><a href="http://www.datongyi.com/post/2.html">谷歌退出中国倒计时</a> (2010-3-16 12:21:27)  </li><li><a href="http://www.datongyi.com/post/1.html">这是一个值得记念的日子</a> (2010-3-15 23:12:19)  </li></ul>]]></description><category>Programs</category><comments>http://www.datongyi.com/post/24.html#comment</comments><wfw:comment>http://www.datongyi.com/</wfw:comment><wfw:commentRss>http://www.datongyi.com/feed.asp?cmt=24</wfw:commentRss><trackback:ping>http://www.datongyi.com/cmd.asp?act=tb&amp;id=24&amp;key=75d28e46</trackback:ping></item><item><title>台电 X19+ V4.3固件下载</title><author>a@b.com (cnwang)</author><link>http://www.datongyi.com/post/23.html</link><pubDate>Wed, 16 Jun 2010 02:48:17 +0800</pubDate><guid>http://www.datongyi.com/post/23.html</guid><description><![CDATA[<p>刚刷的机子 。出现了下几个BUG，不得不说，很失败：<br />1.音量问题，好像有人说过了。<br />&nbsp; &nbsp; 1--10之间，音量没有变化。不知道台电的技术部门是何用意。<br />2.报单音量问题。<br />&nbsp; &nbsp;播放时，按下&ldquo;播放&rdquo;键，会报出音乐名，音乐暂停。当播放音量在10以下时，报歌名的音量在10左右不变。报完音乐名后，音乐继续。但是，当播放音量为10以上时，报名的音量会到20左右，报名完毕，播放音乐继续，但这时，播放音量会达到30左右。如果用户不手动调节音量，音量会持高不下。<br />3.关机问题<br />&nbsp; &nbsp;关机时，如果正在播放音乐，机器会停掉音乐报单，如果音乐的名字，用户需要按住&ldquo;播放&rdquo;键很长时间才能关机，并且，关机前，会突然开始恢复播放音乐，播放时间持续0.5--2秒不等，然后再正常关机。<br />4.开机问题<br />&nbsp; &nbsp;开机时，并不会回到关机前的播放音乐画面，而是出现在&ldquo;音乐播放&rdquo;菜单上，用户要按&ldquo;E&rdquo;键，对能进入关机前播放的音乐处。<br /><br />几分钟前刚刷机，其它的问题暂时还没发现。发现后再补充。</p><p>虽然V5.1的音质有所加强，但稳定性，适用性不可恭维。</p><p>就目前来看，台电X19+的固件，还是 V4.3最稳定。</p><p>就各位朋友要求，在本贴中附 V4.3 版本固件下载：</p><p>&nbsp;<a target="_blank" href="http://www.datongyi.com/upload/TL-X19-V4.3-0587_001.rar">点击下载 【TL-X19-V4.3-0587.rar】</a>&nbsp;&nbsp;</p><p>&nbsp;</p><p>Copyright © 2008</p><p><a href="http://www.datongyi.com/post/23.html" target="_blank">继续阅读《台电 X19+ V4.3固件下载》的全文内容...</a></p><p>分类: <a href="http://www.datongyi.com/catalog.asp?cate=5">MP3</a> | Tags:  | <a href="http://www.datongyi.com/post/23.html#comment" target="_blank">添加评论</a>(6)</p><p><a href="http://www.datongyi.com/post/23.html#comment" target="_blank">还没有相关文章，您来说两句？</a></p>]]></description><category>MP3</category><comments>http://www.datongyi.com/post/23.html#comment</comments><wfw:comment>http://www.datongyi.com/</wfw:comment><wfw:commentRss>http://www.datongyi.com/feed.asp?cmt=23</wfw:commentRss><trackback:ping>http://www.datongyi.com/cmd.asp?act=tb&amp;id=23&amp;key=548aed4c</trackback:ping></item><item><title>什么是纤程</title><author>a@b.com (cnwang)</author><link>http://www.datongyi.com/post/22.html</link><pubDate>Fri, 04 Jun 2010 18:55:24 +0800</pubDate><guid>http://www.datongyi.com/post/22.html</guid><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>纤程</strong>是Windows操作系统中独有的概念，但对于.NET来说线程的概念十分重要，因为在有些情况下.NET的线程实际在操作系统层面对应的就是纤程。读者需要至少了解纤程的概念，并且知道它和线程的区别。</p><p><strong>&diams;所涉及的知识点</strong></p><p>►纤程的概念</p><p>►纤程和线程的区别</p><p>►纤程在.NET中的作用</p><p>&diams;<strong>分析问题</strong></p><p>1．纤程的概念</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;纤程是微软公司在自己的操作系统上提出的一个概念，当初的目的是用来方便地移植其他操作系统上的应用程序。一个线程可以拥有0个或者多个纤程，一个纤程可以视为一个轻量级的线程，它拥有自己的栈和上下文状态，但是纤程的调度是由程序员编码控制的，当一个纤程所在线程得到运行时，程序员需要手动地决定运行哪一个纤程。事实上，Windows操作系统内核是完全不了解纤程的存在的，它只负责调度所有的线程，而纤程之所以成为操作系统的概念，是因为微软公司的操作系统提供了关于线程操作的Win32函数，能够方便地帮助程序员进行线程编程。</p><p><strong>2．纤程和线程的区别</strong></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个线程包含多个纤程，纤程和线程的最大区别在于，线程的调度受操作系统的管理，程序员没有必要也没有办法进行完全干涉。在Windows这样的非实时操作系统中，一个线程何时被运行完全无法预知。但纤程却完全受控于程序本身，可以说纤程允许程序员对多任务进行完全自定义的调度和控制，可见纤程带给程序非常大的灵活性，当然，纤程程序的编写要求程序员有非常深厚的操作系统知识。下图展示了进程、线程、纤程的部分关系。</p><p><strong>3．纤程在.NET中的地位</strong></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.NET运行框架没有做出关于线程真实性的保证，也就是说，程序员在.NET程序中新建的线程，并不一定会在操作系统层面上产生一个真正的线程。在.NET框架寄宿的情况下，一个程序中的线程很有可能对应某个纤程。总之微软公司在线程的操作上为将来的产品留有了余地，程序员应该清楚地意识到这一点，从而避免错误地把.NET中的线程直接理解为操作系统层面的线程，事实上它可能是一个线程、一个纤程甚至于一个.NET自定义的结构。唯一可以确定的是，.NET开发小组的设计会努力使程序的效率变高，所以程序员可以放心地去使用.NET的线程机制。&nbsp;</p><p><img title="" alt="" onload="ResizeImage(this,520)" src="http://www.datongyi.com/upload/纤程.jpg" /></p><p>Copyright © 2008</p><p><a href="http://www.datongyi.com/post/22.html" target="_blank">继续阅读《什么是纤程》的全文内容...</a></p><p>分类: <a href="http://www.datongyi.com/catalog.asp?cate=3">Programs</a> | Tags: <a href="http://www.datongyi.com/catalog.asp?tags=%E7%BA%A4%E7%A8%8B+%2ENET">纤程 .NET</a>&nbsp;&nbsp; | <a href="http://www.datongyi.com/post/22.html#comment" target="_blank">添加评论</a>(0)</p><p><a href="http://www.datongyi.com/post/22.html#comment" target="_blank">还没有相关文章，您来说两句？</a></p>]]></description><category>Programs</category><comments>http://www.datongyi.com/post/22.html#comment</comments><wfw:comment>http://www.datongyi.com/</wfw:comment><wfw:commentRss>http://www.datongyi.com/feed.asp?cmt=22</wfw:commentRss><trackback:ping>http://www.datongyi.com/cmd.asp?act=tb&amp;id=22&amp;key=84ad00b3</trackback:ping></item><item><title>微软：IE9将不支持Flash</title><author>a@b.com (cnwang)</author><link>http://www.datongyi.com/post/21.html</link><pubDate>Sun, 02 May 2010 19:04:18 +0800</pubDate><guid>http://www.datongyi.com/post/21.html</guid><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4月30日，苹果CEO乔布斯发表文章，回应了封杀Adobe Flash一事，乔布斯认为，Flash在稳定性、安全性及性能方面存在问题。5月1日，微软IE团队总经理迪恩&middot;哈恰莫维奇也发表博客称，Flash的问题&ldquo;尤其体现在可靠性、安全性和运行表现&rdquo;。</p><p>　　网易科技讯 5月1日消息，据国外媒体报道，微软日前证实其下一代浏览器Internet Explorer 9(IE 9)将不支持Flash，视频格式将仅支持H.264标准。</p><p>　　微软公司IE浏览器项目负责人Dean Hachamovitch在其博客中表示，&ldquo;未来的网络将是HTML5&rdquo;，下一代基于HTML 5的浏览器和网络服务将致力于提供更加丰富的、互动的网络应用服务，同时也将提供更优质的视频服务。</p><p><strong>　　微软IE总经理：Flash安全性等方面存在问题</strong></p><p>　　新浪科技讯 北京时间5月1日凌晨消息，据国外媒体昨日报道，微软IE团队总经理迪恩&middot;哈恰莫维奇(Dean Hachamovitch)发表博客文章称，&ldquo;网络的未来是HTML5&rdquo;，并称其认为Flash存在问题，这与苹果有关Flash的观点相符。</p><p>　　哈恰莫维奇称，Flash的问题&ldquo;尤其体现在可靠性、安全性和运行表现&rdquo;等方面，但&ldquo;在今天的网络上，它仍是给消费者带来良好体验的重要组成部分之一&rdquo;。</p><p>　　哈恰莫维奇同时还表示，他看好H.264视频标准，称其为&ldquo;一种拥有广泛而强有力的硬件支持的行业标准&rdquo;;基于这种标准，用户&ldquo;可以很容易地将录制在传统个人摄像机中的视频传到网上，在H.264的支持下在网络浏览器上进行播放，无论用户使用哪种操作系统或是哪种设备。&rdquo;</p><p>　　哈恰莫维奇总结道：&ldquo;今天，网络视频主要还是以Flash为基础的&rdquo;，&ldquo;对于传统的个人消费者来说，无需Flash就能通过浏览器在某个网站上观看视频的轻松体验是一种挑战。&rdquo;</p><p>　苹果首席执行官史蒂夫&middot;乔布斯星期四对Adobe的Flash软件提出了尖锐的批评。微软官员随后也随声附和，对Flash软件提出了批评。</p><p>　　微软IE浏览器部门总经理Dean Hachamovitch说，虽然Flash软件能够让消费者方便地访问网站视频，但是，这个标准是有瑕疵的。他说，Flash确实有一些问题，特别是不可靠、安全和性能问题。Hachamovitch说，微软支持在网络上传送多媒体内容的HTML5协议。这与苹果支持的协议是相同的。</p><p>　　但是，微软对于Adobe的态度要比苹果缓和一些。微软称，它正在与Flash工程师密切合作修复它发现的Flash产品中的瑕疵。</p><p>　　相比之下，乔布斯在公开信中称，现在是这个行业超越Flash的时候了。乔布斯说，Flash对于Adobe来说是一个成功的业务。我们理解他们为什么要把Flash推广到PC以外的领域。但是，移动领域是低功率设备、触摸屏界面和开放的Web标准。所有这些方面都是Adobe欠缺的。</p><p>　　与此同时，Adobe否认了苹果的说法，指出苹果就是为了推销自己的产品。Adobe发言人Holly Campbell说，苹果封锁Flash和其它技术的举措就是为了保护把开发人员和消费者锁定到一个专用的产品的商业模式</p><p>Copyright © 2008</p><p><a href="http://www.datongyi.com/post/21.html" target="_blank">继续阅读《微软：IE9将不支持Flash》的全文内容...</a></p><p>分类: <a href="http://www.datongyi.com/catalog.asp?cate=1">Times</a> | Tags: <a href="http://www.datongyi.com/catalog.asp?tags=IE9">IE9</a>&nbsp;&nbsp;<a href="http://www.datongyi.com/catalog.asp?tags=%E4%BA%92%E8%81%94%E7%BD%91">互联网</a>&nbsp;&nbsp; | <a href="http://www.datongyi.com/post/21.html#comment" target="_blank">添加评论</a>(0)</p><h3>相关文章:</h3><ul><li><a href="http://www.datongyi.com/post/19.html">物联网征程初启与物联网之阻</a> (2010-5-1 22:23:41)  </li></ul>]]></description><category>Times</category><comments>http://www.datongyi.com/post/21.html#comment</comments><wfw:comment>http://www.datongyi.com/</wfw:comment><wfw:commentRss>http://www.datongyi.com/feed.asp?cmt=21</wfw:commentRss><trackback:ping>http://www.datongyi.com/cmd.asp?act=tb&amp;id=21&amp;key=108a24ac</trackback:ping></item><item><title>使用 ListView 显示数据</title><author>a@b.com (cnwang)</author><link>http://www.datongyi.com/post/20.html</link><pubDate>Sun, 02 May 2010 00:16:44 +0800</pubDate><guid>http://www.datongyi.com/post/20.html</guid><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一般情况下，如果需要在程序中显示数据记录，人们通常使用的工具可能是DataGridView控件。不可否认，使用DataGridView控件来完成这种工作非常实用简单。但是在实际工作中，也许它并不能满足我们的要求。这个时候，你可以尝试用ListView来显示你的数据记录。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ListView（列表）是.Net FreameWork 中的一个常用组件，常常被使用显示比较庞大的数据信息。 本文将利用这一控件来讲解如何使用 ListView来显示数据。 笔者使用的开发工具为 VS2008+MySql。虽然这种组合会让某些人感到很不爽，但是不可否认，它很简洁。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;首先，建立一个数据连接。 具体的原理本文就不再讲解了。直接上源：&nbsp;</p><div style="background-color: #f9f7ed; font-family: 'Lucida Console', 'Consolas', 'Courier New'; color: #000000" class="source" jquery1272732632614="14"><span style="font-style: italic; color: #008800">1</span> <span style="color: #000000">OdbcConnection</span> <span style="color: #000000">DBConn</span> <span style="color: #000000">=</span> <span style="color: #000080; font-weight: bold">new</span> <span style="color: #000000">OdbcConnection</span>(<br /><span style="font-style: italic; color: #008800">2</span> &nbsp;&nbsp;&nbsp; <span style="color: #0000ff">&quot;Driver={Mysql odbc 5.1 driver};&quot;</span> <span style="color: #000000">+</span> <br /><span style="font-style: italic; color: #008800">3</span> &nbsp;&nbsp;&nbsp; <span style="color: #0000ff">&quot;Server=localhost;&quot;</span> <span style="color: #000000">+</span><br /><span style="font-style: italic; color: #008800">4</span> &nbsp;&nbsp;&nbsp; <span style="color: #0000ff">&quot;database=listdata;&quot;</span> <span style="color: #000000">+</span> <br /><span style="color: #f810b0">5</span> &nbsp;&nbsp;&nbsp; <span style="color: #0000ff">&quot;UID=root&quot;</span>);<br /><span style="font-style: italic; color: #008800">6</span>&nbsp;<span style="color: #000000">DBConn</span><span style="color: #000000">.</span><span style="color: #000000">Open</span>();<br />&nbsp;</div><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对ListView控件进行属性设置主要有如下属性：&nbsp;</p><div style="background-color: #f9f7ed; font-family: 'Lucida Console', 'Consolas', 'Courier New'; color: #000000" class="source" jquery1272732751786="14"><span style="font-style: italic; color: #008800">1</span> <span style="color: #000000">listView1</span><span style="color: #000000">.</span><span style="color: #000000">GridLines</span> <span style="color: #000000">=</span> <span style="color: #000080; font-weight: bold">true</span> ;<span style="font-style: italic; color: #008800">//显示各个记录的分隔线</span><br /><span style="font-style: italic; color: #008800">2</span> <span style="color: #000000">listView1</span><span style="color: #000000">.</span><span style="color: #000000">FullRowSelect</span> <span style="color: #000000">=</span> <span style="color: #000080; font-weight: bold">true</span> ; <span style="font-style: italic; color: #008800">//要选择就是一行</span><br /><span style="font-style: italic; color: #008800">3</span> <span style="color: #000000">listView1</span><span style="color: #000000">.</span><span style="color: #000000">View</span> <span style="color: #000000">=</span> <span style="color: #000000">View</span><span style="color: #000000">.</span><span style="color: #000000">Details</span> ;<span style="font-style: italic; color: #008800">//定义列表显示的方式</span><br /><span style="font-style: italic; color: #008800">4</span> <span style="color: #000000">listView1</span><span style="color: #000000">.</span><span style="color: #000000">Scrollable</span> <span style="color: #000000">=</span> <span style="color: #000080; font-weight: bold">true</span> ; <span style="font-style: italic; color: #008800">//需要时候显示滚动条 </span><br /><span style="color: #f810b0">5</span> <span style="color: #000000">listView1</span><span style="color: #000000">.</span><span style="color: #000000">MultiSelect</span> <span style="color: #000000">=</span> <span style="color: #000080; font-weight: bold">false</span> ; <span style="font-style: italic; color: #008800">// 不可以多行选择</span>&nbsp;</div><p><img onload="ResizeImage(this,520)" src="http://www.datongyi.com/upload/QQ截图未命名.jpg" alt="" title=""/> <img onload="ResizeImage(this,520)" src="http://www.datongyi.com/upload/201005020036271258.jpg" alt="" title=""/></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对数据集中的数据记录进行遍历，在遍历中添加记录到列表中。 可以利用数据集中的Read ( )方法，来实现对数据记录的遍历，Read ( )方法是首先指向首数据记录，并判断从此记录是否为尾记录，如果不是则返回false，如果是则返回true。并且如果不是尾记录则自动把数据指针移到下一条记录上，然后在判断此记录是否是尾记录，如此循环，直至到尾记录为止。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;根据此可设计以下代码：</p><div style="background-color: #f9f7ed; font-family: 'Lucida Console', 'Consolas', 'Courier New'; color: #000000" class="source" jquery1272732858044="14"><span style="font-style: italic; color: #008800">1</span> <span style="color: #000080; font-weight: bold">while</span> (<span style="color: #000000">reader</span><span style="color: #000000">.</span><span style="color: #000000">Read</span>())<br /><span style="font-style: italic; color: #008800">2</span> <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #008800">3</span> &nbsp;&nbsp;&nbsp; <span style="color: #000000">ListViewItem</span> <span style="color: #000000">lvi</span> <span style="color: #000000">=</span> <span style="color: #000080; font-weight: bold">new</span> <span style="color: #000000">ListViewItem</span>();<br /><span style="font-style: italic; color: #008800">4</span> &nbsp;&nbsp;&nbsp; <span style="color: #000000">lvi</span><span style="color: #000000">.</span><span style="color: #000000">SubItems</span><span style="color: #000000">[</span><span style="color: #0000ff">0</span><span style="color: #000000">].</span><span style="color: #000000">Text</span> <span style="color: #000000">=</span> <span style="color: #000000">reader</span><span style="color: #000000">[</span><span style="color: #0000ff">&quot;name&quot;</span><span style="color: #000000">].</span><span style="color: #000000">ToString</span>();<br /><span style="color: #f810b0">5</span> &nbsp;&nbsp;&nbsp; <span style="color: #000000">lvi</span><span style="color: #000000">.</span><span style="color: #000000">SubItems</span><span style="color: #000000">.</span><span style="color: #000000">Add</span>(<span style="color: #000000">reader</span><span style="color: #000000">[</span><span style="color: #0000ff">&quot;age&quot;</span><span style="color: #000000">].</span><span style="color: #000000">ToString</span>());<br /><span style="font-style: italic; color: #008800">6</span> &nbsp;&nbsp;&nbsp; <span style="color: #000000">lvi</span><span style="color: #000000">.</span><span style="color: #000000">SubItems</span><span style="color: #000000">.</span><span style="color: #000000">Add</span>(<span style="color: #000000">reader</span><span style="color: #000000">[</span><span style="color: #0000ff">&quot;city&quot;</span><span style="color: #000000">].</span><span style="color: #000000">ToString</span>());<br /><span style="font-style: italic; color: #008800">7</span> &nbsp;&nbsp;&nbsp; <span style="color: #000000">lvi</span><span style="color: #000000">.</span><span style="color: #000000">SubItems</span><span style="color: #000000">.</span><span style="color: #000000">Add</span>(<span style="color: #000000">reader</span><span style="color: #000000">[</span><span style="color: #0000ff">&quot;qq&quot;</span><span style="color: #000000">].</span><span style="color: #000000">ToString</span>());<br /><span style="font-style: italic; color: #008800">8</span> &nbsp;&nbsp;&nbsp; <span style="color: #000000">listView1</span><span style="color: #000000">.</span><span style="color: #000000">Items</span><span style="color: #000000">.</span><span style="color: #000000">Add</span>(<span style="color: #000000">lvi</span>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><span style="font-style: italic; color: #008800">9</span> <span style="color: #000000">}</span><br />&nbsp;</div><p>&nbsp;最后，不忘了将数据连接关闭&nbsp;</p><div style="background-color: #f9f7ed; font-family: 'Lucida Console', 'Consolas', 'Courier New'; color: #000000" class="source" jquery1272732906268="14"><span style="font-style: italic; color: #008800">1</span> <span style="color: #000000">DBConn</span><span style="color: #000000">.</span><span style="color: #000000">Close</span>();<br />&nbsp;</div><p>&nbsp;MySql数据库表设计，Test表：</p><p><img onload="ResizeImage(this,520)" src="http://www.datongyi.com/upload/201005020041090781.jpg" alt="" title=""/></p><p>最终效果：</p><p><img onload="ResizeImage(this,520)" src="http://www.datongyi.com/upload/201005020043215383.jpg" alt="" title=""/></p><p>完整代码：&nbsp;</p><div style="background-color: #f9f7ed; font-family: 'Lucida Console', 'Consolas', 'Courier New'; color: #000000" class="source" jquery1272732994631="14"><span style="font-style: italic; color: #008800">01</span> <span style="color: #000080; font-weight: bold">using</span> <span style="color: #000000">System</span>;<br /><span style="font-style: italic; color: #008800">02</span> <span style="color: #000080; font-weight: bold">using</span> <span style="color: #000000">System.Collections.Generic</span>;<br /><span style="font-style: italic; color: #008800">03</span> <span style="color: #000080; font-weight: bold">using</span> <span style="color: #000000">System.ComponentModel</span>;<br /><span style="font-style: italic; color: #008800">04</span> <span style="color: #000080; font-weight: bold">using</span> <span style="color: #000000">System.Data</span>;<br /><span style="color: #f810b0">05</span> <span style="color: #000080; font-weight: bold">using</span> <span style="color: #000000">System.Drawing</span>;<br /><span style="font-style: italic; color: #008800">06</span> <span style="color: #000080; font-weight: bold">using</span> <span style="color: #000000">System.Linq</span>;<br /><span style="font-style: italic; color: #008800">07</span> <span style="color: #000080; font-weight: bold">using</span> <span style="color: #000000">System.Text</span>;<br /><span style="font-style: italic; color: #008800">08</span> <span style="color: #000080; font-weight: bold">using</span> <span style="color: #000000">System.Windows.Forms</span>;<br /><span style="font-style: italic; color: #008800">09</span> <br /><span style="color: #f810b0">10</span> <span style="color: #000080; font-weight: bold">using</span> <span style="color: #000000">System.Data.Odbc</span>;<br /><span style="font-style: italic; color: #008800">11</span> <span style="color: #000080; font-weight: bold">using</span> <span style="color: #000000">System.Data.OleDb</span>;<br /><span style="font-style: italic; color: #008800">12</span> <span style="color: #000080; font-weight: bold">namespace</span> <span style="color: #000000">ListView</span><br /><span style="font-style: italic; color: #008800">13</span> <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #008800">14</span> &nbsp;&nbsp;&nbsp; <span style="color: #000080; font-weight: bold">public</span> <span style="color: #000080; font-weight: bold">partial</span> <span style="color: #000080; font-weight: bold">class</span> <span style="color: #000000">Form1</span> <span style="color: #000000">:</span> <span style="color: #000000">Form</span><br /><span style="color: #f810b0">15</span> &nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #008800">16</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">OdbcConnection</span> <span style="color: #000000">DBConn</span> <span style="color: #000000">=</span> <span style="color: #000080; font-weight: bold">new</span> <span style="color: #000000">OdbcConnection</span>(<br /><span style="font-style: italic; color: #008800">17</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">&quot;Driver={Mysql odbc 5.1 driver};&quot;</span> <span style="color: #000000">+</span> <br /><span style="font-style: italic; color: #008800">18</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">&quot;Server=localhost;&quot;</span> <span style="color: #000000">+</span><br /><span style="font-style: italic; color: #008800">19</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">&quot;database=listdata;&quot;</span> <span style="color: #000000">+</span> <br /><span style="color: #f810b0">20</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">&quot;UID=root&quot;</span>);<br /><span style="font-style: italic; color: #008800">21</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><span style="font-style: italic; color: #008800">22</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000080; font-weight: bold">public</span> <span style="color: #000000">Form1</span>()<br /><span style="font-style: italic; color: #008800">23</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #008800">24</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">InitializeComponent</span>();<br /><span style="color: #f810b0">25</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #008800">26</span> <br /><span style="font-style: italic; color: #008800">27</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000080; font-weight: bold">private</span> <span style="color: #000080; font-weight: bold">void</span> <span style="color: #000000">button1_Click</span>(<span style="color: #000080; font-weight: bold">object</span> <span style="color: #000000">sender</span><span style="color: #000000">,</span> <span style="color: #000000">EventArgs</span> <span style="color: #000000">e</span>)<br /><span style="font-style: italic; color: #008800">28</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="font-style: italic; color: #008800">29</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">DBConn</span><span style="color: #000000">.</span><span style="color: #000000">Open</span>();<br /><span style="color: #f810b0">30</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">OdbcCommand</span> <span style="color: #000000">cmd</span> <span style="color: #000000">=</span> <span style="color: #000080; font-weight: bold">new</span> <span style="color: #000000">OdbcCommand</span>(<span style="color: #0000ff">&quot;Select * from test&quot;</span><span style="color: #000000">,</span><span style="color: #000000">DBConn</span>);<br /><span style="font-style: italic; color: #008800">31</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">OdbcDataReader</span> <span style="color: #000000">reader</span> <span style="color: #000000">=</span> <span style="color: #000000">cmd</span><span style="color: #000000">.</span><span style="color: #000000">ExecuteReader</span>();<br /><span style="font-style: italic; color: #008800">32</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000080; font-weight: bold">this</span><span style="color: #000000">.</span><span style="color: #000000">listView1</span><span style="color: #000000">.</span><span style="color: #000000">Items</span><span style="color: #000000">.</span><span style="color: #000000">Clear</span>();<br /><span style="font-style: italic; color: #008800">33</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000080; font-weight: bold">while</span> (<span style="color: #000000">reader</span><span style="color: #000000">.</span><span style="color: #000000">Read</span>())<br /><span style="font-style: italic; color: #008800">34</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">{</span><br /><span style="color: #f810b0">35</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">ListViewItem</span> <span style="color: #000000">lvi</span> <span style="color: #000000">=</span> <span style="color: #000080; font-weight: bold">new</span> <span style="color: #000000">ListViewItem</span>();<br /><span style="font-style: italic; color: #008800">36</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">lvi</span><span style="color: #000000">.</span><span style="color: #000000">SubItems</span><span style="color: #000000">[</span><span style="color: #0000ff">0</span><span style="color: #000000">].</span><span style="color: #000000">Text</span> <span style="color: #000000">=</span> <span style="color: #000000">reader</span><span style="color: #000000">[</span><span style="color: #0000ff">&quot;name&quot;</span><span style="color: #000000">].</span><span style="color: #000000">ToString</span>();<br /><span style="font-style: italic; color: #008800">37</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">lvi</span><span style="color: #000000">.</span><span style="color: #000000">SubItems</span><span style="color: #000000">.</span><span style="color: #000000">Add</span>(<span style="color: #000000">reader</span><span style="color: #000000">[</span><span style="color: #0000ff">&quot;age&quot;</span><span style="color: #000000">].</span><span style="color: #000000">ToString</span>());<br /><span style="font-style: italic; color: #008800">38</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">lvi</span><span style="color: #000000">.</span><span style="color: #000000">SubItems</span><span style="color: #000000">.</span><span style="color: #000000">Add</span>(<span style="color: #000000">reader</span><span style="color: #000000">[</span><span style="color: #0000ff">&quot;city&quot;</span><span style="color: #000000">].</span><span style="color: #000000">ToString</span>());<br /><span style="font-style: italic; color: #008800">39</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">lvi</span><span style="color: #000000">.</span><span style="color: #000000">SubItems</span><span style="color: #000000">.</span><span style="color: #000000">Add</span>(<span style="color: #000000">reader</span><span style="color: #000000">[</span><span style="color: #0000ff">&quot;qq&quot;</span><span style="color: #000000">].</span><span style="color: #000000">ToString</span>());<br /><span style="color: #f810b0">40</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">listView1</span><span style="color: #000000">.</span><span style="color: #000000">Items</span><span style="color: #000000">.</span><span style="color: #000000">Add</span>(<span style="color: #000000">lvi</span>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><span style="font-style: italic; color: #008800">41</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #008800">42</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">DBConn</span><span style="color: #000000">.</span><span style="color: #000000">Close</span>();<br /><span style="font-style: italic; color: #008800">43</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #008800">44</span> <br /><span style="color: #f810b0">45</span> &nbsp;&nbsp;&nbsp; <span style="color: #000000">}</span><br /><span style="font-style: italic; color: #008800">46</span> <span style="color: #000000">}</span><br />&nbsp;</div><p>&nbsp;</p><p>&nbsp;</p><p>Copyright © 2008</p><p><a href="http://www.datongyi.com/post/20.html" target="_blank">继续阅读《使用 ListView 显示数据》的全文内容...</a></p><p>分类: <a href="http://www.datongyi.com/catalog.asp?cate=3">Programs</a> | Tags: <a href="http://www.datongyi.com/catalog.asp?tags=%2ENET">.NET</a>&nbsp;&nbsp;<a href="http://www.datongyi.com/catalog.asp?tags=C%23">C#</a>&nbsp;&nbsp;<a href="http://www.datongyi.com/catalog.asp?tags=MySql">MySql</a>&nbsp;&nbsp;<a href="http://www.datongyi.com/catalog.asp?tags=ListView">ListView</a>&nbsp;&nbsp;<a href="http://www.datongyi.com/catalog.asp?tags=studio">studio</a>&nbsp;&nbsp; | <a href="http://www.datongyi.com/post/20.html#comment" target="_blank">添加评论</a>(0)</p><h3>相关文章:</h3><ul><li><a href="http://www.datongyi.com/post/25.html">dotNET学习路线</a> (2010-12-22 22:47:25)  </li><li><a href="http://www.datongyi.com/post/18.html">.NET 4 各项技术的应用前景</a> (2010-5-1 22:18:22)  </li><li><a href="http://www.datongyi.com/post/16.html">微软美女工程师谈.NET 4.0 Beta 中的WCF工具</a> (2010-3-21 3:16:10)  </li><li><a href="http://www.datongyi.com/post/13.html">C#设计模式之简单工厂</a> (2010-3-18 21:23:5)  </li><li><a href="http://www.datongyi.com/post/11.html">MSSQL2005 用户'sa'登录失败。错误18456</a> (2010-3-18 12:39:19)  </li></ul>]]></description><category>Programs</category><comments>http://www.datongyi.com/post/20.html#comment</comments><wfw:comment>http://www.datongyi.com/</wfw:comment><wfw:commentRss>http://www.datongyi.com/feed.asp?cmt=20</wfw:commentRss><trackback:ping>http://www.datongyi.com/cmd.asp?act=tb&amp;id=20&amp;key=9fe84c7f</trackback:ping></item><item><title>物联网征程初启与物联网之阻</title><author>a@b.com (cnwang)</author><link>http://www.datongyi.com/post/19.html</link><pubDate>Sat, 01 May 2010 22:23:41 +0800</pubDate><guid>http://www.datongyi.com/post/19.html</guid><description><![CDATA[<div class="view"><span><div class="view"><strong><font size="4">物联网征程初启</font></strong></div></span></div><div class="view"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&rsaquo;&rsaquo;&rsaquo;&nbsp;作者：赵峰</span> (微软亚洲研究院常务副院长)<br /><em><br /></em><span style="font-size: small"><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要想让传感器真正&ldquo;飞入寻常世界中&rdquo;，它必须在体积、造价、能耗等方面进行&ldquo;瘦身&rdquo;，这样它才真正能够进入到物理世界。</em></span></div><div class="view">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;现在在我手边有一个黑乎乎的小匣子，只有鼠标的一半大。有位记者说这东西看起来像古老的BP机，不过BP机早就进博物馆了，但这个小匣子还将继续存在很久，而且还将经历&ldquo;72变&rdquo;，最终完全成为人们生活的一部分。</div><div class="view">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个黑乎乎的东西就是传感器，也是我折腾了将近20年的小玩意儿，它被复制了1万多个，在微软3个数据中心的角落里&ldquo;站着岗&rdquo;，常年监控着机房内的温度和湿度。说起传感器以及由它组成的网络&mdash;&mdash;传感网，或者是现在比较时髦的说法&ldquo;物联网&rdquo;，从其诞生到现在已经有几十年的历史了，我们先翻开历史的卷轴，看看其发展历程。</div><p><b>传感网的古与今</b></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对于互联网来说，20世纪80年代是黄金时代，这段时间出了一个知名的人物&mdash;&mdash;鲍勃&middot;卡恩，他被人们称为互联网之父（被赋予同样称呼的人还有好几个）。在为互联网做出卓越贡献的同时，他也非常有远见地为另一个始于上世纪80年代的项目&mdash;&mdash;分布式传感网（Distributed Sensor Net, 简称DSN）&mdash;&mdash;做了奠基。在那个年代，传感器远比我手上的这个大得多，要用一辆卡车来拉。这么大的传感器作为一个个节点组织在一起，通过微波彼此相连，就组成了传感网。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;庞大的传感器在体积方面跟不上人们对其功用上的期望，于是研究者们就开始思考能不能把它做得小一点、再小一点。于是，在上世纪90年代，&ldquo;智能微尘&rdquo;（Smart Dust）这个很有意思的概念出现了，提出者是Kris Pister，他是加州大学伯克利分校的教授。这一概念认为可以将计算和通信集成在约1~2平方毫米的超微型传感器中，用以对周围环境的参数进行探测。其核心的成分是微电机系统（Micro-Electro-Mechanical System, 简称MEMS；这个概念在当时引起非常大的轰动），该系统中可以集成很多和机械有关的传感器。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当时Kris Pister这批人有一个幻想&mdash;&mdash;在蒲公英上面悬挂一个传感芯片，蒲公英飞到哪里就探测哪里的信号，再把信号传递回来。虽然只是一个假想，但当时真有科学家信心百倍地投入其中，并且还把所需的数据算出来了。比如有空气动力学专家计算出了芯片应有的重量等等。在2001年，加州大学伯克利分校的实验室真做出了这种理想中的芯片雏形，比米粒还小，可谓&ldquo;细如发丝，薄如蝉翼&rdquo;。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在这一时期，有三所高校和研究机构在传感器领域处于领军地位，一是加州大学伯克利分校（以Kris Pister为代表，他们提出了&ldquo;智能微尘&rdquo;理论），另外两个是加州大学洛杉矶分校（他们提出了&ldquo;微无线技术&rdquo;）和施乐帕克研究中心（Xerox PARC）。施乐帕克研究中心的团队主要由我带领，我们做的是传感信息处理和&ldquo;智能物质&rdquo;（Smart Matter），希望能把计算、微电机系统放到物理世界中，与&ldquo;智能微尘&rdquo;也有非常紧密的联系。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;自本世纪初以来，对于传感的研究越来越受到人们的重视，有很多学校和大公司的研发机构开始进行了类似的研究，并有许多新兴公司借此东风异军突起。将传感器连接成&ldquo;网&rdquo;或&ldquo;系统&rdquo;，就成了传感网。除了传感网以外，类似的概念也相继提出，比如&ldquo;Cyber Physical System&rdquo;和 &ldquo;Internet of Things&rdquo; (简称IOT)。相较而言，IOT的概念在提出的初期更接近于日常生活，比如常见的RFID（射频识别）技术就是它的一部分。</p><div style="float: right; margin-left: 10px" class="top_img_385"><img alt=" " width="346" height="370" src="http://ceocio.ccw.com.cn/pubsystem/uploadfile/201003/2010032118175455593916.jpg" /></div><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关于传感网和物联网的历史，若从大的传感器开始算起，传感网诞生至今应有30年了；而若从微传感网（Micro Wireless Sensor Network）来说，应该仅有15至20年：微传感网始于上世纪90年代，那个时期的人们刚刚提出&ldquo;微电机系统&rdquo;的概念，试图把传感器和计算机处理和通信全部都集成在一个芯片上，即&ldquo;智慧微尘&rdquo;。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其实传感器的历史，归结起来就8个字&mdash;&mdash;从大到小，以点到面。这8个字看似简单，但做起来却是困难重重&mdash;&mdash;要想让传感器真正&ldquo;飞入寻常世界中&rdquo;，它必需在体积、造价、能耗等方面进行&ldquo;瘦身&rdquo;，这样它才真正能够进入到物理世界。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;然而，造型的缩小并不是传感进入生活的唯一条件，还需要互联网技术的配合以实现从点到面的网际联系。就IP地址而言，物联网应采用IPv6（IPv4必然不够），它有128位两进制的IP网址数，这相当于给世界上的每个沙粒都赋予了一个IP地址。唯有当所有的物体都有一个属于自己的IP的时候，物联网才能真正实现。总而言之，物联网的实现需要这两方面的相辅相成：一是利用微处理技术（micro-fabrication），提高集成度；其二是运用IP技术，以提供足够丰富的网址。</p><p><b>感知地球</b></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;互联网作为一个产业革命的传奇和标本，人们总忍不住把传感网与之相提并论，希望互联网能成为物联网真正诞生的一架云梯：在互联网发展的前30年，其主要功能是把通信和信息网络化，使得我们可以用关键字检索。而今在信息网络化完成之后，接下来的主要挑战是如何将互联网和物理世界相互联系，使得物理世界中的因素（比如温度、湿度、图像、声音等）能够被存储标记和搜索，并能使得人们通过一种非常便利的方式获取这些信息，这就是所谓的物联网。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;互联网是人与人之间的联系；而物联网是物与物之间以及与数字世界的联系，其核心是传感网，关键是传感器、网络和感知。温家宝总理在参观了无锡中科院物联网研究所之后，也高瞻远瞩地肯定了&ldquo;感知中国&rdquo;的科技畅想，并决心将物联网作为新兴产业制高点放进&ldquo;十二五&rdquo;规划中。我们相信一旦物联网成为现实，它将为我们的生活带来翻天覆地的变化，让人与物的联系不再受时空经纬的局限，比如在出门上班前就可以知道小孩的班车是不是已经到学校了；室外的温度、湿度如何；离家在外还能检查一下家里的煤气有没有关等等。如果你新到一个城市，你甚至还可以查找到有多少你所认识但久未联系的故知旧友与你共同生活在一个城市的天空下，他们都分布在那一方角落。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;概而言之，我认为物联网将在以下三个领域发挥其显著的用途和价值：</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;自然生态环境：可以利用传感器监控空间而不是某个特定的物体，如关注某片空间的温度、湿度等；这需要很小的传感器的高密度分布，同时更不能影响环境（nonintrusive）。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;工业、商业应用：可以利用传感器监测追踪特定物体，如监控货物在途中是否受过震动，温度的变化对其是否有影响，是否损坏其物理结构等等。可以应用到供应链管理、设备保存、车流交通、工厂生产等方面。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;人类和社会活动：可以利用传感器监控人们日常生活中的行为。这在老龄化社会的医疗保健中可以得到很多应用，比如传感器可以监控老年人的生活作息，一旦出现意外，可以及时通知亲人和医生。同样的，也可以帮助母亲追踪自己的幼儿。有趣的是，在日本现在就有人用它来找回失踪宠物。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;之所以先对未来物联网的应用领域进行介绍和分类，是因为我认为物联网能够得到发展的原因在于找到大规模的应用方式。拿一个互联网的例子来说，1985年我在麻省理工学院(MIT)读书时有个Email地址，那个时候Email还不像现在一样应用如此广泛，只是简单地代替传统邮件的工作。而在商用互联网发展起来之后，电子邮件的用途已远远超出通信了。对于物联网来说，前15年走过的路大多还比较窄，大都局限在学术研究中，还没有真正走入到人们的生活，远没有发展到人们生活离不开的程度。未来的这段路需要去探寻对人们生活有非凡意义的应用方式，这些应用能够真正大规模地解决人们生活中的问题，给人们的生活带来可感知的变化。<br />&nbsp;</p><div class="wide"><div class="view"><div style="height: 20px">&nbsp;</div><font size="3"><strong>物联网之阻</strong></font><p align="center"><span style="font-size: small"><em>要迎来一个具有变革意义的物联网时代，还需要跨越重重阻碍。</em></span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;现在物联网的概念已经深入人心，大家都无比憧憬着一个具有变革意义的物联网时代的到来。但是，作为一个与传感器打了数十年交道的研究者，我不得不承认，物联网之路&ldquo;道阻且长&rdquo;，而我们才刚刚起步，这段万里长征有许多可以预知的艰难险阻等着我们，比如以下五个方面的问题：</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;大规模&mdash;&mdash;可靠的物联网意味着大量且布置合理的传感器。从概率上来讲，成千上万个传感器中总有几个不工作，在这种情况下，如果一个系统的性能不是从100%降到0，而是可以发挥绝大部分的功能，那么这就是一个好的系统。但是实际上现在计算机还很脆弱，一台电脑在正常运转的情况下可以保证运算从头到尾都正确，但是当把多台这样的电脑放在一起形成一个系统时，往往会出现一些预想不到的故障。这和生物系统的原理完全不同：生物系统有很多的细胞，可以起到替代作用，即使每天都有很多细胞死去，但在生物体的水平上我们现在都还很健康的存在着。比如医学上发现大脑中一部分结构坏死，其附近的一些细胞可以替代它的工作，整个系统可以正常运转。对于传感器网络来说，其最好的状态就是可以形成一个类似生物学系统的体系，一部分传感器出现故障时，有其他的传感器可以替代，这就需要大的规模来保证。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;标准化&mdash;&mdash;传感器和其他相关部分毕竟还是互联网的一部分，需要与互联网进行有效连接，那么就需要标准化的组件和I/O接口。另外，交互界面（Interface）也需要标准化，大众最关注的是如何应用，并不需要完全熟悉传感器的复杂原理，只需要知道一个标准化的操作流程就可以了，比如在超市，只要把一个探测器放到物品上，一按开关就能够在电脑上搜索到有关该物品的所有信息，这就是交互界面的标准化&mdash;&mdash;做到这种程度时也就意味着可以做大规模的普及了。值得一提的是，标准化也有利于大规模生产，就如同中国古代木质结构中的斗拱榫卯一样，经过标准化之后大量生产，从而构成亭台楼阁。</p></div><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据&mdash;&mdash;和任何硬件一样，传感器做到最后，终归会被大批量生产，从而变成超市里的廉价品。但是在硬件之外，传感器收集到的数据可以有更多的应用。例如，可通过对身体状况的感知来推荐保健品，带来的广告收入想必非常可观。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据这块蛋糕自然诱人，但吃到嘴里却并不容易。首先，获得这些数据的启动（Bootstrapping）过程并非易事：刚开始时数据很少，需要提供很好的应用方式，才能吸引人们提供更多的数据，进而获得更多更好的应用，以至于获得更多的收益。第二，数据的所有权（Ownership）问题不容忽视。我以前在施乐帕克研究中心的团队中有个很聪明的成员，他后来做了一家创业公司的副总裁，这个公司专门生产一种放在停车位下面的传感器，它用光亮和磁场对周围环境进行感应。技术完成后，他非常有成就感，并认为这将引起一场革命。若想在美国的一些大城市的市中心找到停车位是件令人焦头烂额的事情，安装上这种传感器之后，顾客可以在网上付费查询并预定空的车位，也能提高使用效率，并带来非常可观的收益。他的初衷是好的，但是现实却令他大失所望，因为他得到某些市政府的拒绝理由是，借由这些停车数据而获得的商业收益应该属于市政府的。第三，隐私（Privacy）是个大麻烦。一些传感器和我们生活的空间直接相关，比如放在我们手机里甚至身体上的传感器。</p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这就涉及到一个很重要的矛盾：一方面，传感器可以提供个人化的服务，满足个人的独特需求；但同时个人的隐私也因此受到曝光。互联网上已经出现了这种问题（比如搜索引擎所提供的个人化的历史提示），物联网也可能会出现类似的问题，甚至更严重，因为传感器感知的几乎完全都是个人化的内容，它会知道你每天看什么书、吃什么饭、见什么人。因此，如果要把传感器应用到个人的日常生活中，对隐私保护的重视是非常必要的。信息的有用性和私密性之间不得不要进行一场徒手博弈。当人们认为在过于公开的信息里自己的隐私受到威胁时，应该能够把相应的传感器关掉。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用黏性（App stickiness）&mdash;&mdash;以智能手机(比如带有Windows Mobile操作系统的手机)为例，人们喜欢它的原因就在于它的一些非常有吸引力的功能，人们会多次地使用该功能，而不是试一次就不用了。同样的，在物联网上的应用也应该具有非常大的吸引力，而不是只能引发人们一次性的使用。总之，物联网应该是一个漂亮的多次使用的环保袋，而不是一次性的白色污染。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;生态系统（Eco-system）&mdash;&mdash;对于物联网来说，需要多个领域的共同配合，比如硬件、固件（firmware）、软件、界面等等，这是一条很大的产业链，只有把一个完整的生态体系建立起来，物联网才能真正可持续的发展。以PC做类比，它就有一个非常完善的生态体系，硬件、软件、应用、兼容都有人来做，这个产业的发展就非常健康。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在上述五个方面中，数据无论如何都是最重要的，传感数据有着巨大的潜力，甚至有可能由于对数据的有效利用而产生又一家有影响的公司。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上世纪80年代，传感器要用卡车来拉；现在微软公司的数据中心里安装了成千上万个两三厘米见方的传感器，或许再做十几年，就真的有如灰尘一般大小的传感器在空中飘浮了，或者进入人们的身体，帮助探测血管阻塞等情况。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这些听上去有些像科幻小说，甚至你会认为有那么一点不切实际，但是科技的魅力正在于此，科学和艺术在想象力方面是相通的，因此我们对传感网的想象并不能因其遥远而被扼杀。尽管现在看起来不可能，但是也许过10年、20年就会变得可能；但如果没有人去尝试，那么不可能永远都不会变成可能。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;因此，Dream a big dream，这话永远都不会错！</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（本文作者系微软亚洲研究院常务副院长，主要负责系统、无线与网络、硬件计算以及多媒体通信等领域的研究工作。赵峰博士曾在位于硅谷的施乐帕克研究中心担任首席科学家，领导该中心的传感器网络研究，并任教于美国俄亥俄州州立大学和斯坦福大学。赵博士是美国电机电子工程师学会院士(IEEE Fellow)，是传感器研究领域内的世界级专家。）</p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;转自：微软亚洲研究院</p></div><p>&nbsp;</p><p>Copyright © 2008</p><p><a href="http://www.datongyi.com/post/19.html" target="_blank">继续阅读《物联网征程初启与物联网之阻》的全文内容...</a></p><p>分类: <a href="http://www.datongyi.com/catalog.asp?cate=1">Times</a> | Tags: <a href="http://www.datongyi.com/catalog.asp?tags=%E7%89%A9%E8%81%94%E7%BD%91">物联网</a>&nbsp;&nbsp;<a href="http://www.datongyi.com/catalog.asp?tags=%E4%BA%92%E8%81%94%E7%BD%91">互联网</a>&nbsp;&nbsp;<a href="http://www.datongyi.com/catalog.asp?tags=%E7%BD%91%E7%AB%99">网站</a>&nbsp;&nbsp; | <a href="http://www.datongyi.com/post/19.html#comment" target="_blank">添加评论</a>(1)</p><h3>相关文章:</h3><ul><li><a href="http://www.datongyi.com/post/24.html">ASP.NET 三层架构(3-tier application) </a> (2010-9-11 1:0:16)  </li><li><a href="http://www.datongyi.com/post/21.html">微软：IE9将不支持Flash</a> (2010-5-2 19:4:18)  </li><li><a href="http://www.datongyi.com/post/2.html">谷歌退出中国倒计时</a> (2010-3-16 12:21:27)  </li><li><a href="http://www.datongyi.com/post/1.html">这是一个值得记念的日子</a> (2010-3-15 23:12:19)  </li></ul>]]></description><category>Times</category><comments>http://www.datongyi.com/post/19.html#comment</comments><wfw:comment>http://www.datongyi.com/</wfw:comment><wfw:commentRss>http://www.datongyi.com/feed.asp?cmt=19</wfw:commentRss><trackback:ping>http://www.datongyi.com/cmd.asp?act=tb&amp;id=19&amp;key=c147d2ec</trackback:ping></item></channel></rss>

