[DotNet套件] Common.Logging

不論開發哪種類型的程式,大都會有紀錄Log的需求,來協助我們來了解程式的運作情形。但市面上有許許多多的Log套件,如:log4net、Nlog...等,每套都有自己的使用方法。所以當我們有需求要轉換Log套件時,變成我們要去變更程式中所有使用Log的程式碼,光想就覺得是件大工程!

Common.Logging就是將這些套件使用方式抽象化出一個共通的Interface,所以程式碼中呼叫的都是Interface的方法。因此,不論我們底層是使用哪個Log套件,程式碼都是一樣的。當我們有變更Log套件的需求時,我們也只要變更設定檔的設定即可。

...繼續閱讀 »

[C#] 記憶體快取 MemoryCache

  • 3713
  • 0
  • C#
  • 2016-09-23

最近開發一個Web Api程式,它每次被呼叫都必須先讀取一份XML檔案,然後將內容反序列化成一個清單變數。但由於Web Api物件的生命週期都只維持一個Request,所以每次Request都必須要重新反序列化,這樣便會造成系統效率下降。因此為避免這樣的情況發生,便很適合導入快取的機制到此系統

...繼續閱讀 »

[Visual Studio] ILMerge 自動合併多個DLL

當軟體的規模到達一個程度時,一個方案下就會依功能將程式分到多個專案,進而導致在發布程式時就要注意是不是少部屬一個DLL,導致程式執行失敗,因此 ILMerge 就是解決這類問題的其中一個方法。ILMerge可以將多個DLL合併成一個DLL,也能讓DLL和EXE檔合併成只有單一EXE檔。

...繼續閱讀 »

[軟工] 類別圖「關聯」、「聚合」及「組合」比較

「類別圖 (Class Diagram)」是用來描述系統所使用到的類別資訊及類別之間的關係。

這篇著重在類別間的關係這塊,之前都只記得「繼承 (inheritance)」類別及「實作(implement)」介面這兩塊,對「關聯(Association)」、「聚合(Aggreation)」及「組合(Composition)」三個關係來複習一下。

...繼續閱讀 »

[C#] 索引子的基本運用

  • 2157
  • 0
  • C#
  • 2016-05-31

之前雖然有看過C#的「索引子 (Indexers)」,但沒有進一步去了解它的用法。最近聽到別人的介紹,才發覺「索引子」運用得宜的話,對程式的可讀性會加分不少。

...繼續閱讀 »

在Windows建置Git環境

之前在開發一些軟硬整合的應用程式時,必須使用廠商所提供的IDE來開發,但偏偏這些IDE不直接支援版控系統,導致在這些專案的程式控管非常粗糙。

導入Git主要是因為原本就有使用Team Foundation Server (TFS) 的服務,而TFS在2013後開始支援Git。這樣的話,就能將所有程式集中在TFS此一平台做管理。

...繼續閱讀 »