1 / 39

軟體工程之北冥神功

軟體工程之北冥神功. 彭靖 灝 michaelp@k2.com http :// www.plurk.com/michaelchpeng michaelchpeng.spaces.live.com 斯歌資 訊. 核心精神. 經驗 訓練 習慣 紀 律 工具. 議程. 從找到作業模式開始 Visual Studio 2010 的擴充能力 建立一個 VS 的增益集 善用 VS 的物件架構. 從找到作業模式開始. 情境. 相信某件事,並且實踐 開始發現正以人工方式重複進行同樣的工作 於是思考有沒有可能自動化

buffy
Download Presentation

軟體工程之北冥神功

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 軟體工程之北冥神功 彭靖灝 michaelp@k2.com http://www.plurk.com/michaelchpeng michaelchpeng.spaces.live.com 斯歌資訊

  2. 核心精神 • 經驗 • 訓練 • 習慣 • 紀律 • 工具

  3. 議程 • 從找到作業模式開始 • Visual Studio 2010的擴充能力 • 建立一個VS的增益集 • 善用VS的物件架構

  4. 從找到作業模式開始

  5. 情境 • 相信某件事,並且實踐 • 開始發現正以人工方式重複進行同樣的工作 • 於是思考有沒有可能自動化 • 要土法鍊鋼不是不行,但如果有現成的資源,為什麼要從頭來過

  6. 事情是這樣的… • 我遵循三層式架構 • 每一次,我的解決方案中都會有四個專案 • MySolution.UI • MySolution.Business • MySolution.Data • MySolution.Test

  7. 於是我有了第一個工具…

  8. 然後我考慮用範本…

  9. 不過… • 每一次都要這樣搞? • 有沒有更簡單的方式好維護? • 如果這是Visual Studio可以做的,難道沒有現成的資源可用?

  10. 原來… • Visual Studio提供Object Model • Visual Studio也提供了Macro • 在Visual Studio中可以產生範本 • 還能夠更進一步整合在Visual Studio中

  11. 這一回…

  12. K2 Designer for Visual Studio DEMO

  13. Visual Studio的擴充能力

  14. VS 2005/2008的擴充能力 • 建立增益集 • 建立VSPackage • 提供作業環境 • 註冊啟動畫面圖標 • 建立作業範本 • 提供巨集環境

  15. Visual Studio 2010的擴充能力 • 管理擴充套件和下載 • 延伸VS 10編輯器 • 自訂啟動頁面 • 透過MEF建立”drop in“元件

  16. Visual Studio增益集 • 內嵌在VS作業環境中 • 多半在簡化作業或進行重複性工作 • 通常是間接影響設計結果(相較於工具箱、屬性視窗…) • 通常和VS IDE互動密切

  17. Visual Studio 巨集 • 用以進行開發環境內的重複性動作 • 透過錄製建立 • 透過程式碼以Object Automation作業

  18. 啟動圖標

  19. Extension Manager

  20. Visual Studio Gallery • http://visualstudiogallery.msdn.microsoft.com/

  21. 延伸VS 2010編輯器 Custom margin Glyphs to track methods in the source file Inline WPF control adornment Lightbox adornment for target method(s) Viewport tracking

  22. Runtime Intelligence Integration(PreEmptive) DEMO

  23. 建立VS增益集

  24. 增益集的成份 • .AddIn:提供相關描述的XML • Connect.VB/CS:處理增益集事件的程式碼 • 實作了IDTExtensiblilty2和IDTCommandTarget介面 • 作業內容

  25. EnvDTE/EnvDTE80 命名空間 • Environment Development Tools Extensibility • 提供從2005開始的開發環境物件模型 • DTE物件為最基礎的開發環境物件 • DTE2為目前通用的開發環境物件 • VS 2010為EnvDTE10

  26. IDTExtensibility2

  27. 增益集事件引發順序(載入)

  28. 增益集事件引發順序(卸除)

  29. IDTCommandTarget.Exec • 被點選命令執行時引發 • 處理作業命令的進入點 • 作業參數 • commandName:要執行的命令 • executeOption:提供命令執行的選項細節 • varIn:呼叫者傳入的參數 • varOut:命令常式要傳回呼叫者的參數 • Handled:通知呼叫者命令是否完成作業

  30. 作業範本(VSTemplate) • 透過既有專案及項目匯出產生 • 自行定義並登錄擴充 • 將作業型式標準化 • 透過.zip包裝成一個檔案

  31. 增益集專案/建立範本 DEMO

  32. 善用VS物件架構

  33. 常見應用 • 管理解決方案、專案、專案項目 • 管理工具列、工具箱、使用者介面(Window) • 管理作業命令 • 處理編輯器 • 管理編輯器、下載內容

  34. 操作解決方案/專案… DEMO

  35. Visual Studio Shell • 提供不含任何語言及微軟正式銷售產品開發功能的VS作業環境 • Integrated Mode • 用以執行你所建立的增益集、建立你的專案類型 • 適用在使用者並未安裝有VS,卻要使用你的工具的情況 • Isolated Mode • 可以和VS共存的環境 • 用在只執行你的工具的情況,獨立執行

  36. 總結 • 先從能自動化既有重複作業開始 • 善用VS object automation • 再考慮讓pattern/guidence能更容易被使用 • 結合VS作業環境 • 設法讓動作能整合在VS中 • 建立VS Package(Add-in, VSIP) • 利用MEF建立動態擴充能力

  37. 相關資源 • Visual Studio Extensibility • http://msdn.microsoft.com/VSX • Visual Studio Extensibility學習中心 • http://msdn.microsoft.com/en-us/vsx/bb980955.aspx • VSX Code Gallery • http://code.msdn.microsoft.com/vsx/ • MEF(Managed Extensibility Framework) • http://www.codeplex.com/MEF • VSIP(VS Integrated Partner) • http://msdn.microsoft.com/en-us/vsx/dd637761.aspx

  38. 參考書籍 • Working with Microsoft Visual Studio 2005 • Microsoft Press

More Related