2014年10月13日 星期一

開發VisualStudio擴充功能建構自己的開發環境(一)

一路從ASP寫到ASP.NET,所使用的開發工具也由UltraEdit到VisualStudio,一直覺得開發工具的演進實在是大大的幫助開發的速度與便利性.

在僅有文字編輯器的時代,程式碼需要一個一個字母的輸入,雖然可以讓程式設計師好好的練習程式語言的所有寫法,但也使得程式開發的速度無法有效的提升.

到了VisualStudio的時代,開發工具上各式各樣的輔助功能不斷的出現,讓程式設計師可以把焦點專注在要解決的問題上,而不用在瑣碎的問題上花費大量時間,確實而且準確的將程式開發往前推了一大步.

現在,程式設計師可以很容易的利用各式各樣的Framework與開發工具開發出所需的功能,但這是否就表示已經足夠了呢?每一位程式設計師或團隊一定都有獨特的開發架構或模式,開發工具通常僅能滿足大部份的基礎需求,並不容易可以滿足這些獨特的要求.

在這裡我不得不讚揚一下VisualStudio實在是一個非常好的開發工具,不僅功能齊全,而且更有非常大的擴充性.擴充套件的發展更打開了新的一扇窗,各式各樣的擴充套件一直被開發出來,也更讓身為程式設計師的我,容易根據需要來調整開發環境.

回到主題,一直以來想要開發一個後端平台(ASP.NET)可以很容易將新開發功能佈署上去,雖然WebDeploy可以滿足這個要求,但每一次卻都要將全部的程式碼重新打包一次,對我而言並非是個好的解決方式.後來發現SharePoint對於附加的功能可以透過所謂的WSP(Package)的方式進行佈署,因此也興起了想要將這樣的概念實做在自己的平台中.

後端平台基礎功能介紹:

1. 帳號、群組與選單權限的管理
2. 系統設定值設定、資料庫結構敘述與檔案系統檢視
3. 功能佈署管理


上方圖片是功能佈署管理的操作畫面,功能是可透過上傳壓縮檔案方式直接進行程式檔案或是SQL Script的佈署.上傳的壓縮檔內必須包含一個特定的XML描述檔,來記錄或處理有哪些檔案需要進行作業.

到了這個階段,我一直在思考該如何來實現這個XML檔案的編輯與檔案壓縮的作業,總不可能直接就使用文字編輯器的方式進行編輯然後手動壓縮,這樣作業上不但不方便而且造成錯誤的機率實在太高.如果寫一個專門用來處理此作業的應用程式也無法與VisualStudio進行整合,將使作業程序整個拉長許多.

經過考量後,發現如果能透過撰寫VisualStudio的擴充套件來完成此作業,將是最完美的解決方式.

包裝檔擴充套件包含了下述的功能:

1. 選取專案內的組件或檔案加入XML結構敘述
2. 專案建置時,可直接針對XML結構敘述產生對應的壓縮檔



開發這個擴充套件除了要了解VisualStudio SDK外,為了在專案建置時產生壓縮檔,所以也需要一併了解MSBuild才有辦法可以達到此需求.

在這個後端平台上,系統選單是由資料庫內所設定的資料來產生,當新功能要佈署也需要一併將需要的資料寫入資料庫中,因此也做了與專案佈署類似的套件.

選單設定擴充套件包含了下述的功能:

1. 將新增或編輯要的選單加入XML結構描述
2. 根據XML結構描述,產生對應的SQL Script



這個套件與專案佈署比較不一樣的地方在於,XML檔案編輯完成後,還需要透過Text Template讀取XML內容並產生對應的SQL Script.

另外,包裝檔建置完成後,產生的檔案需要到後端平台進行上傳才能完成佈署,在作業上仍然有可以加強的地方,因此也希望可以直接在VisualStudio進行處理.

包裝檔佈署擴充套件包含了下述的功能:

1. 選擇要佈署的包裝檔,直接佈署至選擇的後端平台.


佈署的作業主要是依靠在後端平台上建置一個WCF的Service來處理,VisualStudio這端只要根據方案內有哪些專案是可允許佈署,並找到佈署的包裝檔案即可完成.


透過上述自行開發的套件,可以讓開發人員有效率的處理非程式上的需求,也可以讓整個開發到佈署的流程更加順暢.

相關文章:
開發VisualStudio擴充功能建構自己的開發環境(二)
開發VisualStudio擴充功能建構自己的開發環境(三)


沒有留言:

張貼留言