Visual Studio 2008 擴展性開發(五):操作方案、專案與專案項目
前幾篇較偏理論,從本文開始介紹 Add-In 中對 VS 核心元素的實際操作,精彩度大增。日常開發從開啟方案開始,再找專案、開檔案編碼。本文即圍繞此流程展開。
Visual Studio 2008 擴展性開發(六):掌控方案總管
前文介紹 Solution、Project、ProjectItem 的物理層面操作,而方案總管是管理它們的核心 UI 元素。本文專講方案總管的程式化操作。 工
Visual Studio 2008 擴展性開發(七):深度掌握文字編輯器擴展
前文介紹方案總管操作,但開發者大多數時間面對的是編輯器。VS2008 編輯器功能已很強大,善用熱鍵編碼極為順手,正如《卓有成效的程序員》所言:「編程時始終優先使
Visual Studio 2008 擴展性開發(八):掌握工具視窗與自訂 ToolWindow
Add-In 多半需要使用者介面。前文採用的主要方式是選單與自訂視窗。本文將介紹更多 UI 操作技巧: 存取與操作 VS 內建視窗(輸出視窗、命令視窗等
Visual Studio 2008 擴展性開發(八):打造專屬選項頁與選單圖示
上一篇介紹了 VS 中的工具視窗操作。本文繼續深入使用者介面主題,著重於兩項實用技巧: 建立自訂選項頁 設定選單項目圖示 建立自訂選項頁 安裝
Visual Studio 2008 可擴展性開發系列總結:打造專屬的開發利器
小時候看木匠師傅專注地鋸木、釘釘、刨出帶香氣的木花,那時還不懂什麼是「專業」,但直覺地感受到:他們手中的工具不只是鋸子、鉋子,更是經過精通與馴化的延伸。Visu
泛型與設計模式實踐:NHibernate 資料存取的兩種封裝策略
背景 參考 PetShop 4.0 架構,實體層使用 NHibernate ORM。需封裝對業務實體的通用查詢。 方式一:泛型方法直接暴露 實體層 BaseD
WPF 「分辨率無關」是否名副其實?深度實測與分析
宣稱與誤解 WPF 以「分辨率無關」作為賣點,採用 1/96 英吋為一個裝置無關單位(DIU)。但微軟缺乏詳細說明,導致三大常見誤解。 誤解一:改變螢幕解析度
VML 繪圖實戰:賽車軌跡小遊戲與座標系調整心得
VML 座標系調整關鍵 網上常說調整 CoordOrigin 可移動原點,實測無效。實際發現: v:shape 預設無 CoordOrigin 屬性(null
深入淺出空間參考:大地水準面、參考橢球體、基準面、北京54/西安80、高斯-克魯格投影
1. 大地水準面與參考橢球體 大地水準面:靜止海平面延伸至大陸內部形成的封閉曲面,處處垂直重力方向,形狀不規則。 參考橢球體:為便於數學計算,用規則橢球體逼近大
透過 CFF Explorer 修改 .NET 組件元數據訪問私有類別與方法
問題 引用第三方組件,需使用其 internal 類別或 private 方法,但無法修改源碼。 本質 修改組件中繼資料,將目標類別/方法的可視性標記從 Pr
SQL 窗口函數實戰:PARTITION BY 解決分組統計與明細並存難題
需求:查詢所有部門(Department),並顯示每部門員工數。傳統 GROUP BY 強制聚合,無法同時輸出部門明細與統計值。窗口函數 OVER (PARTI
從 OO 封裝談起:類級封裝的邊界與契約式設計的啟示
經典案例:Person.Exchange(Person p, int amount) 直接存取 p._money(private 欄位)。編譯器允許,因為封裝邊
Enterprise Library DAAB 在 TransactionScope 中連續執行 ExecuteReader 拋異常
現象 同一 TransactionScope 內連續呼叫兩次 Database.ExecuteReader,第一條 SQL 故意非法(捕獲異常忽略),第二條合法
.NET 遺忘錄(一):CLS 合規性——跨語言互操作的隱形契約
Common Language Specification (CLS) 定義了 .NET 語言互操作的「最大公約數」。編寫程式庫若忽視 CLS,將導致 VB.N
.NET 遺忘錄(二):using 區塊——非受控資源釋放的優雅契約
.NET 垃圾收集器(GC)僅管理受控記憶體。資料庫連線、檔案控制代碼、GDI 物件、COM 物件等非受控資源,必須由開發者顯式釋放。IDisposable +
.NET 遺忘錄(三):Array 與 List 效能抉擇——從洗牌演算法看資料結構本質
同事用 List<int> 實作洗牌演算法(Fisher-Yates),執著認為「泛型較先進」。實測證明:頻繁隨機索引存取場景,陣列完勝 List。
.NET 遺忘錄(三續):重新理解 List<T> —— 其實是動態陣列的封裝
前文錯誤將 List<T> 視為「鏈結串列」,導致效能分析完全偏離。痛定思痛,深入 Reference Source 重新認知:List<T&