[Blog Post] ASP.NET MVC 4 Razor İpucu 7 – Performans İçin Kullanılmayan View Engine’leri Devre Dışı Bırakmak(Glimpse Kullanımı)


asp.net mvc 4Merhaba Arkadaşlar,

Bu yazımda ASP.NET MVC’de performans artırmaya yönelik olarak uygulanması oldukça kolay ve anlaşılabilir olan bir konu hakkında konuşacağız.

Niye: ASP.NET MVC caching konusunda Partial, View ve Display/Editor Template leri açısından genel olarak oldukça iyidir. Fakat eğer ASP.NET MVC projeniz içerisinde sadece tek türde View Engine kullanıyorsanız, diğer kullanılmayan View Engine’leri devre dışı bırakmak performans açısından yapılması gereken işlemlerden birisidir.

Html.EditorFor, Html.DisplayFor gibi model based Helper’ları View’ler içerisinde kullanıyorsanız, ilgili Helper, HTML markup ı olarak oluşturulmadan önce tüm View Engine’leri kontrol ederek bir HTML markup a çevirecek bir template aranmaktadır. Ne kadar fazla View Engine’niniz varsa bu işlem o kadar uzun sürecektir.

Nasıl: Aşağıdaki kodu yazmak aslında bu cümleyi yazmaktan daha kısa sürmektedir.

global.asax dosyası içerisindeki Application_Start metotunun içerisine aşağıdaki kodu yazıyoruz:

ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new RazorViewEngine());

Peki Arka Tarafta Neler Oluyor? Projede Kaç Tane View Engine Var? Gerçekten Tüm View Engine’lere Bakılıyor Mu?

global.asax içerisindeki Application_Start metotunun son satırına break point koyup, default olarak oluşturulan Visual Studio 2012 ile bir ASP.NET MVC 4 Basit Template projesinde kaç adet View Engine var inceliyoruz:

global_asax_View_Engines_Count_WebFormViewEngine_RazorViewEngine

Projemize sadece Home adında bir controller ekleyelim ve projeyi çalıştırdığımızda hem .aspx li dosyalara hem de .cshtml / .vbhtml türünde index veya master/layout lara baktığını göreceğiz:

index_bulunamadi_view_engine_asp_net_4

Glimpse ile Tarayıcı Üzerinden Kullanılan ViewEngine’leri İnceleme

Glimpse açık kaynak kodlu bir uygulamadır. Tarayıcı üzerinden çalışma zamanlarını, server configuration ları, request ve data kullanımını görebileceğiniz bence her ASP.NET (MVC) geliştiricinin kullanması gereken Nuget Package larından birisidir.  Projenize yüklemek için sadece ilgili Nuget Package larını yüklemeniz gerekiyor. Ayrıca Glimpse ile ilgili bir yazı paylaşacağım.

Package Manager Console’u açıp açıp => Önce “Install-Package Glimpse“, daha sonrada “Install-Package Glimpse.Mvc4” yazmanız yeterlidir. Ayrıca aktive etmek için “http://localhost:portno/Glimpse.axd” adresine gidip oradan “Turn Glimpse On“, deaktif etmek içinde yine adrese gidip “Turn Glimpse Off” demeniz yeterlidir.

Tüm bunları yaptıktan sonra ben Home Controller içerisine Index adında bir View ekledim ve gelin birlikte Glimpse ile hangi ViewEngine ler çalışıyor ve nelere bakıyor bunları görebiliyoruz.:

glimpse_views_viewEngine_Partial

Böylece ASP.NET MVC’nin çalışırken hangi ViewEngine’lere baktığını, ve küçük bile olsa kaybettirdiği performansı görebiliyoruz. Sonuçta bir proje içerisinde onlarca View’iniz olabilir ve bunların her birisine bu şekilde bakılması performans için önemli diyeceğimiz bir miktara çıkacaktır.

Sonraki yazılarımda görüşmek üzere

http://www.hanselman.com/blog/IfYoureNotUsingGlimpseWithASPNETForDebuggingAndProfilingYoureMissingOut.aspx

, , , , , , ,

  1. #1 by oğuzhan açar on December 3, 2013 - 1:21 am

    çok hoş ve faydalı bir yazı olmuş bir çok ASP.NET MVC ile uygulama geliştiren herkezin çok işine yarıyacağını düşünüyorum bende.

  1. [Blog Post(Turkish)] ASP.NET MVC İle İlgili Tüm Yazılarım (31 Yazı, 1 Yazı Dizisi ve 1 İpucu Serisi) [Güncellendi] | Mahmut Can Sozeri

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: