ASP.Net MVC ve Dynamic Data Kardeşliği

İş uygulamaları, kullanıcı isteklerine bağlı olarak sürekli değişim göstermektedir. Yapılan değişiler çoğunlukla veritabanında bulunan tablolarla ilişkili olarak, yeni alan eklenmesi ya da çıkarılması şeklinde olmaktaydı. .Net Framework 3.5 Service Pack 1 ile konu ile ilgili bir dizi yenilik gelmişti. Bu yeniliklerin başında ASP.NET Dynamic Data bulunmaktaydı.

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

Not: ASP.Net Dynamic Data konusu ile ilgili ayrıntılı bilgi için bağlantıyı inceleyebilirsiniz.

Örnek uygulamamıza başlamadan önce, uygulamamızda kullanacağımız nitelik bildirimlerinde bahsedelim. Dynamic Data özelliklerini ASP.Net MVC de kullanmak için UIHint ve Display niteliğini kullanmaktayız. UIHint nesnesi hazırladığımız kontrolleri, çalışmakta olduğumuz View içerisine çağırmamızı sağlamaktadır. Display niteliği ise, görünüm ile ilgili özellikleri düzenlememiz sağlamaktadır. Örnek vermek gerekir ise, Name parametresi ile html formu içerisinde, görünecek olan alan adı olarak görünmektedir.

usingSystem;

usingSystem.ComponentModel.DataAnnotations;

 

public class Person

{

    public intID { get; set; }

 

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

    public stringName { get; set; }

 

    [Display(Name = “Yaş”), Required]

    [UIHint(“DatePicker”)]

    public DateTimeAge { get; set; }

 

    [Display(Name = “Biyografi”)]

    [UIHint(“HtmlEditor”), Required]

    public stringBio { get; set; }

}

Söz konusu Dynamic Data özelliği kullanmak için kullanacağımız kontrolleri oluşturmamız gerekmektedir. Oluşturacağımız kontrollerin Shared klasörü altına EditorTemplate isimli oluşturacağımı klasör içerinde barındıracağız. EditorTemplate isimli klasör içerisine DatePicker ve HtmlEditor isimli iki Web kontrol ekleyelim.

image

Sınıf içerisinde tanımlamış olduğumuz property‘i  hazırladığımız kontroller ile nitelendirmek için UIHint  attribute kullanır. kullanmış olduğumuz UIHint attribute kullanımı ile ilgili örnek vermek gerekir ise,  UIHint(“kontrol ismi”)  şeklinde kullanılmaktadır.

Örnek uygulamamızda kullanmış olduğumuz DatePicker kontrollünü inceleyecek olursak; kontrol içerisinde TextBox nesnesi tanımlıdır. Tanımlı olan TextBox nesnesi, Model nesnesi ile UIHint nitelendirmesi yapılan property 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”}) %>

 

Bu noktaya kadar, sınıf içerisinde bildirimlerimizi gerçekleştirdik ve Web kontrollümüzü tasarladık. Yaptığımız işlemler sonucunda sınıfın oluşum(Create) ile ilgili View istendiğinde Yaş alnında işimizi kolaylaştıracak bir DatePicker aracı bizi karşılayacaktır. Şimdi uygulamamızı test edelim.

applicationtest

Bu yazımda .Net Framework 3.5 Service Pack 1 ile kullanıcılara sunulan Dynamic Data yapısını ASP.Net MVC tabanında nasıl kullanabileceğimizi inceledik. Konu ile ilgili örnekleri aşağıdaki bağlantıdan 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.

IBRAHIM ATAY

Teşekkürler

Leave a Reply

Your email address will not be published. Required fields are marked *