夢想創造可能——盤點微軟 .NET 技術八年發展歷程
文 / 劉如鴻
文 / 劉如鴻
在工作中經常會遇到需要將一組數據繪制成曲線圖的情況,最簡單的方法是將數據導入Excel,然后使用繪圖功能手動生成曲線圖。但是如果基礎數據頻繁更改,則手動創建圖形可能會變得枯燥乏味。本篇將利用DynamicDataDisplay 在WPF 中動態模擬CPU 使用率圖表,實現動態生成曲線圖。
在上篇《Socket開發探秘--基類及公共類的定義 》中介紹過,所有受到的數據包,經過系統的預處理后,都會得到一個PreData的數據實體,該實體包含了協議頭、協議內容和所屬用戶的ID。PreData是定義了一個標準的協議數據格式,包含了協議關鍵字、協議內容、用戶標識的內容。
WCF是一個具有極高擴展度的分布式通信框架,無論是在信道層(Channel Layer)還是服務模型層(Service Model),我們都可以自定義相關組件通過相應的擴展注入到WCF運行環境中。在WCF眾多可擴展點中,ICallContextInitializer可以幫助我們在服務操作執行前后完成一些額外的功能,這實際上就是一種AOP的實現方式。比如在《通過WCF Extension實現Localization》中,我通過ICallContextInitializer確保了服務操作具有和客戶端一樣的語言文化;在《通過WCF Extension實現Context信息的傳遞》中,我通過ICallContextInitializer實現上下文在客戶端到服務端的自動傳遞。ICallContextInitializer的定義如下:
.NET一直都支持可選參數,但是C#語言卻并不支持,除了調用COM庫以外,可選參數通常是被禁止使用的。現在,隨著C# 4對可選參數的支持,我們可以看到可選參數被越來越多的使用,而不僅僅限于遺留代碼中。這些應用包括與動態語言的互操作、只讀數據類型,以及ASP.NET MVC中的許多地方。