• 面对这样一个问题:为什么.net能够比java更加快速的完成开发?恐怕最大的优势在于Microsoft提供了一个无比强大的IDE。它的强大在于适用于各个层次的开发人员。当你还是一只小小鸟的时候,可以学会drag&drop,当你开始写代码的时候,你会发现设计器生成的代码是多么愚蠢和臃肿。当你自己能够写出干净的代码时,可能再也不想切换到设计器中去了(切换/F7)。我相信我们中的大部分人,即使是最资深的Windows开发人员,用VS写代码比用记事本的效率要高很多,因为我们毕竟需要IDE的帮助以提高我们的生产力。但是在那个没有Resharper的年代里,你的生产力顶多停留在两个轮子的时代,另两个轮子,只有在你熟悉了Resharper以后才能转动起来。

    Resharper能带给你的效率提升如此之高,以至于在我订阅的所有.net专家的blog里面,所有的人都在关注它。要知道他们都不是一般的 coder,大多数是CTO或者技术总监。当我三个月前开始使用Resharper时,想要搜到一些中文的介绍,或者是经验性的文章却十分困难。大多数人似乎不关心它的存在。博客园里充斥着因为安装Resharper而拖慢系统,导致VS不稳定,机器响应速度下降,VS启动速度下降等等的论调。幸运的是,这些在我这里都没有遇到,也许是因为2G的内存的缘故,反正devenv.exe所占的200~300m内存并没有使我感觉机器在变慢,而且我的VS几乎是一直运行中,没有一会关闭一会打开的时候,所以我只需要忍受Resharper在加载时的半分钟初始化一次就够了。相比于它能带给你的效率提升,这些问题都是微不足道的(一家之言)。 

    如果你在VS环境下写代码时几乎不用快捷键,那我觉得你没有必要往下看了。因为Resharper是通过快捷键来提升你的效率的。但是相信我,如果你曾经在星际中一遍一遍被人虐的话,你应该能体会到快捷键带来多么大的变化。 

    首先在安装完Resharper之后,你主要通过三种方式用到或看到它: 

    一是在菜单栏上,如果是3.0版本的话,它会默认的屏蔽掉“重构”菜单栏,也就是说你按Alt+R的时候,弹出的是Resharper的下拉菜单而不是“重构”,为什么?因为你不再需要“重构”菜单了。如果是以前版本,比如2.0,似乎需要您手工的完成这一步,方法如下:

    工具——自定义——重排命令,然后把“重构”菜单删除,毫不犹豫地!

    你可以简单地这样体验一下:Alt+R,N,回车,就可以在当前项目中添加一个类,还记得以前你是怎么做的吗?在解决方案资源管理器中选中一个项目,然后右键,在长长的弹出菜单中选择:添加——类,如果你的电脑够慢的话,在3秒钟之后才会弹出一个对话框来问你文件名。 

    另一种方式是:看到竖直滚动条了吗?在它的右边多出一个边框来,上方是一个“绿色/黄色/红色”的方框,而边框上会出现一道一道红的橙的横杠。什么意思:当红杠出现时,表明你的代码在那个位置出现了错误,如果是橙杠,表明那是一个警告,多半是没有检测null值或者声明后未使用之类。

    如果当前文档的所有错误和警告都得到了适当的处理,则不会再出现横杠,而最顶上的方框也会变成绿色;

    如果没有错误但有警告,则是黄色,这时编译可以通过;

    如果那个方框是红色,则表示有编译通不过的错误,这时你应该通过点击红杠,去修改您的代码。如果你即使编译,也会报错并无法生成。这样做使你在写代码时就能及时得发现你的错误,而不需要等到编译时。这样做也使你的效率得到了提高。因为编译至少要耗去您半分钟的时间,并且强烈的读写您的硬盘,特别在你的硬盘转速慢时,比如笔记本上,这一过程是那么的令人心痛。 

    第三种接触到Resharper的自然是快捷键了。右键菜单当然也有很多的功能,但是那太弱智了,太慢了。我们需要的是专业,我们用的工具定位不是打毛衣的大妈,而是开发的专业人员,如果你连快捷键都无法掌握,那真的得对你的开发技巧打一个大大的问号。试想一下这个场景,当你脑子里冒出这个念头,啊,这个类,应该提出接口来,要这个方法,这个,和这个,还有这两个事件。啊,不行,我现在就得提,不然就忘了。我得新建一个接口,点哪个来着。啊,在哪里新建……建好了,对了我要提取哪几个方法来着。(我晕死)许多时候你的念头都是一闪而过的,需要你的操作也相应的跟上。这个操作在Resharper就是,把光标移动到类名上,然后点Ctrl+Shift+R,除了你想要的提取接口,其他的重构功能也一目了然。而且远比VS自带的要快。

    至于右键,如果你刚开始实在记不住快捷键,只能使用它了,或者Alt+R,实际上它也要比右键菜单快一点点。

    真正激动人心的是在随着你逐渐熟悉Resharper以后,能够带来的诸多方便之处,我将会在接下来的一系列随笔中讲述。

    参考地址:http://www.cnblogs.com/renji/category/114657.html

    http://www.cnblogs.com/yzlhccdec/archive/2008/06/15/1222268.html

    --------------------------------------------------------------------------

    不看不知道,一看吓一跳。

    http://download.jetbrains.com/resharper/ReSharperSetup.4.0.msi

    算号器下载

    原来我的代码中那么多的橙红!

  • 今天在安装  NetAdvantage_20071_CLR2x_NET 过程中出现如下错误 

    error 1609,an error occurred while applying security settings.
    aspnet is not a valid user or group.this could be a problem with the package,or a problem connecting to a domain co...
  • 期待已久的.NET Framework终于在本周开源了,微软在MS-RL协议下终于公开了.NET Framework源代码,我们只可以自由查看,不允许直接进行修改。第一批开放的源代码包括:

    .NET基本类库:
    System,System.CodeDom,System.Collections,System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading

    ASP.NET:
    System.Web, System.Web.Extensions

    Windows Forms:
    System.Windows.Forms

    Windows Presentation Foundation:
    System.Windows

    ADO.NET和 XML:
    System.Data
    System.Xml

    详情请访问ScottGu的文章:http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx

    如何在Visual Studio 2008中进行配置请参考这篇文章:Configuring Visual Studio to Debug .NET Framework Source Code

  • 今天在cnBeta上看到这样一条新闻

    微软发布了一个针对Windows XP和Windows Server 2003的更新.
    安装本更新程序可以提高使用 Ajax 的网站的性能.安装本更新程序之后,可能需要重新启动计算机.这是客户预览版. 预览阶段结束后,本更新程序的最终版本将通过 Windows Update 进行发布.

    下载:Windows XP 更新程序 (KB942840)
    下载:Windows Server 2003 更新程序 (KB942840)
    下载:Windows Server 2003 x64 Edition 更新程序 (KB942840)

    真是没有理由不用.Net框架开发了。

  • UrlRewritingNet.UrlRewrite

    在项目中添加这个UrlRewritingNet.UrlRewrite 2.0 Binar引用,再对web.config文件做如下几处(有颜色的部分)配置,就可以实现Url重写,并且解决了微软提供的UrlRewrite解决方案在Postback之后会暴露URL真实链接的问题。

    甚好,甚强大。 

    web.config 文件配置如下。

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <configSections>
          <section name="urlrewritingnet"  
                   restartOnExternalChanges="true"
                   requirePermission ="false" 
                   type="UrlRewritingNet.Configuration.UrlRewriteSection,
                       UrlRewritingNet.UrlRewriter"  />
        </configSections>

      <urlrewritingnet
        rewriteOnlyVirtualUrls="true"   
        contextItemsPrefix="QueryString" 
        defaultPage = "default.aspx"
        xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >
        <rewrites>
          <add name="Rule1"  virtualUrl="^~/(.*)/Detail(.*).aspx"            
               rewriteUrlParameter="ExcludeFromClientQueryString" 
               destinationUrl="~/Default.aspx?language=$1&amp;id=$2"
               ignoreCase="true" />
          <add name="Rule2"  virtualUrl="^~/test/(.*).aspx"            
               rewriteUrlParameter="ExcludeFromClientQueryString" 
               destinationUrl="~/test.aspx?t1=$1"
               ignoreCase="true" />
          <add name="Rule3"  virtualUrl="^~/noex/(.*)"            
         rewriteUrlParameter="ExcludeFromClientQueryString" 
         destinationUrl="~/noex.aspx?n=$1"
         ignoreCase="true" />

        </rewrites>
      </urlrewritingnet>

      <appSettings/>
      <connectionStrings/>

      <system.web>
        <httpModules>
          <add name="UrlRewriteModule"
              type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
        </httpModules>

            <compilation debug="false" strict="false" explicit="true" />
            <pages>
                <namespaces>
                    <clear />
                    <add namespace="System" />
                    <add namespace="System.Collections" />
                    <add namespace="System.Collections.Specialized" />
                    <add namespace="System.Configuration" />
                    <add namespace="System.Text" />
                    <add namespace="System.Text.RegularExpressions" />
                    <add namespace="System.Web" />
                    <add namespace="System.Web.Caching" />
                    <add namespace="System.Web.SessionState" />
                    <add namespace="System.Web.Security" />
                    <add namespace="System.Web.Profile" />
                    <add namespace="System.Web.UI" />
                    <add namespace="System.Web.UI.WebControls" />
                    <add namespace="System.Web.UI.WebControls.WebParts" />
                    <add namespace="System.Web.UI.HtmlControls" />
                </namespaces>
            </pages>
            <authentication mode="Windows" />
        </system.web>
    </configuration>