ASP.NET MVC Tip #16 – 建立 ASP.NET MVC 宏操作

來源:互聯網
上載者:User

ASP.NET MVC Tip #16 – 建立 ASP.NET MVC 宏操作
ASP.NET MVC Tip #16 – Create ASP.NET MVC Macros

美語原文:http://weblogs.asp.net/stephenwalther/archive/2008/07/09/asp-net-mvc-tip-16-create-asp-net-mvc-macros.aspx
國語翻譯:http://www.cnblogs.com/mike108mvp

譯者註:在下水平有限,翻譯中若有錯誤或不妥之處,歡迎大家批評指正。謝謝。

在這篇文章中,我將示範如何建立一個Visual Studio 2008宏操作(macro)來實現使用一個命令,就可以建立一個新的MVC控制器(controller),視圖(View)檔案夾,以及controller單元測試。

不要誤會我。我喜歡Visual Studio 2008的設計工具。我喜歡從Visual Studio 2008的工具箱中拖放項目。我已經記住了很多Visual Studio的操作快速鍵。但是,今天之後,沒有什麼比在命令視窗輸入一個指令更快的操作了。

在這個文章中,我將告訴你如何利用Visual Studio的宏操作和Visual Studio的命令視窗來組建檔案和代碼,用於ASP.NET MVC 項目中。特別是,我將告訴你如何建立一個宏來產生新的MVC controller、MVC view 和 MVC controller 單元測試。

建立Visual Studio 宏

你有兩種方式來建立Visual Studio宏。第一種方式,當你在使用Visual Studio時,你可以錄製你的動作。為了錄製宏,你可以點擊Tools菜單 -> 宏(Macros) -> 錄製臨時宏(Record TemporaryMacro)。這個宏工具的控制台看起來就像錄影機一樣。當你錄製結束後,你可以點擊Stop按鈕,然後你就有了一個新的宏,你可以把它儲存下來,並在以後重新播放(replay)它。

另一種方式是從頭開始寫一個宏。我一般使用這種方式來建立MVC宏。我以前曾經被強迫只能使用這種方式來建立宏,因為我需要寫通用的功能的宏,以便它能在任何的MVC項目中使用。

Visual Studio宏必須用VB.NET來編寫。(譯者註:真鬱悶啊)。大多數的宏代碼都包含了對Visual Studio的自動物件模型(Automation Object Model)的調用。我的MVC宏利用了下面的自動對象:

DTE - Visual Studio自動物件模型的最高層對象。該對象有一個代表你的Visual Studio解決方案(Solution)的Solution屬性。你可以使用Solution屬性與你的解決方案中的單獨的工程(projects)進行聯絡。

Project - 代表一個在你的解決方案中的單獨的工程,例如一個MVC工程或者一個測試工程。使用ProjectItems屬性來與你的單獨工程中的某些內容項(例如檔案、檔案夾)進行聯絡。

CodeModel - 代表一個工程(project)中的代碼。你可以使用CodeModel來添加新的類到一個工程中。

要建立一個Visual Studio宏工程,你可以點擊Tools菜單 -> 宏(Macros) -> New Macro Project。選擇這個菜單就開啟了一個建立新宏工程的對話方塊(見圖1)。

Figure 1 – New Macro Project Dialog Box

在你建立了一個新的宏工程後,在地址中開啟的宏瀏覽視窗(Macro Explorer window)通常會被解決方案視窗(Solution Explorer window)佔據(見圖2)。你可以在宏瀏覽視窗中雙擊任何宏來運行它。你也可以按右鍵一個宏來編輯、修改它。

Figure 2 – Macro Explorer Window

當你編輯一個宏時,宏的整合式開發環境(IDE)將會出現。宏IDE看起來就像另一個Visual Studio 2008執行個體。但是,它是一個功能更有限的開發環境專門為了開發宏而設計。

你通過編寫VB.NET代碼模組(module)來建立一堆宏。每個你定義在模組中的公用子程式(public subroutine)會暴露為一個單獨的宏。例如,在代碼清單1中的超級簡單的宏代碼只是顯示一個“Hello World!”彈出對話方塊視窗。

Listing 1 – Test.vb

譯者註:這個代碼不好粘貼,請大家到原文查看代碼:
http://weblogs.asp.net/stephenwalther/archive/2008/07/09/asp-net-mvc-tip-16-create-asp-net-mvc-macros.aspx

 

一個宏子程式(macro subroutine)能夠接收參數。但是,所有的參數都是可選的參數(Optional parameters)- 使用VB的Optional關鍵字來定義。如果你沒有讓參數為可選,則這個子程式將不會出現在宏瀏覽視窗中。

執行Visual Studio宏

當你建立一個宏後,有幾種方式來執行它:

· 從宏瀏覽視窗
· 從命令視窗
· 從尋找輸入框(Find input box)

執行一個宏最容易的方式是在宏瀏覽視窗中雙擊這個宏。然而,如果用這種方式的話,就失去這篇文章的目標了。這篇文章的目的是解釋如何通過輸入命令來快速修改一個ASP.NET MVC project。

第二種方式是從Command window執行一個宏。點擊View菜單 -> Other Windows -> Command Window 來開啟Command window。(更好的方式是用Ctl-Alt-A快速鍵來開啟Command window)。Command Window 開啟後,輸入Macros.Macro宏名字來開啟宏。例如,你可以在Command window中輸入Macros.MVC.Test.SayHello來執行我們上一節建立的宏。

Macros.MVC.Test.SayHello

當你輸入一個宏名字時,將看到完整的宏名稱自動填滿(見圖3)。因此你實際上只需要輸入字母m,然後在自動出現的下拉式清單中選擇你要執行的宏。

Figure 3 – Command window statement completion

 

我從Sara Ford的部落格中發現了最後一種執行宏的方法。

http://blogs.msdn.com/SaraFord/

你可以從Visual Studio工具列的Find input box中執行一個宏(見圖4)。輸入 > 符號來選擇一個宏來執行。你可以用 Ctl+/ 快速鍵來快速導航到Find input box中。

Figure 4 – Executing a macro from the Find input box

建立宏別名

如果你想要減少執行一個宏時的輸入字元數,那麼你可以建立一個宏的別名。使用像下面這樣的別名:

alias h Macros.MVC.Test.SayHello

當你在Command window中執行上面的命令後,你如果要執行SayHello 宏,那麼只需要輸入一個字母h即可。

你可以使用/delete刪除一個別名:

Alias h /delete

通過使用別名,你可以輸入最少的字元來執行通用的ASP.NET MVC任務。

建立一個ASP.NET MVC宏

MVC宏程式碼封裝含在代碼清單2中。代碼清單2中包含一個Generate代碼模組,它包含了4個公用子程式(public subroutines),分別是All, Controller, View, 和 ControllerTest。

Listing 2 – Generate.vb

譯者註:這個代碼不好粘貼,請大家到原文查看代碼:
http://weblogs.asp.net/stephenwalther/archive/2008/07/09/asp-net-mvc-tip-16-create-asp-net-mvc-macros.aspx

 

你能夠在Command window或者Find input box中執行下面的代碼來建立一個新的controller、view 檔案夾、以及controller 測試工程。

Macros.MVC.Generate.All Product

執行這行命令將建立一個新的名為ProductController的controller,名為Product的View,一個Product的view檔案夾,一個名為ProductControllerTests單元測試工程。

如果你想要減少執行這些命令的輸入代碼量,你可以建立一個像這樣的宏別名:

alias gen Macros.MVC.Generate.All

這個命令建立了一個名為gen的別名,它代表了MVC.Generate.All宏。建立這個別名後,你可以像這樣建立一個新的controller、view 檔案夾、以及單元測試工程:

gen Customer

這很可能是建立一個MVC工程項目最快、最懶的終極必殺技。執行這個命令後,你的解決方案視窗將包含圖5所示的檔案。

Figure 5 -- Generating a Customer

總結

我這篇文章的目的是要說明從Visual Studio中可以建立一些命令來快速產生ASP.NET MVC工程專案檔。通過很好地利用這個包含在Visual Studio 2008中的功能強大的自動化模型,你(理論上)能夠建立ASP.NET MVC應用程式,而無需開啟一個單獨的建立新檔案的
交談視窗。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.