<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_幸福的直哆嗦---我的Web开发之路</title><subtitle type="text">感性让你快乐，理性然你幸福！</subtitle><id>http://feed.cnblogs.com/blog/u/18773/rss</id><updated>2011-05-25T08:24:45Z</updated><author><name>郭大少</name><uri>http://www.cnblogs.com/guodashao/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodashao/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/18773/rss"/><entry><id>http://www.cnblogs.com/guodashao/archive/2011/05/25/2056795.html</id><title type="text">求助关于系统日志的解决方案</title><summary type="text">系统日志 asp.net</summary><published>2011-05-25T08:25:00Z</published><updated>2011-05-25T08:25:00Z</updated><author><name>郭大少</name><uri>http://www.cnblogs.com/guodashao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodashao/archive/2011/05/25/2056795.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodashao/archive/2011/05/25/2056795.html"/><content type="html">&lt;p&gt;事情是这个样子的:那年我也17,靠,找打~~~呵呵开玩笑,乐呵一下~下面是正文!&lt;/p&gt;&#xD;
&lt;p&gt;我接管了公司的一个网站商城.他是由我的前任,前前任做出来的.网站功能实现的是没问题.问题是安全性,几乎没有保护措施!!!(博友不要不信,我接管后看到那是相当惊讶!心说这样的东西还有人敢用?这不就是传说中的肉鸡原形,裸奔网站吗!!)&lt;/p&gt;&#xD;
&lt;p&gt;所以这个网站就会有些莫名其妙的问题.现在该我解决了, 代码,数据库操作的问题我们不多说了.就专门说说网站的日志吧.注意!!这个网站没有任何后台管理日志!!确实如此啊,我发现的时候心说这不是坑爹吗?我问产品部网站出了问题,怎么找到责任人?回答也雷人"问题出了,弥补,再出问题了,再补!损失再说~责任人是老板!" 作为开发人的我无语了.得了,还是咱自己解决吧.&lt;/p&gt;&#xD;
&lt;p&gt;系统日志这是任何一个系统,网站,软件都必不可少的一个基本功能.设计者在系统设计的时候都会考虑系统的日志的实现方式,它包括系统日志的存放方式,系统日志的颗粒度,日志管理等.&lt;/p&gt;&#xD;
&lt;p&gt;日志的存储方式:数据库,文本.(我知道的就这样了)&lt;/p&gt;&#xD;
&lt;p&gt;颗粒度:用户登录级,用户操作级. &lt;/p&gt;&#xD;
&lt;p&gt;好,现在首要的任务时把网站日志给弄出来,不能没有啊.&lt;/p&gt;&#xD;
&lt;p&gt;我说说我的想法:这个已经在使用的网站.为了保证稳定性,对于日志的存放和颗粒度就要以保证现有功能,性能的基础上实现.&lt;/p&gt;&#xD;
&lt;p&gt;颗粒度的问题,分两块儿:&lt;/p&gt;&#xD;
&lt;p&gt;一,记录后台用户的登录,数据库的添加,修改,删除事件.并且记录时间,参数,结果信息.至于浏览,查询就不记录了.&lt;/p&gt;&#xD;
&lt;p&gt;二,记录前台买家的登录,购买,兑换,抽奖事件.浏览,查询不管了.&lt;/p&gt;&#xD;
&lt;p&gt;再一个问题是存放方式:&lt;/p&gt;&#xD;
&lt;p&gt;我没有犹豫,就是文档存放.日志以天为单位存放到文本文件中. 这样是便于查找.当然还要基于我的日志总量不会太大这个先决条件了&lt;/p&gt;&#xD;
&lt;p&gt;结束语:我关于这个网站的日志,解决了基本问题吧.在深入的问题没有考虑.请博友们关于日志方面的知识,多指点.当然大道解决方案, 小道存放文件夹命名都可以给点儿意见.&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guodashao/aggbug/2056795.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guodashao/archive/2011/05/25/2056795.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guodashao/archive/2010/11/29/1891565.html</id><title type="text">【转】 Resharper上手指南</title><summary type="text">我是visual studio的忠实用户，从visual studio 6一直用到了visual studio 2005（典型的80后是吧）。我很想开始使用Visual Studio 2008，但是我不能，因为Resharper还不兼容.NET3.5的语法。Resharper是我一直非常喜欢的工具。响当当的名声绝对不是吹牛皮吹出来的。如果你的公司在寻找一个提高开发人员效率的工具，那么首选应该是Re...</summary><published>2010-11-29T14:29:00Z</published><updated>2010-11-29T14:29:00Z</updated><author><name>郭大少</name><uri>http://www.cnblogs.com/guodashao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodashao/archive/2010/11/29/1891565.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodashao/archive/2010/11/29/1891565.html"/><content type="html">&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;div id="blog_text" &gt;&#xD;
&lt;div &gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;我是visual studio的忠实用户，从visual studio 6一直用到了visual studio 2005（典型的80后是吧）。我很想开始使用Visual Studio 2008，但是我不能，因为Resharper还不兼容.NET3.5的语法。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;Resharper是我一直非常喜欢的工具。响当当的名声绝对不是吹牛皮吹出来的。如果你的公司在寻找一个提高开发人员效率的工具，那么首选应该是Resharper，这一笔投入是值得的。如果你想知道为什么，那么请看一看我的一系列上手指南。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Resharper进阶一：简要介绍 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Resharper进阶二：快速定位 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Resharper进阶三：快速完成 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Resharper进阶四：万能的Alt+Enter &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Resharper进阶五：高效的代码结构调整 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Resharper进阶六：重构才是王道（上） &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Resharper进阶七：重构才是王道（下） &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Resharper进阶八：增强的浏览功能&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;这一系列不是对每个功能的中文帮助，而是我对开发中可能涉及的功能需求，利用Resharper来完成。有些是Visual Studio有的，但是做的不好，有些是没有而Resharper发明的。总的目的都只有一个，就是加快你编写代码的速度。毕竟，我们的终极目标是在5点 半前心满意足的关上电脑回家。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;诚然，学会一个新的语言，或者一个新的工具，都有一个上手的问题。希望我的文章能够帮助你尽快地熟悉Resharper。在熟悉了它以后，你使用鼠 标或者是无效击键的频率会大大地降低。当然这也需要对visual studio本身的使用有一定的基础，毕竟它Resharper是建立在这么强大的一个IDE基础上的。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;&lt;strong&gt;Resharper进阶一：简要介绍&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;面对这样一个问题：为什么.net能够比java更加快速的完成开发？恐怕最大的优势在于Microsoft提供了一个无比强大的IDE。它的强大在于适 用于各个层次的开发人员。当你还是一只小小鸟的时候，可以学会drag&amp;amp;drop，当你开始写代码的时候，你会发现设计器生成的代码是多么愚蠢和 臃肿。当你自己能够写出干净的代码时，可能再也不想切换到设计器中去了（切换/F7）。我相信我们中的大部分人，即使是最资深的Windows开发人员， 用VS写代码比用记事本的效率要高很多，因为我们毕竟需要IDE的帮助以提高我们的生产力。但是在那个没有Resharper的年代里，你的生产力顶多停 留在两个轮子的时代，另两个轮子，只有在你熟悉了Resharper以后才能转动起来。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;Resharper能带给你的效率提升如此之高，以至于在我订阅的所有.net专家的blog里面，所有的人都在关注它。要知道他们都不是一般的 coder，大多数是CTO或者技术总监。当我三个月前开始使用Resharper时，想要搜到一些中文的介绍，或者是经验性的文章却十分困难。大多数人 似乎不关心它的存在。博客园里充斥着因为安装Resharper而拖慢系统，导致VS不稳定，机器响应速度下降，VS启动速度下降等等的论调。幸运的是， 这些在我这里都没有遇到，也许是因为2G的内存的缘故，反正devenv.exe所占的200~300m内存并没有使我感觉机器在变慢，而且我的VS几乎 是一直运行中，没有一会关闭一会打开的时候，所以我只需要忍受Resharper在加载时的半分钟初始化一次就够了。相比于它能带给你的效率提升，这些问 题都是微不足道的（一家之言）。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;如果你在VS环境下写代码时几乎不用快捷键，那我觉得你没有必要往下看了。因为Resharper是通过快捷键来提升你的效率的。但是相信我，如果你曾经在星际中一遍一遍被人虐的话，你应该能体会到快捷键带来多么大的变化。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;首先在安装完Resharper之后，你主要通过三种方式用到或看到它：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;一是在菜单栏上，如果是3.0版本的话，它会默认的屏蔽掉&amp;ldquo;重构&amp;rdquo;菜单栏，也就是说你按Alt+R的时候，弹出的是Resharper的下拉菜单而不是&amp;ldquo;重构&amp;rdquo;，为什么？因为你不再需要&amp;ldquo;重构&amp;rdquo;菜单了。如果是以前版本，比如2.0，似乎需要您手工的完成这一步，方法如下：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;工具&amp;mdash;&amp;mdash;自定义&amp;mdash;&amp;mdash;重排命令，然后把&amp;ldquo;重构&amp;rdquo;菜单删除，毫不犹豫地！&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;你可以简单地这样体验一下：Alt+R，N，回车，就可以在当前项目中添加一个类，还记得以前你是怎么做的吗？在解决方案资源管理器中选中一个项目，然后右键，在长长的弹出菜单中选择：添加&amp;mdash;&amp;mdash;类，如果你的电脑够慢的话，在3秒钟之后才会弹出一个对话框来问你文件名。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;另一种方式是：看到竖直滚动条了吗？在它的右边多出一个边框来，上方是一个&amp;ldquo;绿色/黄色/红色&amp;rdquo;的方框，而边框上会出现一道一道红的橙的横杠。什么 意思：当红杠出现时，表明你的代码在那个位置出现了错误，如果是橙杠，表明那是一个警告，多半是没有检测null值或者声明后未使用之类。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;如果当前文档的所有错误和警告都得到了适当的处理，则不会再出现横杠，而最顶上的方框也会变成绿色；&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;如果没有错误但有警告，则是黄色，这时编译可以通过；&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;如果那个方框是红色，则表示有编译通不过的错误，这时你应该通过点击红杠，去修改您的代码。如果你即使编译，也会报错并无法生成。这样做使你在写代 码时就能及时得发现你的错误，而不需要等到编译时。这样做也使你的效率得到了提高。因为编译至少要耗去您半分钟的时间，并且强烈的读写您的硬盘，特别在你 的硬盘转速慢时，比如笔记本上，这一过程是那么的令人心痛。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;第三种接触到Resharper的自然是快捷键了。右键菜单当然也有很多的功能，但是那太弱智了，太慢了。我们需要的是专业，我们用的工具定位不是 打毛衣的大妈，而是开发的专业人员，如果你连快捷键都无法掌握，那真的得对你的开发技巧打一个大大的问号。试想一下这个场景，当你脑子里冒出这个念头， 啊，这个类，应该提出接口来，要这个方法，这个，和这个，还有这两个事件。啊，不行，我现在就得提，不然就忘了。我得新建一个接口，点哪个来着。啊，在哪 里新建&amp;hellip;&amp;hellip;建好了，对了我要提取哪几个方法来着。（我晕死）许多时候你的念头都是一闪而过的，需要你的操作也相应的跟上。这个操作在Resharper就 是，把光标移动到类名上，然后点Ctrl+Shift+R，除了你想要的提取接口，其他的重构功能也一目了然。而且远比VS自带的要快。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;至于右键，如果你刚开始实在记不住快捷键，只能使用它了，或者Alt+R，实际上它也要比右键菜单快一点点。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;真正激动人心的是在随着你逐渐熟悉Resharper以后，能够带来的诸多方便之处，我将会在接下来的一系列随笔中讲述。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&lt;span style="color: #3468a4; font-size: 10pt;"&gt;&lt;strong&gt;Resharper进阶二：快速定位&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 10pt;"&gt;摘要&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;快速代码定位的核心就是三个功能：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 转到定义：Ctrl+B; &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 查找所有使用：Alt+F7; &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 从这里浏览：Ctrl+Shift+G. &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;&lt;span style="text-decoration: underline; font-size: 10pt;"&gt;转到定义&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;当你的光标在一个变量上时，按下Ctrl+B就会跳转到这个变量声明的地方。这可能是某一个字段，某一个方法的参数或者一个局部变量。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;当你的光标在一个类型上时，按下Ctrl+B可能发生两种情况，一是当这个类型的定义在你的项目中有源代码时，会跳转到这个源代码文件。如果没有源 代码，则会打开一个对象浏览器。有一些使用者更期望跳转到元数据文件，但是我更喜欢对象浏览器，这样类型的公有属性、方法、事件都被列出来了，可以一目了 然。就我的经验，列表永远比下拉框，选框更加易于查找。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;但是这个功能有一个副作用，多年使用Windows的经验告诉我们，按住Ctrl的时候点鼠标左键，默认的操作是选中一整个单词，但是在安装了 Resharper以后，这个操作实际上等于Ctrl+B，也就是说可能你想选择这个变量的名字，然后复制到别处去，可是却跳转到了这个变量的声明处，不 由得让你一阵恼火。目前我还没有找到选项屏蔽掉这个操作，所以，只有用鼠标双击来选择单词了（提示：如果跳转到了别处，想返回，按Ctrl+-）&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="text-decoration: underline; font-size: 10pt;"&gt;查找所有使用&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/renji/113832/o_sshot-2.png" alt="" align="right" /&gt;Alt+F7，有感觉吗？不错，就是TotalCommand里搜索的快捷键，没有用过TC，还在用资源管理器？那可不应该。简而言之， Alt+F7将你光标所在位置的变量的所有使用以列表的方式显示出来，显示结果的窗体可以像其他窗体那样停靠。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;它的优点包括：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;可以从所有使用中挑选只显示read usage或者write usage，有时我们只是想知道某个变量在哪里被改变了。找到的位置前的图标也告诉你这点。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;可以在下方预览，即使我们列出所有使用，也不想跳转到每个使用它的地方，这时预览可以帮你大忙。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;当你在代码编辑器中改动了某些使用时，比如删除了某行，那么在查找结果的窗体中，会用删除线表示出来。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;默认的是寻找解决方案中所有的使用，并且按照命名空间来组织，非常便于选择。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;我现在已经记不起来在没有Alt+F7之前我是怎么查找的。反正现在我几乎不怎么样Ctrl+F了，除非我忘记了某个变量的名字。如果是这样，多半 这个名字需要refactor，那也是Resharper的另一大块功能所在。也许有人对这个功能嗤之以鼻，但是用过CAB的人都知道，订阅和发布某个事 件的签名，完全是字符串，如果你不用搜索来找到它的话，你都不知道这个控件的鼠标点下去，到底有多少个处理程序在背后开始工作了。用了Alt+F7来搜索 这个字符串，等于在查找背后所有的调用者。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;不过提示你，当光标停留在一个类型上时，要慎用Alt+F7，假设是一个string，你应该能想象到得找到多少个使用。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="text-decoration: underline; font-size: 10pt;"&gt;从这里浏览&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;实在不知道用什么中文来翻译这个navigate from here...，只好直译了。你可能在这些时候需要它：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;当你要找这个类的所有继承者，或者接口的所有实现者时，按住Ctrl+Shift+G会弹出一个菜单，其中有Inheritor，用方向键来选择并 回车，如果只有一个实现，那么直接跳转到这个实现，如果有多于一个，或者因为使用了partial分布到好几个文件中，会再弹出一个菜单来供你选择。与此 类似，如果你选择base，则会跳转到基类或接口中去。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;同时这个功能也囊括了前面的转到定义和查找使用，如果你偷懒的话，只记住这个就可以了，虽然Ctrl+Shift+G的快捷键有一点生僻，但是用着用着你就发现顺手了。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;这个功能不可不谓是用来熟悉一套框架的利器，可以让你迅速找到某个接口的所有实现，和Alt+F7合用，可以让你在一个庞大的解决方案中如鱼得水。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;下一次，我们该来讲一讲威力无比的Alt+回车了&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;&lt;strong&gt;Resharper进阶三：快速完成&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;常常写代码的人，应该都对Visual Studio的智能感知有一定的好感，通过它，在输入比较长的对象名称时不觉得吃力了。恐怕这是.net平台比其他平台的代码更加易读的一个因素，因为每 个变量名称都比较有意义，而不是晦涩的varIdx，pElemDisp之类了。尽管这样看起来很酷。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;在没有Resharper之前，Visual Studio的自动完成功能就很强大了。只是它定义的快捷键实在是让人不顺手。Alt+右方向键，我怎么都无法不低头按它俩。于是我把快捷键改成了Ctrl+;(分号)这样按起来方便多了。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Resharper则在Visual Studio的基础上又增添了一些功能。比如说，在原生的自动完成中，关键字，比如private,override这些，是没有提供自动完成的（有吗， 我已经不记得了）。还有这下面一些，则是Visual Studio原生确实没有的：&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;当你写一个新的字段时，比如string _field; Resharper会自动地在前面为你加上private，也许有的人觉得多余，但我觉得是应该的。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;当你输入foreach的时候，模板会自动的出现，方便你输入集合还有子项的类型与名称，回车之后就进入到块中。这类的模板你可以自行定义，并在团队中共享。这样在处理某些特定的场景时，代码的执行基本一致。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;在你需要输入{的时候，Resharper能够自动的为你加上}，并且光标位于其中，如果你敲回车键，两个括号和你准备接下来要写的块内的代码都缩进对齐了。这个功能远远不只说起来那么简单，当你发现自己可以因此忘记每次括回去的时候，是多么的惬意。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;同理，在你输入[或者(的时候，Resharper也如此为你添加成对的括号。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;这样也有不方便的时候，比如你在调用某个方法的时候，其实你只是想输入(，然后开始写参数，再写)，然后写分号，可是它偏偏帮你写了，特别是当参数还是一 个字符串的时候，你输入"，它又自动的帮你写了"，并且把光标置于其间，好多时候搞得你很恼火。因为你要敲end键挪到行尾，再写;，而end键也很难在 你不低头的情况下按准。实际上，这时你的选择还不如老老实实写上")，也比敲end来的快。所以为方法自动的添加括号的功能，只有在不带参数的情况下使用 才最惬意。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;总的说，自动完成函数的输入工作，还是一个很实用的功能，现在你需要输入ToString()的话，只需要最多敲四个了ToS和;就可以了，其他的部分Resharper都自动为您完成。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;最后再卖弄一下，将自动完成的快捷键换成Ctrl+;的话真的非常棒，即使你没有安装Resharper，也可能考虑把原生的快捷键更改掉。在我所有用的电脑上，我都偷偷的把Ctrl+;添加进去了。因为这两个键实在是太好摁了。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&lt;span style="font-size: 10pt;"&gt;&lt;a  href="http://www.cnblogs.com/renji/archive/2007/12/06/resharper_altenter.html"&gt;&lt;span style="color: #3468a4;"&gt;Resharper进阶四：万能的Alt+Enter&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;万能的Alt+Enter能够帮你完成很多编写代码过程中的dirty work，总结起来大概是这么些：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;帮你实现某个接口或抽象基类的方法； &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;提供你处理当前警告的一些建议； &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;为你提供处理当前错误的一些建议（不一定是真的错误）； &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;为你简化当前的臃肿代码； &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&lt;span style="text-decoration: underline; font-size: 10pt;"&gt;帮你实现某个接口或抽象基类的方法&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;这个功能Visual Studio也已经帮你提供了，就是每次你在类名的后面加上:ISomeInterface的时候，它会提示你按Tab键就生成接口中所有方法的存根。如 果你这时没按，后来，你还可以把鼠标悬停在这个接口名，会出现一个小小的，小的不能再小的，费死劲才点得中的智能感知符上，然后生成方法。在安装了 Resharper以后，这个功能被视为与其它警告一样的处理办法。如果你:ISomeInterface以后，又没有实现它的方法，这一行代码会打上波 浪号，表示有警告或者错误发生。按下Alt+Enter，则会为你生成这些方法。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;不要觉得我小题大作，在你修改了ISomeInterface这个接口以后，比如添加了一个Initial方法，这时最快的办法是：在 ISomeInterface上点Ctrl+Shift+G浏览到这个接口的实现类，然后Alt+Enter，这个类中立即就添加了Initial这个方 法，并可开始编写代码。&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline; font-size: 10pt;"&gt;&lt;br /&gt;提供你处理当前警告的一些建议&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;有的时候你可能会忽略的一些细节，Resharper不会忽略，比如你用了隐式类型转化：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;Button btn = sender as Button;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; //隐式类型转化&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;而没有接下来检测它是否为空，就直接使用。这时Resharper会提示你一个警告。如果你按下Alt+Enter，它会把你之后的代码包括在一个if语句中：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;if (btn != null)&lt;br /&gt;{&lt;br /&gt;//你接下来的代码&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;不过令我不满意的是，我时常要的是这样的效果：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;if (btn == null)&lt;br /&gt;return;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;不知道这个行为能不能在配置中修改。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="text-decoration: underline; font-size: 10pt;"&gt;为你提供处理当前错误的一些建议&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;被Resharper标记为红色的即为错误了，有时错误也可能是你有意为之。比如你随意地在View.cs中写下了：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;_presenter.GetAllLayers();&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;而实际上你的Presenter.cs中还没有这个方法，那么按下Alt+Enter就会立即在Presenter.cs中添加这个方法，并跳转到 该方法，如果Presenter不止分布在一个文件中，会弹出对话框让你选择。相比于Visual Studio经常臃肿的对话框，Resharper的弹出对话框往往十分直接，你只需立即用方向键选你需要的并回车。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="text-decoration: underline; font-size: 10pt;"&gt;为你简化当前的臃肿代码&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;你的代码如果被Resharper视为多余的，那么会以灰色标识出来，例如：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;this.Text = "标题栏文本"&amp;nbsp;&amp;nbsp;&amp;nbsp;//this为灰色&lt;br /&gt;btnOK.Click += new EventHandler(btnOK_Click)&amp;nbsp;&amp;nbsp;//new EventHandler为灰色&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;多余的代码并无害，只是显得不那么简洁，如果你头一次在安装了Reshaper之后打开你之前编写过的代码会发现大量的灰色代码。如果你查看设计器 生成的代码，会发现Reshaper的竖直条几乎变成了橙色的一条了。基本上，你都可以用Reshaper为你自己的代码瘦瘦身，设计器产生的，比如窗 体，或者Dataset还是不要动的好。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;span style="color: #3468a4; font-size: 10pt;"&gt;Resharper进阶五：高效的代码结构调整&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;通过我之前介绍过的Alt+F7和Ctrl+B，你可以很快的在一个代码文件中知道函数的调用情况。但是有的时候，代码文件非常复杂，里头有几十个 函数都算是小儿科，甚至一个构造函数就有N多个重载。这时你想清楚的了解文件中各个函数，属性，字段，事件等等，就不是那么轻而易举的事情了。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;在Visual Studio中，你可以通过这些方式组织或审视你的代码：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;用region，这是最常使用的，我最喜欢的分法是：Field, Property, Event, EventHander, 然后根据实际情况，Constructors(如果构造函数重载多的话),Helper(如果有许多公用的流程的话）,再就是跟某个特定任务想关联的一系 列方法组成一类。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;当你用region把你的代码组织好了以后，确实显得很简洁。但是问题来了，当一个同事check了你的代码，然后准备修改，这时，他想要理清你的思路， 于是在你的代码里开始奋战，啊，这个调用了那个，噢，这个地方可以接受0个或者1个或者三个参数&amp;hellip;&amp;hellip;过了一个小时，他总算可以开始写他要改的那个部分了。 region的缺陷就是让写的人很明白，而读的人还是很费劲。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/renji/113832/r_aabeg.png" alt="" width="405" height="480" align="right" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;用对象浏览器可以把你的方法结构展现出来，但致命的是它是按照字母排序的，对于我们中国人来说，实在是难以找到像 FilterSelectableLayerByName这样一个其实自说明性很强的方法来。而实际上你又把它装进了一个&amp;ldquo;图层控制&amp;rdquo;的region里 面，而你的读者却无法参透你的用意来。（如果你常常下载codeproject上的代码的话，会知道这种事情常有。）&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;说了这么多，其实就是想把对象浏览器和region的长处结合起来，既可以清晰的分类，又能一目了然的找到需要的方法。Resharper这时帮上你的大忙了。用Ctrl+F12，就弹出一个像右边这样的窗口来。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;这里面，按照你的region来显示，这样读你的代码的人也受益了。每个方法的参数，返回值都如UML一样列出来。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;如果需要浏览到某个方法，直接双击它的名字； &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;如果要把某几个方法装进一个新的region，则可以选中方法，点工具栏上的像框的那个图标；点叉则会删除这个region并把相应的方法移到外面来。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;如果要调整某个方法的位置，比如把它移到别的region里面去，只需要在这里拖动这个方法即可。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;更可喜的是，你想要的从这里浏览、找到所有使用和重构的功能也在这里提供了，在某个方法上右键你就能开始操作。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;这绝对是Resharper里面最酷的功能，你快打开Visual Studio试一试吧。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&lt;span style="color: #3468a4; font-size: 10pt;"&gt;Resharper进阶六：重构才是王道（上）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;重构是一种精神，证明你在致力于提供高效的、精炼的、健壮的代码，而不是凌乱的、晦涩的、漏洞百出的代码。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;在Visual Studio 2005中，微软第一次提供了重构工具。但是不够，远远不够。我们需要的重构是非常广义的，我们想要对代码进行快速的调整，快到我在想什么我的工具就能做 什么。这才是追求重构的境界。所以在这个意义上，几乎Resharper为你提供了巨大的生产力。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;Visual Studio 2005提供的重构包括了如下：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;封装字段 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;提取方法 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;提取接口 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;提升局部变量 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;移除参数 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;重命名 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;重新排列参数 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;这些方法在Resharper中全部都支持（但Resharper的重构远不止这些），它们对应的变成了：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;封装字段 &amp;mdash;&amp;mdash; Introduce Field &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;提取方法 &amp;mdash;&amp;mdash; Extract Method &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;提取接口 &amp;mdash;&amp;mdash; Extract Interface &lt;span style="text-decoration: underline;"&gt;（另增加了Extract Superclass提取为基类）&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;提升局部变量 &amp;mdash;&amp;mdash; Introduce Variable &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;移除参数 &amp;mdash;&amp;mdash; 移到Change Signature（改变方法签名）中 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;重命名 &amp;mdash;&amp;mdash; Rename &lt;span style="text-decoration: underline;"&gt;（Resharper会根据对象的类型名称，提供你几个可选的最合适的名称）&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;重新排列参数 &amp;mdash;&amp;mdash; 移到Change Signature（改变方法签名）中 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;我知道很多人都声称自己E文不好，但是，这确实都是很简单的单词，难不倒任何人的。这些重构的功能是人所共知的，下面就告诉大家一些Resharper特有的，首先，重构的快捷键是Ctrl+Shift+R：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;1、对于类，除了提取接口、基类，你还可以移动它到其他的命名空间和移动到别的文件里，这是一个实用的功能，也许你不信，但是我这真的有个人，把所有的business entity都写在一个DataObject.cs里面。你难以想象，我打开它时嘴张了多大。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;2、对于字段，提供了：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;Safe Delete，会检测所有使用到的地方，并询问如何删除； &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;Pull Member Up和Push Member Down，可以把这个字段在基类和继承类中移动； &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;Use base type where possible，尽可能的使用基类，由于ArcGIS平台是基于com组件的，很多时候我们需要的是IGeometry, IPointCollection这样的接口所公开的属性或者方法，于是你没有必要保存一个polygon对象，而可以使用基类型； &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;Encapsulate Field，封装字段，但是这个功能远没有另一个提供同样功能的操作有用。我可以在后文中来讲。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;3、对于方法，提供了：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;与字段类似的功能，此外； &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;Change Signature，更改函数签名，包括更改名称，返回值类型，参数的各种信息，添加和删除参数，相当实用。如果你是在重写方法上操作，会提示你是否到基类中更改。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;Make Static，如果Resharper检测到这个方法并没有与非静态成员相关联的话，往往会自动地提示你（以黄色横杠的形式出现）可以改为static，如果你自作主张的对一些方法进行修改也无不妥，但后果自负。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;Extract class from parameter，如果你的参数有七个八个，那是否考虑用一个类来封装这些参数呢，于是这个功能应运而生。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;Method to Property，顾名思义，如果还在使用GetField()或者SetField(..)的话，你一定是从非.net星来的。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;4、在方法体内部：&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Extract Method，不用介绍了吧。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Introduce Variable/Parameter/Field，取决于你光标所在的对象，可以提供转化的功能。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Inline Variable：就是把：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;IPoint point = new PointClass();&lt;br /&gt;point.PutCoords(_point.X, _point.Y);&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;变成这样子：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;new PointClass().PutCoords(_point.X, _point.Y);　　//这是个糟糕的例子&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;５、重命名：&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;为什么重命名值得挑出来讲，因为Resharper提供了命名建议这一金子般的功能。于是，想改名为易读性强的名字，不是那么费脑子的事情了。 Resharper会根据这个变量的类型，为你提供几个备选名字，名字列表是列在光标位置上的（对方法重命名会弹出对话框），你只需要用方向键选择并敲回 车即可，这种名字多是将类型的名字首字母改为小写得来的，甚至刨根到基类的类型名，你还可以在此基础上加以改进。如果你还在用i,j这种晦涩的名称，请迅 速的把他们改为outIndex, pointCount之类可读的名称。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Resharper其实提供了更先进的功能，在你命名一个变量时，就有快捷键为你提供备选名字，但是Ctrl+Space是我们宝贵的输入法切换键，于是，我对变量名的敲定，往往是先起了一个较烂的，然后重命名的。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;还有一些更广义上的，帮助你对代码进行调整的功能，我另写一篇吧，不然太长了。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&lt;span style="color: #3468a4; font-size: 10pt;"&gt;Resharper进阶七：重构才是王道（下）&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span style="text-decoration: underline; font-size: 10pt;"&gt;插入代码&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Resharper的Alt+Insert快捷键提供给你插入代码的功能。由于这两个键非常难按（这是我的感受），真正在使用的时候，我用的是Alt- R-C-G，意指打开Resharper菜单&amp;mdash;&amp;mdash;Code&amp;mdash;&amp;mdash;Generate，都只需要你的左手，这样你可以右手一边比划，一边还在写代码，多酷啊。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;生成的代码中最常用的是构造函数和属性，当你没有私有字段的时候，只会生成一个空的默认构造函数，而且没有生成属性的功能。在你有私有字段的情况下，生成之前会让你选择哪些私有字段需要作为构造函数的参数，并生成初始化的代码，这样编写重载极其方便。生成属性也类似。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;再次常用的就是重写基类或者接口的方法了。选择Implement Interface Member或者Override Inheritate Member，Resharper会查找当前类的基类或接口，然后按继承层次列出来，根据你的选择重写或实现这些方法。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;span style="font-size: 10pt;"&gt;不 是太常用的是生成Equals和GetHashCode方法，在我的应用场景中很少重写它们。但是根据《.NET设计规范》，不管是值类型还是引用类型的 Equals都建议重写，并且应该重写GetHaseCode方法，因为它们相互依赖。如果你有这个需求，那么生成这三个函数一定能够帮你的大忙。 &lt;/span&gt;&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;&lt;span style="text-decoration: underline; font-size: 10pt;"&gt;包围代码&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Visual Studio也提供了外侧代码这个功能，你可以按Ctrl+K,Ctrl+S来激活这个功能，虽然我并没有任何鄙视Visual Studio的意思，但是Resharper的快捷键确实更加合理（我在按下Ctrl的时候真的很难按下S），条目也更加清晰。Resharper中这个 功能的快捷键是Ctrl+Alt+J，然后你就可以选择将当前行的代码包围到try-catch块或者using中了。这是很高效的方法，我们倾向于在开 发的早期尽量不捕获异常，而在中后期才加入异常处理机制。于是你某一个时期有大量的工作是把他们扩到try-catch块中。而你要使用支持 dispose对象时，最好的方法是使用using块。（卖蛋糕的，当我知道我的代码不是最优的时候，我总是寝食难安），这里自然也有把代码扩到 region块中的功能，也是常用功能之一。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="text-decoration: underline; font-size: 10pt;"&gt;调整方法的位置&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;前面我曾说过，如果要调整方法的位置，可以在代码结构窗口中拖放操作。如果你觉得只是把一个方法移动到前面去，却不得不打开代码结构窗口太过重量级，那么 有轻量级的方法：当光标位于方法的名称上时，用Ctrl+Shift+上下键就可以移动方法的位置，包括方法的xml注释，但如果你用的不是三个/的 xml注释而是两个/的，那么就对不起了。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="text-decoration: underline; font-size: 10pt;"&gt;其他琐碎的功能&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;你肯定常常会复制粘贴当前行的代码，例如在使用StringBuilder.Append的时候，Ctrl+D可以简化你Ctrl+C,Ctrl+V的工作。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;曾经有一个组合键可以注释掉当前行，还有另一个是取消注释，但是我已经淡忘了，因为Ctrl+/才应该是真正属于它的快捷键，再次按下就可以取消注释。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;关于Resharper的重构功能就是这些，我可能天真地把很多额外功能都算在重构里了，但是它确实能够帮助你快速的对代码进行调整和优化。所以，请不要深究我对重构的概念认识是不是混乱。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&lt;span style="color: #3468a4; font-size: 10pt;"&gt;Resharper进阶八：增强的浏览功能&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span style="text-decoration: underline; font-size: 10pt;"&gt;浏览参数的方式&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;输入方法的时候，我们已经习惯了由IDE提供给我们的参数提示，极大了方便了我们选择重载方法。在没有Resharper的环境下，Visual Studio已经做到了。那么为什么Resharper还要增强这个功能并大获好评的。试问，Visual Studio那窄窄的一行参数提示有没有让你觉得憋屈。我们有19寸的大屏幕，1600的分辨率，却不得不盯着那窄条条，小心翼翼的按着上下键寻找我们需 要的重载。至少，开发Resharper的家伙是受不了这种憋屈的，于是大开大阖版的参数列表出现了，长长的参数重载被以列表的形式展现出来，当你在使用 GDT+方法，看到巨大的参数重载时，你会从心底里发出感叹：卖蛋糕的。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;同时，Resharper展示参数的快捷键变成了Ctrl+P，如果你觉得屏蔽了打印的快捷键简直是在开玩笑的话，那么问问你自己有多少次打印过自己的代码。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="text-decoration: underline; font-size: 10pt;"&gt;浏览打开过的文档&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;我窃以为你已经知道了在Visual Studio中切换文档的方式，它们包括：&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Ctrl+Alt+上下方向键，可以在打开的文档中切换；&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Ctrl+Tab，不仅可以在文档之前切换，并可以切换到解决方案文件夹，属性视图去，需要按左右键。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;但是怎么样打开最近编辑后关闭的文件呢，Visual Studio很客气的又没有提供此功能，于是留给了Resharper。在我这里这个快捷键是Ctrl+E,Ctrl+E，没错，按两次。如果你的不是， 那么在Resharper-View-Recent Files菜单下看看它是什么。因为你会时常用到。打开一个文件的列表，用方向键选择并回车就会在编辑器中打开。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;很多人说Resharper的性能问题，我想，一个可能的原因是打开的文档太多了，如果你有时刻关闭不需要的文档的习惯，性能或许不会那么差，并且你可以随时打开这些你关闭了的文档，就像在已经打开的文档中切换一样的方便。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;我的团队中没有用到敏捷开发那些高级的东西，但是我们还是保持着每次改动都仅涉及两三个文件的好习惯，并且频繁的commite到源代码服务器上去。所以，我每次真正要编辑的文件不多，性能不是问题。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt;"&gt;和大家分享了很多Resharper使用的技巧，点点滴滴都已经融入我日常的开发工作中了。当然很不全面，例如与Nunit的集成，由于我们不是测试驱 动，所以没有任何体验，自然也不敢大放厥词；也很主观，我觉得它好，你可能觉得它不好，萝卜青菜各有所爱。再说，它也不是没有白痴的地方，在文档上点右键 增加的一个Close All功能，可以关闭所有打开的文档，关闭了干什么，对着一个空白的屏幕发呆么？我觉得原生的&amp;ldquo;除此之外全部关闭&amp;rdquo;就够了。还有一个定位的功能 （Locate in Solution Explorer），真是没用，如果你在VS选项中设置了，在解决方案管理器中跟踪活动项，那么VS自动就给你定位了。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;不管怎么说，它带给我更快更方便的开发体验，把我从一些琐碎的，不人性化的功能中解放出来。从这一点上来说，我很希望越来越多的人喜欢上它，开始用它，并帮助它更好的发展。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;p&gt;原帖地址：http://hi.baidu.com/shouxin1014/blog/item/2fdf7fedf47df0322697918e.html&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guodashao/aggbug/1891565.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guodashao/archive/2010/11/29/1891565.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guodashao/archive/2010/11/29/1891556.html</id><title type="text">NetTiers模板属性说明 2.3.0——转帖</title><summary type="text">NetTiers模板属性说明 2.3.0 Nettiers-2.3.0.b2这是NetTiers 2.3.0.b2版的属性说明，比照以前的版本多了一些属性。做了一个Excel表，但无法在这里放下全部的信息。有空间可以上传就好了。属性名称默认值名称01.GettingStarted - Required　必填项ChooseSourceDatabase选择数据库MappingFilec:\NetTie...</summary><published>2010-11-29T14:20:00Z</published><updated>2010-11-29T14:20:00Z</updated><author><name>郭大少</name><uri>http://www.cnblogs.com/guodashao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodashao/archive/2010/11/29/1891556.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodashao/archive/2010/11/29/1891556.html"/><content type="html">&lt;p style="text-align: center;"&gt;NetTiers模板属性说明 2.3.0&amp;nbsp; Nettiers-2.3.0.b2&lt;/p&gt;&#xD;
&lt;p&gt;这是NetTiers 2.3.0.b2版的属性说明，比照以前的版本多了一些属性。做了一个Excel表，但无法在这里放下全部的信息。有空间可以上传就好了。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;table border="0" cellspacing="0" cellpadding="0" width="593"&gt;&#xD;
&lt;colgroup&gt;&lt;col width="251"&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col width="99"&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col width="243"&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;/colgroup&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  width="251" height="15"&gt;&lt;span&gt;属性名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;默认值&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="243"&gt;&lt;span&gt;名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;01.GettingStarted - Required&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;　&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;必填项&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;ChooseSourceDatabase&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;选择数据库&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="45"&gt;&#xD;
&lt;td  height="45"&gt;&lt;span&gt;MappingFile&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;c:\NetTiers\Output\Mapping.config&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;影射文件&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="30"&gt;&#xD;
&lt;td  height="30"&gt;&lt;span&gt;OutputDirectory&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;c:\NetTiers\Output&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;输出目录&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;RootNameSpace&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;根节点命名空间&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;01b.FilterbyIndividualObject - Optional&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;　&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;可选项&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;EnumTable&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;选择枚举表&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;SourceTable&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;选择需要生成的表&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;SourceViews&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;选择需要生成的视图&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;02.FrameworkGeneration - Optional&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;　&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;可选项&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;AutoIncrementBuildVersion&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;自动包含编译的版本&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;CustomCodeFolderName&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;App_Code&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;自定义代码文件夹名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;DotNetVersion&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;v3_5&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;DotNet版本&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;EntLibVersion&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;v4_1&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;微软企业库的版本&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;EqualitySemantics&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;Value&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;ExecuteSql&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;执行SQL&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeComponentLayer&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;None&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;生成组件层&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeDatabaseFeatures&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;None&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;包含数据库特性&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeGenerateDate&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;包含生成的日期&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeUnitTest&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;None&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;包含单元测试&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeWCFDataAttributes&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;包含WCF属性&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeXMLAttributes&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;包含XML属性&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;LaunchVisualStudio&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;运行&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;NameConversion&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;None&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;名称转换&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;SerializeEntityState&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;序列化实体状态&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;SQLFolderName&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;SQL文件夹名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;TimeStandard&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;Local&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;标准时间&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;ValidationType&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;Nettiers&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;验证类型&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;ViewReport&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;生成完成后显示报表&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;VisualStudioVersion&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;v2008&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;VisualStudio版本&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;03.Namespace - Required&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;命名空间&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;必填项&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;BusinessLogicLayerNameSpace&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;Entities&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;业务逻辑层命名空间&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;ComponenLayerNameSpace&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;组件层命名空间&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;DataAccessLayerNameSpace&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;Data&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;数据访问层的命名空间&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;UnitTestNameSpace&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;UnitTests&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;单元测试命名空间&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;04.General - Advanced&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;　&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;高级选项&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;CompanyName&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;公司名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;CompanyURL&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;公司网址&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;SignAssembly&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;SNK公钥&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;05.WebLibrary - Advanced&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;　&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;高级选项&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;DataSourceEnableTransactionDefault&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;GenerateWebLibrary&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;生成WebLibrary&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeDesingTimeSupport&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;包含设计时支持&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;06.Web - Advanced&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;　&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;高级选项&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;AttemptCreateLocalVirtualDirectory&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;尝试创建本地虚拟目录&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;GenerateWebService&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;包含WebService&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="30"&gt;&#xD;
&lt;td  height="30"&gt;&lt;span&gt;WebServiceOutputPath&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;c:\NetTiers\Output\WebServices&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;WebService的输出路径&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="30"&gt;&#xD;
&lt;td  height="30"&gt;&lt;span&gt;WebServiceUrl&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;http://localhost/Services&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;WebService的URL&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;06b.WebSite - Advanced&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;　&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;高级选项&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;DateFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;MM/dd/yyyy&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;日期格式&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;GenerateWebSite&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;创建Web站点&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;GenerateWebSiteAdmin&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;创建Web站点管理员&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeAtlasLibrary&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;包含微软的Ajax库&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeAtlasToolkit&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;包含Ajax扩展工具&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;OverwriteWebConfig&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;覆盖web.config文件&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;UseWebAppProject&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;使用web项目&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;WebAdminSiteName&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;管理员站点名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;07.CRUD - Advanced&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;　&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;高级选项&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;AllowCustomProcMultipleResults&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;CSPUseDefaultValForNonNullableType&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;自定义存储过程为nullable类型使用默认值&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;CustomNonMatchingReturnType&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;DataSet&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;CustomProcedureStartsWith&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;_{0}_&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;自定义存储过程的前缀&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;DropStyle&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;Entity&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;选择Entity的话生成後Drop删除已经生成的存储过程,选择All的话,会删除满足存储过程前缀,不满足自定义存储过程前缀的存储过程&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeCustoms&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;包含自定义存储过程&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeDelete&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;包含delete存储过程&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeDrop&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;是否生成drop语句,如果是则根据DropStyle生成&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeFind&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;生成Find存储过程&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeGet&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;包含Get存储过程&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeGetList&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;包含GetList存储过程&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeGetListFK&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;生成根据外键查询的存储过程&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeGetListIX&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;生成根据唯一键查询的存储过程&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeInsert&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;生成Insert存储过程&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeManyToMany&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;生成多对多关系&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeRelations&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;生成关联&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeSave&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;生成保存&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IncludeUpdate&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;生成更新&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;IsolationLevel&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;None&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;事务隔离级别&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;LibraryPath&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;References&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;ParseDbColDefaultVal&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;使用数据库字段默认值初始化实体属性&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;RetryEnabled&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;允许重试,当执行出错时允许重试&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;RetryMaxAttempts&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;5&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;重试次数&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;RetrySleepStyle&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;Constant&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;重试等待类型&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;RetrySleepTime&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;1000&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;重试间隔时间&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;08.StoredProcedure - Advanced&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;　&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;高级选项&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;DeleteSuffix&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;_Delete&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;存储过程delete语句的前缀&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;FindSuffix&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;_Find&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;存储过程find语句的前缀&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;GrantReadUser&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;GrantUser&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;存储过程grant语句的前缀&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;InsertSuffix&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;_Insert&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;存储过程insert语句的前缀&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;ProcedurePrefix&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;存储过程的前缀&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;SelectAllSuffix&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;_List&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;存储过程selectall语句的前缀&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;SelectSuffix&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;_Get&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;存储过程select语句的前缀&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;UpdateSuffix&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;_Update&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;存储过程update语句的前缀&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;09.Code Style - Advanced&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;　&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;高级选项&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;AliasFilePath&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;别名路径&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;BaseClassFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;{0}Base&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;基类{0}Base&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;ChangeUnderscoreToPascalCase&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;True&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;将_转换为Pascal&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;CollectionFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;{0}Collection&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;子集{0}Collection一对多时,会包含子表(数据)的集合&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;ColumnClassNameFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;{0}Column&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;ComparerClassNameFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;{0}Comparer&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;EntityFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;{0}&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;实体格式默认{0}&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;EntityKeyFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;{0}Key&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;EntityKey格式{0}Key&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;EnmuFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;{0}List&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;枚举格式{0}List&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;EventArgesClassNameFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;{0}EventArgs&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;EventHandlerClassNameFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;{0}EventHandler&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;GenericListFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;TList&amp;lt;{0}&amp;gt;&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;Nettiers自带的泛型集合之一TList&amp;lt;{0}&amp;gt;表使用&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;GenericViewFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;VList&amp;lt;{0}&amp;gt;&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;泛型集合之一VList&amp;lt;{0}&amp;gt;视图使用&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;InterfaceFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;I{0}&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;接口格式I{0}&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;ManyToManyFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;{0}From{1}&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;多对多格式{0}From{1}&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;MethodNames&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;方法名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;MethodNames BulkInsert&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;BulkInsert&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;批量插入方法的名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;MethodNames DeepLoad&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;DeepLoad&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;主从表查询方法的名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;MethodNames DeepSave&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;DeepSave&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;主从表保存方法的名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;MethodNames Delete&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;Delete&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;删除方法的名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;MethodNames Find&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;Find&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;查询方法的名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;MethodNames Get&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;Get&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;Get方法的名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;MethodNames GetAll&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;GetAll&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;查询全部方法的名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;MethodNames GetPaged&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;GetPaged&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;分页查询方法的名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;MethodNames GetTotalItems&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;GetTotalItems&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;查询行数方法的名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;MethodNames Insert&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;Insert&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;插入方法的名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;MethodNames Save&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;Save&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;保存方法的名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;MethodNames Update&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;Update&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;更新方法的名称&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;ProviderFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;{0}Provider&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;提供者命名格式&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;SafeNamePrefix&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;SafeName_&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;ServiceClassNameFormat&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;{0}Service&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;Service类名称前缀&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;StrippedTablePrefixes&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;tbl;tbl_&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;剥离表的前缀&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;StrippedTableSuffixes&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;_t&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;剥离表的后缀&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;UsePascalCasing&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;Style2&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;使用PascalCasing&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;09.WinFormLibrary - Advanced&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;　&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;高级选项&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;GenerateWinLibrary&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;生成WinLibrary&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;10.WebLibrary.Security - Optional&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;　&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;安全选项&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;EntityMembershipUserPKCol&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;GenerateWebSecurity&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;MembershipUserMapFile&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;td &gt;&amp;nbsp;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="15"&gt;&#xD;
&lt;td  height="15"&gt;&lt;span&gt;UseMD5Hash&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td  width="99"&gt;&lt;span&gt;False&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;td &gt;&lt;span&gt;使用MD5Hash加密&lt;/span&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;可以在资源管理器中,直接执行.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/LiYunQi/WindowsLiveWriter/NetTiers2.3.0_13114/Snap01_2.png"&gt;&lt;img title="Snap01" src="http://images.cnblogs.com/cnblogs_com/LiYunQi/WindowsLiveWriter/NetTiers2.3.0_13114/Snap01_thumb.png" border="0" alt="Snap01" width="418" height="370" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;原帖地址：&lt;/p&gt;&#xD;
&lt;p&gt;http://www.cnblogs.com/LiYunQi/archive/2009/03/15/1412681.html&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guodashao/aggbug/1891556.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guodashao/archive/2010/11/29/1891556.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guodashao/archive/2010/07/13/1776630.html</id><title type="text">lucene Field部分参数设置含义</title><summary type="text">/** * Field.Store.COMPRESS:压缩保存,用于长文本或二进制数据  * Field.Store.YES:保存 * Field.Store.NO:不保存 *  * Field.Index.NO:不建立索引  * Field.Index.TOKENIZED:分词,建索引 * Field.Index.UN_TOKENIZED:不分词,建索引 * Field.Index.NO_NOR...</summary><published>2010-07-13T09:24:00Z</published><updated>2010-07-13T09:24:00Z</updated><author><name>郭大少</name><uri>http://www.cnblogs.com/guodashao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodashao/archive/2010/07/13/1776630.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodashao/archive/2010/07/13/1776630.html"/><content type="html">&lt;p&gt;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Field.Store.COMPRESS:压缩保存,用于长文本或二进制数据 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Field.Store.YES:保存&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Field.Store.NO:不保存&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Field.Index.NO:不建立索引 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Field.Index.TOKENIZED:分词,建索引&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Field.Index.UN_TOKENIZED:不分词,建索引&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Field.Index.NO_NORMS:不分词,建索引.但是Field的值不像通常那样被保存，而是只取一个byte，这样节约存储空间&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Field.TermVector.NO:不保存term vectors &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Field.TermVector.YES:保存term vectors&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Field.TermVector.WITH_POSITIONS:保存term vectors.(保存值和token位置信息) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Field.TermVector.WITH_OFFSETS:保存term vectors.(保存值和Token的offset)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Field.TermVector.WITH_POSITIONS_OFFSETS:保存term vectors.(保存值和token位置信息和Token的offset)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guodashao/aggbug/1776630.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guodashao/archive/2010/07/13/1776630.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guodashao/archive/2010/01/29/1659023.html</id><title type="text">Win2003 防木马、权限设置、IIS服务器安全配置整理-转载</title><summary type="text">Win2003 防木马、权限设置、IIS服务器安全配置</summary><published>2010-01-29T02:29:00Z</published><updated>2010-01-29T02:29:00Z</updated><author><name>郭大少</name><uri>http://www.cnblogs.com/guodashao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodashao/archive/2010/01/29/1659023.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodashao/archive/2010/01/29/1659023.html"/></entry><entry><id>http://www.cnblogs.com/guodashao/archive/2009/12/23/1630850.html</id><title type="text">使用ASP.NET Global.asax 文件</title><summary type="text">Global.asax 文件，有时候叫做 ASP.NET 应用程序文件，提供了一种在一个中心位置响应应用程序级或模块级事件的方法。你可以使用这个文件实现应用程序安全性以及其它一些任务。下面让我们详细看一下如何在应用程序开发工作中使用这个文件。概述Global.asax 位于应用程序根目录下。虽然 Visual Studio .NET 会自动插入这个文件到所有的 ASP.NET 项目中，但是它实际上是一个可选文件。删除它不会出问题——当然是在你没有使用它的情况下。.asax 文件扩展名指出它是一个应用程序文件，而不是一个使用 aspx 的 ASP.NET 文件。 </summary><published>2009-12-23T10:01:00Z</published><updated>2009-12-23T10:01:00Z</updated><author><name>郭大少</name><uri>http://www.cnblogs.com/guodashao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodashao/archive/2009/12/23/1630850.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodashao/archive/2009/12/23/1630850.html"/></entry><entry><id>http://www.cnblogs.com/guodashao/archive/2009/09/09/ajax.html</id><title type="text">主流的ajax框架(整理了部分下载地址)</title><summary type="text">ajax 主流 框架</summary><published>2009-09-09T05:47:00Z</published><updated>2009-09-09T05:47:00Z</updated><author><name>郭大少</name><uri>http://www.cnblogs.com/guodashao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodashao/archive/2009/09/09/ajax.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodashao/archive/2009/09/09/ajax.html"/></entry><entry><id>http://www.cnblogs.com/guodashao/archive/2007/04/01/695855.html</id><title type="text">网络时代最具技术含量的N种方法</title><summary type="text">而网上广告在美国广告营业额中的占有量，将从6%升到10%。目前，这一屋顶广告噱头已吸引到很多人咨询，而他在eBay登记拍卖的一个虚拟屋顶广告位也有数以千计的人观看过，不过只有三个人出价，最高的是105美元。这跟目前最广泛使用的技术"内文相关广告"不同，"内文相关广告"是把与被访问网址的总内容有关的广告汇集在一起。</summary><published>2007-04-01T04:56:00Z</published><updated>2007-04-01T04:56:00Z</updated><author><name>郭大少</name><uri>http://www.cnblogs.com/guodashao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodashao/archive/2007/04/01/695855.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodashao/archive/2007/04/01/695855.html"/></entry><entry><id>http://www.cnblogs.com/guodashao/archive/2006/12/08/586708.html</id><title type="text">法国也要换图腾</title><summary type="text">法国也要换图腾</summary><published>2006-12-08T11:26:00Z</published><updated>2006-12-08T11:26:00Z</updated><author><name>郭大少</name><uri>http://www.cnblogs.com/guodashao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodashao/archive/2006/12/08/586708.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodashao/archive/2006/12/08/586708.html"/></entry><entry><id>http://www.cnblogs.com/guodashao/archive/2006/11/03/549574.html</id><title type="text">微软新闻两则</title><summary type="text">微软向Linux 妥协？！ </summary><published>2006-11-03T14:25:00Z</published><updated>2006-11-03T14:25:00Z</updated><author><name>郭大少</name><uri>http://www.cnblogs.com/guodashao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodashao/archive/2006/11/03/549574.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodashao/archive/2006/11/03/549574.html"/></entry></feed>
