Makale Özeti

Bu yazımda Dynamic Data özelliklerin ASP.Net MVC ile nasıl kullanabileceğimizi inceleyeceğiz.

Makale

İş uygulamaları kullanıcı istemlerine bağlı olarak sürekli değişm göstermektedir. Yapılan değişiler çoğulukla, veritabanın üzernde yeni analnlar eklenmesi  ya da çıkarılması şeklinde olmaktaydı. .Net Frework 3.5 Service Pack 1 ile konu ile ilgili bir dizi yenilikler gelmişti. Bu yeniliklerin başında ise DynamicData bulunmaktaydı.

DynamicData ile LinqToSQL ya da Entity Framework araçların herhangi birini yardımı ile veritabanı yapsını uygulama tarafında oluşturmamız ve DynamicData tanıtmamız gerekiyordu. Yapılan bu işlem sonucunda veritabanında var olan tablo yapısna karşılık, dinamik olarak kayıt ekleme,sileme ve günceleme alanları oluşturulmaktaydı.Bu yazımda, bu kolaylığı ASP.Net MVC ile nasıl kullanabileceğimizi inceleyeceğiz.

Örnek uygulamamıza başlamadan önce, uygulamamızda kullanacağımız attribute yapılarını inceleyelim. ASP.Net MVC uygulamalarında dinamik olarak arayüzleri oluşturmak için UIHint ve Display attribute kullanılmaktadır. söz konusu nesneler kullanmakta olduğumuz Model nesnede bildirilmektedir.  İlk olarak bildirimleri nasıl gerçekleştirdiğimizi inceleyelim.

using System;

using System.ComponentModel.DataAnnotations;

 

public class Person

{

    public int ID { getset; }

 

    [Display(Name = "Ad & Soyad"), Required]

    public string Name { getset; }

 

    [Display(Name = "Yaş"), Required]

    [UIHint("DatePicker")]

    public DateTime Age { getset; }

 

    [Display(Name = "Biyografi")]

    [UIHint("HtmlEditor"), Required]

    public string Bio { getset; }

}

 

Uygulamamızda kişi(Person) nesnesi kullanacağız. Sınıf içerisnde de kullandığımızi Display attribute ile Html formunda kullanacıya sunulduğunda alanın adı şeklinde görünmktedir.

ASP.Net MVC, DynamicData özelliği kullanmak için Shared klasörü altına EditorTemplate klasöür olmuşturalım. Oluşturduğumuz bu klasörü içerisnde DynamicData ile ilgili hazırlayacağımız kontroller bulunacaktır. Biz uygulamamızda DatePicker ve bir editor alanı oluşturacağınız. Bu işlem için EditorTemplate klasörü içerisnde gerekli kullanı kontroller(User Control) nesnelerini ekleyelim.

Description: D:\IBRAHIM\Documents\My Articles\ASP.Net MVC\ASP.Net MVC ve DynamicData Kardeşliği\templatefolder.PNG

Hazırladığımız kontrolleri sınıf içersinde belirtmek için UIHint attribute kullanmaktayız.UIHint attribute nesnesini örnek olarak hazırladığımız Person sınıfında da olduğu gibi UIHint(“hazırlana kontrol”) şeklinde tanımlanmaktadır. Eklemiş olduğumuz DatePicker kontrolünü inceleyelim.

DatePicker kontrolü, içerisinde TextBox nesnesi tanımlıdır. Tanımlı olan TextBox nesnesi, Model papametresi ile UIHint titeliğini tanımladığı yerdeki özelliğe(poperty) eşlenmesini sağlamaktadır.

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

<link href="../../../Scripts/datepicker/jquery-ui-1.8.10.custom.css" rel="stylesheet" type="text/css" />

<link href="../../../Scripts/datepicker/jquery.ui.datepicker.css" 

                         rel="stylesheet" type="text/css" />

<link href="../../../Scripts/datepicker/jquery.ui.theme.css" 

                       rel="stylesheet" type="text/css" />

<script src="../../../Scripts/datepicker/jquery-ui-1.8.10.custom.min.js" type="text/javascript"></script>

 

<script type="text/javascript">

      $(function () {

          $(".datePicker").datepicker();

      });

</script>

 

<%=Html.TextBox("", Model, new { @class = "datePicker" }) %>

 

 

DynamicData yapısını ASP.Net MVC kullanımı kontrol nesnelerini oluşturduk. Oluşturduğumuz kontrol nesneleri UIHint niteliği ile tanımlı olan propertiy nesnelerini kullanan View arayıcılığı ile çağırılmakta ve form yapısını oluşturmaktadır. Şimdi hazırlamış olduğumuz örneği test edelim.

Description: D:\IBRAHIM\Documents\My Articles\ASP.Net MVC\ASP.Net MVC ve DynamicData Kardeşliği\applicationtest.PNG

Bu yazımda DynamicData özelliklerini kullanarak ASP.Net MVC de hazırlı arayüz oluşturmaya anlatmaya çalıştım. Örnek uygulamaları aşağıdaki bağlantıda edinebilirsiniz. (Örnekler Razor ve WebForm View Engine kullanılarak hazırlanmıştır.) Konu ile ilgili sorularınızı info@ibrahimatay.org eposta adresine sorabilirsiniz.

İyi çalışmalar

IBRAHIM ATAY

 

Not: Makalemizde gerçekleştirmiş olduğumuz örneği bağlantıdaki yazıdan edinebilirsiniz.