Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 記錄軟體開發的點點滴滴 著重於微軟技術、網頁開發、DevOps、C#, Asp .net Mvc、Azure、AI、Chatbot、Docker、Data Science

[打造自己的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。


如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus