Makale Özeti

Bu makalede, Spark View Engine kolaylıklarından yararlanarak MVC uygulamalarında global namespace(isim alanı) tanımlamalarını nasıl yapabileceğimizi inceleyeceğiz.

Makale

Bir önceki yazımda, Spark View Engine hakkında kısa bir giriş yapmıştık. Bu yazımda Spark View Engine ‘in kolaylıklarında biri olan Global namesapce kullanımını inceleceğiz.ASP.Net WebForm ya da MVC(aspx) sayfasında, herhangi namespace ayıt bir nesne kullanmak istediğimizde o nesnenin ayıt olduğu namespace sayfa tanım alanında import etmemiz ve bunu kullanmak istediğimiz diğer sayfada aynı şekilde kullanmamız gerekmektedir.

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/ViewMasterPage1.Master" Inherits="System.Web.Mvc.ViewPage" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="System.Web" %>
<%@ Import Namespace="System.Web.Mvc" %>
<%@ Import Namespace="System.Web.Mvc.Html" %>

 

 

Peki, Spark View Engine ile bu işlemi nasıl şekilde gerçekleştiriyoruz. Konu ile ilgili olarak Spark View Engine de iki yöntem vardır. Bunlar;

·         Global dosya tanımlamak

·         Web Config de bulunan Spark elementleri arasında tanımlama yapmak

Maddelinmiş yöntemler sayesinde Spark View Engine ile uygulama geliştir iken, sık kullanmış olduğumuz namesapce ‘i bir kere tanımlayıp birden fazla yerde tekrar tanımlama yapmadan kullanmamıza izin vermektedir. Şimdi söz konusu yönetmeleri inceleyelim.

Not: Bir önceki makalemde Spark View Engine projenize nasıl kuracağınızdan bahsettiğim için, bu noktayı atlıyorum.

İlk kullanım olarak, web config dosyasındaki tanımla şeklini inceleyelim.

<spark>
   <compilation debug="true"/>
   <pages automaticEncoding="true">
      <namespaces>
         <add namespace="System"/>
         <add namespace="System.Collections.Generic"/>
         <add namespace="System.Linq"/>
         <add namespace="System.Web.Mvc"/>
      </namespaces>
   </pages>
</spark>

 

 

Görmüş olduğunuz çözüm, global de bulunan web config dosyasında Spark elementleri arasında bulunan pages elementini eklem ile başlamaktadır(Pages elementi genel olarak sayfalar ile ilgili tanımlamalarını yapabileceğimiz alanadır.).Daha sonra pages elementinin altına namespace elementinin ekleyerek sık kullanmış olduğumuz namesapace ekliyoruz.

Not: Burada dikkat edilmesi gerek bir nokta olarak ise, pages elementin içerisindeki automaticEncoding niteliğidir. automaticEncodiong niteliği View içerisinde !{} şeklinde yapmış olduğumuz tanımlamaların sayfa içerindeki şifrelenme ile ilgilidir. Varsayılan olarak “true” olarak atanır.

İkinci yöntem ise, projemize bir global dosya kazandırmak olacaktır. Bunu için projemize _global.spark isimli bir text dosyası ekleyelim.

Not: Spark View Engine, bu dosyayı genelde Shared ya da Layout içerisinde aradığı için buna dikkat edilmesi gerekmektedir.

Spark-View-Engine-Tress.PNG

Görmüş olduğunuz gibi projemize bir global dosya eklemiş olduk. Şimdi tanımlama şeklini inceleyelim.

<use namespace="System.Collections.Generic"/>
<use namespace="System.Web.Mvc.Html"/>
<use namespace="System.Web.Mvc"/>
<use namespace="System.Web"/>
<use namespace="System"/>
<use namespace="System.Web.UI"/>
<use namespace="System.Collections"/>
<use namespace="System.Linq"/>

 

Yukarında gördüğünüz gibi use elementi içerisine namespaces niteliği açarak kullanmak istediğimiz namespace import edebiliyoruz(<use namesapce=”System”/>).Anlatmaya çalıştığım iki yöntem ile yaptığımız tanımlamalar, projemizde bulunan “.spark” uzantılı tüm view içersinde her hangi bağımsız tanıma gerek duymadan kullanabilmekteyiz.

Not: Üzerinde çalıştığınız proje içerisinde birden fazla global dosyası oluşturma teknik sorunlara çeşitli sorunlara neden olabilir.

Son olarak, çalıştığımız view içersinde çok global olmaya ve sadece o, view içerisinde tanımlamak istediğimiz durulmada ise <use namesapce=”System”/>  şekilden tanımlama yapabilmekteyiz.

<use namesapce="MyBlog.Data.DataAccess.DAO"/>
<content name="Title">
  Index
</content>
<content name="Main">
    <h2>!{ViewData["Message"]}</h2>
    <p>
        To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc"
         title="ASP.NET MVC Website">http://asp.net/mvc</a>.
    </p>
</content>

 

 

Bu yazımda Spark View Engine ile local ve global namesapce tanımlama işlemlerini görmüş olduk. Konu ile ilgili sorularınızı info@ibrahimatay.org mail adresi yönetebilirsiniz.

Herkese kolay gelsin.

IBRAHIM ATAY