ASP.NET: Veri Tabanı
Bu bölümde entity framework veri erişim kütüphanesi kullanılarak temel veri tabanı işlemlerinin yapıldığı bir ASP.Net MVC uygulaması geliştirilmiştir.
Bilgisayar ortamlarında verilerin sistematik olarak saklanması için veri tabanları kullanılmaktadır.
Günümüzde birçok veri tabanı yönetim sistemi bulunmakla birlikte, en sık kullanılan sistemlerden birisi Microsoft SQL veri tabanı yönetim sistemidir.
Geliştirilen nerdeyse her uygulamada veri tabanı ihtiyacı bulunmaktadır. Veri tabanlarındaki verilere ulaşmak için, veri erişim teknolojilerine ihtiyaç duyulmaktadır. Microsoft firması tarafından geliştirilen veri erişim teknlojileri çatısına ADO.Net ismi verilmektedir.
Entity Framework, Microsoft tarafından geliştirilen açık kaynaklı bir veri erişim kütüphanelerinden bir tanesidir. Bu kütüphane ile, bağlanılacak veri tabanı sistemi farketmeksizin veri erişim kodları geliştirilebilmektedir. Bunun avantajı, uygulamanın kullandığı veri tabanı sonradan değiştirilse bile, uygulama kodlarında yapılacak değişikliklerin en az seviyede olmasıdır.
Entity framework ile veri işlemlerinin yapılabilmesi için temel anlamda 2 yaklaşım bulunmaktadır. Bu yaklaşımlardan birincisi code -first yaklaşımıdır. Code first yaklaşımında veri tabanı oluşturulmadan önce model sınıfları ve veri işlemlerinin yapılabilmesi için DbContext sınıfından türetilmiş bir context sınıfı yazılmaktadır. Bu sınıfın yazılmasının ardından, veri tabanı ve içindeki tablolar otomatik olarak Entity framework tarafından oluşturulmaktadır.
Code First yaklaşımı ile oluşturulacak olan tablolar ve alanların özelleştirilebilmesi için iki tane yaklaşım bulunmaktadır. Bunlardan birincisi Data Annotation Attribute'leri ile gerçekleştirilen yaklaşımdır. Bu yaklaşımda tablo veya alanların özelliştirilmesi, model sınıflarına yazılan Attribute'ler ile gerçekleştirilmektedir. Diğer bir yaklaşım ise Fluent Api tekniğidir. Fluent Api ile tabloların ve metodların özelleştirilmesi için yazılan Context sınıfında OnModelCreating() metodu override edileren zincirleme metodlar kullanılmaktadır. Her iki teknik de tabloların ve alanların özelliklerini belirlemek için kullanılmaktadır.
Entity framework kütüphanesinin ikinci temel yaklaşımı ise Database First yaklaşımıdır. Adından da anlaşılacağı üzere, geleneksel yazılım geliştirme modeline daha yakın olan bu yaklaşımda öncelikle veri tabanı oluşturulmaktadır. Projede kullanılacak olan model ve DbContext sınıfları ise bu veri tabanı yapısına göre yine Entity Framework tarafından oluşturulmaktadır.
Biribirlerinin tam tersi şekilde çalışan bu iki yaklaşımlardan birisi ile veri tabanı işlemleri yapılan proje geliştirilebilmektedir. Yazılımcılar, kendi geliştirme alışkanlıklarına göre yaklaşımlardan birisini seçebilmektedirler.
Entity Framework kütüphanesinin bir MVC projesinde kullanılabilmesi için NuGet Package Manager aracılığı ile projeye dahil edilmesi gerekmektedir.
Asp.Net MVC proje yapısında, veri tabanında yapılacak olan CRUD işlemlerinin hızlı bir şekilde yapılabilmesi için geliştirilmiş olan şablonlar bulunmaktadır.
Bu şablonlar controller sınıfları ekleme sırasında seçilerek, entity framework ile veri işlemlerinin yapılması sağlanabilmektedir. Temel veri işlemlerinin yapılabilmesi için şablonlar aracılığı ile CRUD işlemlerinin View’leri de otomatik olarak oluşturulmaktadır. View’ler ile birlikte controller içerisinde bulunan metodlar ile veri işlemleri yapacak kodlar da oluşturulmaktadır.
Bu yöntem temel veri işlemleri için geliştiricilere büyük kolaylıklar sağlamaktadır.
Oluşturulan kodlar üstünde sonradan değişiklikler yapmak da mümkün olduğundan aynı zamanda esnek bir sistemdir.