Visual Studio 2008裡Code Snippet是可提升Coding速度的好幫手,懂得善用的人能省下一大堆沒營養的打字動作! (保哥的這篇switch+enum密技就是很經典的例子)

最近在重翻舊程式,要將大量的資料庫存取程式改成不參與Transaction的LINQ to SQL資料存取,所以我就得把程式由原本的:

void SomeJob(string userId) {
    AfaUser user = DataHelper.QueryUserInfo(userId);
    ...囉哩叭嗦...
    ...胡搞瞎搞...
}

改成:

void SomeJob(string userId) {
    using (TransactionScope tx = 
           new TransactionScope(TransactionScopeOption.Suppress))
    {
        using (AfaDataContext db = DataHelper.GetAfaDataContext())
        {
            User user = db.Users.Where(u => u.UserId == userId);
            ...囉哩叭嗦...
            ...胡搞瞎搞...
         }
     }
}

手工修改時,步驟是:

  1. 先Copy & Paste using TransactionScope及using AfaDataContext的上半段在AfaUser那一列上方
  2. 找到胡搞瞎搞的最下方,補上兩個"}"
  3. 修改資料存取程式

其中 1) 跟 2) 用屁眼看都知道是不需用腦的機械化動作(謎之聲: 你的菊花會看東西哦? 我剛才偷放了本Objective-C教材在你屁股下,等下向我報告讀書心得。黑暗: 哇靠! 難怪肛肛一陣反胃... XD),懶惰如我,千方百計求偷雞是一定要的。

方法很簡單,我們可以自訂一個SurroundsWith Code Snippet,撰寫一個如下的AfaDataContextWoTrans.snippet檔案:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet?WT.mc_id=DOP-MVP-37580">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>Using AfaDataContext without transaction</Title>
      <Shortcut>
      </Shortcut>
      <Description>Wrap with using supressed TransactionScope and and using AfaDataContext</Description>
      <Author>Jeffrey Lee</Author>
      <SnippetTypes>
        <SnippetType>SurroundsWith</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>
      <Code Language="csharp"><![CDATA[            using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Suppress))
            {
                using (AfaDataContext db = DataHelper.GetAfaDataContext())
                {
                    $selected$
                }
            }]]></Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

開啟VS2008的【Tools選單/Code Snippets Manager】(或按Ctrl-K, Ctrl-B),加入該檔案所屬路徑,接著就可以輕輕鬆鬆寫Code囉~~~

且慢,那個複雜的XML要自己用Notepad慢慢敲會不會太累了? 懶當然就要懶到最高點,介紹好工具一枚---Snippy!

在輸入方格填入相關資訊,就可以得到.snippet檔案,很方便吧!

[2010-04-08補充]網友星寂提供了另一套Code Snippet編輯工具--SnippetEditor,並附有圖文並茂的解說,一併提供大家參考!

【延伸閱讀】


Comments

# by 星寂

我都用另外一套0.0 http://www.dotblogs.com.tw/alonstar/archive/2010/01/06/12837.aspx

# by Jeffrey

to 星寂,謝謝分享,我將SnippetEditor的資訊補充在文後了。

Post a comment