ASP.NET MVC 監控診斷、本地化和緩存

這篇博客主要是針對asp.net mvc項目的一些經常使用的東東作一個講解,他們分別是監控診斷、本地化和緩存。雖然前二者跟asp.net mvc看上去好像是沒什麼關聯。 但其實若是真正須要作asp.net mvc項目的話,那就有關聯了。這篇博客對於這三個概念會分別介紹,目的是爲了引導本身在開發的時候的一些design。web

請叫我頭頭哥

v1.監控診斷

1.1.概 念:

監控診斷是經過軟件或者監控服務提供商對APP進行監控以及數據的獲取從而達到APP的排錯和數據的分析。windows

1.2.背 景:

隨着互聯網的迅速成長,我的網站、企業網站、社區網站……愈來愈多,同時網站競爭也愈來愈強,從而衍生出來的對網站的監控,網站監控是站長、企業、社區……經過軟件或者網站監控服務提供商對網站進行監控以及數據的獲取從而達到網站的排錯和數據的分析。一個網站部署起來以後,一般會遇到各類各樣的出錯或者宕機的可能性,因此說監控和診斷一個很是重要的工做。瀏覽器

1.3.常見監控:

關於對asp.net mvc web site的監控有不少辦法或者工具,有官方的 healthMonitoring這樣一個綠色的監控工具、有第三方的一些監控工具、有一些用本身寫日誌的方式監控的、有向站長髮送警報郵件。還有一些對performance、性能、內存、CPU和磁盤讀寫等等的監控,還有一些像Munin這種開源的監控工具。緩存

總之呢關於監控的方式有不少,固然如今通常的項目都是部在雲上,可能監控都不須要本身作太多,咱們這裏呢就介紹一個最多見的windows自帶的綠色監控。服務器

1.4.實施監控:

新建一個MVC工程,就在默認的打開的Index頁面手寫一個錯誤,強制拋出,而後運行。對應的代碼和效果以下:mvc

ASP.NET MVC 監控診斷、本地化和緩存

很顯然,這裏確定會報錯。那麼如今讓咱們打開Windows的event viewer(中文系統的話就win+q搜索"事件查看器")。asp.net

ASP.NET MVC 監控診斷、本地化和緩存

event viewer是根據系統的web.config設置的。這個web.config是針對本機的一個配置。工具

ASP.NET MVC 監控診斷、本地化和緩存

v2.本地化

2.1.概 念:

本地化是指企業在國際化過程當中,爲了提升市場競爭力,同時下降成本,將產品的生產、銷售等環節按特定國家/地區或語言市場的須要進行組織,使之符合特定區域市場的組織變革過程。post

2.2.背 景:

在經濟全球化的時代,大型企業起初在本國生產產品,並將產品在本國銷售,隨着生產規模增大和產品聲譽遠播,產品開始在國際市場上流通。爲進一步擴大國際市場的份額,將部分原料採購和加工過程移往產品需求地由當地產業工人完成的組織形式,稱之爲企業本地化。企業本地化的高級形式是融入當地社會,與當地企業一塊兒促進目的地社會的進步和發展。性能

2.3.常見本地化:

咱們先來舉一個很是簡單的例子,這也是本地化裏面一個最簡單的應用。咱們來看看本地化簡單應用的具體步驟。

2.3.1.頁面代碼:

@{
    ViewBag.Title = "Home Page";
    var prices = 10.0m;
    var date = DateTime.Now;
}
<div>@prices.ToString("c")</div>
<div>@date.ToShortDateString()</div>

上面代碼很是常見,就是在頁面中輸出貨幣信息以及顯示短日期格式。咱們須要作的就是不一樣國家地區的語言或者是貨幣或者是時間的顯示方式都不一樣,咱們須要讓這段代碼根據不一樣地區顯示對應的格式。

2.3.2.設置Web.config:

ASP.NET MVC 監控診斷、本地化和緩存

culture:爲處理傳入的 Web 請求指定默認的區域性。

uiCulture:爲處理依賴於區域設置的資源搜索指定默認的區域性。 若要查看有效的區域性字符串。

這兩個屬性咱們都設置爲auto

2.3.3.瀏覽效果:

  • 英文效果

    ASP.NET MVC 監控診斷、本地化和緩存

    在瀏覽器的Internet選項的語言設置中咱們能夠看到當前默認設置的語言是英文,因此獲得的貨幣和時間格式分別是:$10.00、11/1/2015

  • 中文效果

    ASP.NET MVC 監控診斷、本地化和緩存

    在上圖中咱們講默認的語言設置成中文,因此獲得的貨幣和時間格式分別是:¥10.00、2015/11/1。 MADE IN CHINA

2.4.資源文件:

利用資源文件作本地化也是一種很是常見的手段,並且微軟對Resource.resx爲開發者也作了很好的集成,使用起來很是方便。

2.4.1.建立資源文件:

咱們先來建立兩個資源文件,分別是一個默認的資源文件Resource.resx和中文的資源文件Resource.zh.resx,這裏注意將訪問修飾符設置成public的。兩個資源文件結構以下:

ASP.NET MVC 監控診斷、本地化和緩存

2.4.2.頁面代碼:

<div>@Resource.Hello @Resource.Name</div>
<div>@prices.ToString("c")</div>
<div>@date.ToShortDateString()</div>

2.4.3.瀏覽效果:

  • 英文效果

    ASP.NET MVC 監控診斷、本地化和緩存

    當前瀏覽器默認的語言是英文的,因此獲得的結果是:Hello CNBlogs

  • 中文效果

    ASP.NET MVC 監控診斷、本地化和緩存

    早瀏覽器的Internet選項的語言設置中咱們能夠設置當前的語言是中文,因此獲得的結果是:你好 博客園

v3.緩存

3.1.概 念:

緩存就是數據交換的緩衝區(稱做Cache),當某一硬件要讀取數據時,會首先從緩存中查找須要的數據,若是找到了則直接執行,找不到的話則從內存中找。因爲緩存的運行速度比內存快得多,故緩存的做用就是幫助硬件更快地運行。

3.2.特 點:

緩存是指能夠進行高速數據交換的存儲器,它先於內存與CPU交換數據,所以速率很快。L1 Cache(一級緩存)是CPU第一層高速緩存。內置的L1高速緩存的容量和結構對CPU的性能影響較大,不太高速緩衝存儲器均由靜態RAM組成,結構較複雜,在CPU管芯面積不能太大的狀況下,L1級高速緩存的容量不可能作得太大。通常L1緩存的容量一般在32—256KB。L2 Cache(二級緩存)是CPU的第二層高速緩存,份內部和外部兩種芯片。內部的芯片二級緩存運行速率與主頻相同,而外部的二級緩存則只有主頻的一半。L2高速緩存容量也會影響CPU的性能,原則是越大越好,普通臺式機CPU的L2緩存通常爲128KB到2MB或者更高,筆記本、服務器和工做站上用CPU的L2高速緩存最高可達1MB-3MB。

3.3.OutputCacheAttribute:

3.3.1.介紹:

使用輸出緩存,能夠在 Web 服務器上的內存中存儲操做方法的輸出。 例如,若是操做方法將呈現一個視圖,則將緩存視圖頁。 而後,已緩存的此頁面將可供應用程序用於後續請求。 輸出緩存能夠節省應用程序從新建立操做方法的結果所需的時間和資源。在 ASP.NET MVC 中,可使用 OutputCacheAttribute 特性標記要緩存其輸出的操做方法。 若是使用 OutputCacheAttribute 特性標記某個控制器,則該控制器中的全部操做方法的輸出都將進行緩存。

3.3.2.實例:

3.3.2.1.代碼演示:

public class HomeController : Controller
    {
        [OutputCache (Duration=60)]
        public ActionResult Index()
        {
            return View();
        }
    }

3.3.2.2.代碼講解:

ASP.NET MVC 監控診斷、本地化和緩存

這裏咱們給/Home/Index的action加了一個[OutputCache (Duration=60)]這樣的Attribute,在/Home/Index的Action裏打一個斷點,按F5執行,你會發現只有第一次執行會進入斷點,而在此60秒以內,你再怎麼刷新執行,是不會進入這個斷點的。這就是一個簡單的60秒緩存。

在上面的代碼中主要是經過參數Duration實現緩存,若是咱們但願緩存的時間能夠本身配置的話,咱們還可使用CacheProfile參數,具體實現方法代碼以下:

C#代碼

public class HomeController : Controller
    {
        [OutputCache (CacheProfile="long")]
        public ActionResult Index()
        {
            return View();
        }
    }

修改web.config

ASP.NET MVC 監控診斷、本地化和緩存

3.3.3.更多介紹:

關於OutputCacheAttribute呢還有不少好玩的參數,能夠幫助咱們實現各類你想要的緩存方式。

ASP.NET MVC 監控診斷、本地化和緩存

ASP.NET MVC 監控診斷、本地化和緩存

OutputCacheAttribute能夠設置的參數有不少,根據不一樣的需求和業務使用的時候也不盡相同。關於更多OutputCacheAttribute的參數你們有興趣能夠看這裏

v博客總結

關於監控診斷、本地化和緩存的介紹就到這裏了,若是你們對這三個方向有興趣或者延伸能夠拿出來一塊兒討論研究。

以上部分信息來自MSDN/百度百科,在此很是感謝MSDN/百科對本篇博文的幫助,以及對博主學習/工做以及生活上的幫助。

 


做  者:請叫我頭頭哥
出  處:http://www.cnblogs.com/toutou/
關於做者:專一於基礎平臺的項目開發。若有問題或建議,請多多賜教!
版權聲明:本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文連接。
特此聲明:全部評論和私信都會在第一時間回覆。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信
聲援博主:若是您以爲文章對您有幫助,能夠點擊文章右下角推薦一下。您的鼓勵是做者堅持原創和持續寫做的最大動力!

相關文章
相關標籤/搜索