2017年9月15日 星期五

[打造自己的template-建立一致性程式碼][暫完]階段性總結

image
圖片來源:https://pixabay.com/en/annual-report-book-brochure-686343/

在上一篇([12]TemplateBuilder建立Multi Project和Item Template)介紹完最複雜類型的template - multi project template之後,基本上已經涵蓋一般常見到的情況了。

在這一篇將會對於這一系列所介紹的方式做個總結,並且展望接下來可以關注的方向。

總結目前介紹的內容

整合到目前為止所介紹的內容。

template重要性和何為template

這一個系列的一開始,先介紹了template的重要性,用template來規範團隊是最好的方式。

用匯出的方式建立template

最簡單和最快的建立template方式就是透過Visual Studio(以下簡稱VS)匯出的方式來達成。

在接下來介紹vstemplate的內容和如何透過微調vstemplate來達到想要的效果

最後介紹如何建立最複雜類型的template - multi project template和item template。

用VS的project template建立template

由於匯出template不好管理,因此開始深入了解如何透過VS的Project Template和VSIX建立template。

用VSIX開發會自動開啟VS的Experimental Instance做測試,因此對於如何使用Experimental Instance做了一些介紹

SideWaffle的降臨

Project Template的缺點是,如果要調整template是在不方便,因為template本身都是替換的Parameter,造成無法像一般開發的方式來2度微調template,因此SideWaffle進來了:

有了一些使用SideWaffle的概念之後,開始介紹實際的背後功臣 - TemplateBuilder - 如何微調並且使用建立multi project template

這個系列只有有程式碼的部分都可以再github alantsai-samples/mhat-visualstudio-template 找到範例,有程式碼的篇章都會有一個tag 以sample/為開頭,例如sample/chapter02

關於未來

到目前為止,用TemplateBuilder已經能夠很方便建立出自己的template,基本上一般情境都夠用了,不過是否這就已經是到頭了呢?

基本上有兩個部分還沒有介紹:

  • Wizard的介紹
  • .net core的新template模式

什麼是Wizard

在建立template的時候,有時候會希望和使用者互動。舉例來說,如果我的template包含自動設定好db連線,這個時候建立template的時候就會希望有個地方會讓他輸入db相關資訊 - template建立好就設定好不需要建立完在自己去找對應檔案和調整。

要達到這種效果,就需要寫Wizard。

可以想象成寫asp .net mvc的時候,如果建立controller會讓你選擇要建立的controller類型(controller其實用的是Scaffolding在做這個事情,不過概念是差不多)。

Wizard目前沒有打算介紹(至少短期內不會),因為使用的情境比較少,雖然有Wizard的確UX會更好,但是如果template沒有複雜到某個程度,其實不會用到。

.net core帶來的新template模式

作為.net developer,最近應該長聽到的就是.net core 2.0的到來。

如果對.net core有關注的就會注意到,.net core 很大一個特色就是程式的執行模式和以前的.net framework不一樣,多了一個dotnet的指令。

裡面可以使用dotnet new的方式來建立出template,這種類型的template和VS裡面的template建立方式有些不同。

在不遠的將來,將會對於.net core的template建立方式做介紹。

結語

在這篇把這個系列做一個階段性總結。

更深入的template需求可以朝Wizard的方向做研究和客制,不過因為使用情境比較深入因此暫時不會介紹。

反而是因為.net core的到來,新的template建立方式勢必會越來越常使用。

不過如果不了解.net core,會無法了解為何template有做了變化。

因此這個系列將會暫時結束,轉向對.net core作介紹,並且在那邊介紹如何使用SideWaffle Creator 2017(SideWaffle的VS 2017版本)來建立出VS和dotnet new格式的template。


沒有留言 :

張貼留言