Subsonic

.NET dünyasında bir ORM fırtınası esiyor bu aralar. Ruby on Rails ile gelen Active Record mantığı çeşitli projeler tarafından .NET dünyasında uygulanmaya çalışılıyor. Örneğin Castle Framework ve NHibernate bunlardan ikisi. Nhibernate ile uğraşırken çok hoşuma gitmişti. Ayrıca bir takım kodları Code Smith ile üretmek ve zamandan kazanmak iyi bir şey gibi gelmişti. Ta ki proje müdürümüz Phil, Subsonic’den bizi haberdar edinceye kadar. Bizim Subtext projesinde veritabanı katmanı çok hantal ve değişiklik yapmaya kalktığınızda 3 yerde birden değişiklik yapmanız gerekiyor. Subsonic kullanmak için şimdi bir takım fikirler geziyor. Önceleri NHibernate fikirleri geziyordu ama şimdi Subsonic bunu solladı.

Nedir Subsonic?

Subsonic hiç kod yazmadan size bir veritabanı katmanı sunuyor. Bir kaç gündür oynuyorum ve hakikaten ağzım açık kaldı. Düşünecek olursanız; eğer veritabanınız iyi tasarlanmış ise, bu tasarımı temel alarak çeşitli nesneler oluşturabilir ve bu nesnelerede çeşitli temel metodlar bağlayabilirsiniz. Bu nesneleri derleme aşamasında oluşturursanız veritabanında yapacağınız her türlü değişiklikte anında nesneler üzerinde uygulanacaktır. Subsonic’i geliştirenler zaten Ruby on Rails programcısı oldukları için pek çok fikride Ruby on Rails’den çalmışlar öhö öhö esinlenmişler.

Nasıl Oluyor?

Codeplex’den son sürümünü indirip örnek projesini inceleyerek de öğrenebilirsiniz. Ben genel olarak bir bilgi vereyim ve ne kadar basit olduğunu görün. Hani WordPress kurmak çok basittir ya, Subsonic kullanmanın yanında o bile “roket mühendisliği” kalıyor.

VS2005 ile bir Web Sitesi oluşturun ve Subsonic.dll bileşenini projeye dahil edin.

App_Code altında Builder.abp adında bir dosya yaratın.  Bu dosya veritabanından istediğiniz tabloları nesne olarak almak için bir listedir. Eğer sadece ” * ” kullanırsanız tüm tablolar gelecektir. Yada tablo isimlerini alt alta sıralayın.

web.config dosyasını açın ve örnek projedeki gibi düzenleyin. Burada Subsonic için gerekli veritabanı bağlantı cümlesini ve abp dosyasının derlenebilmesi için Build Provider’ı belirtmeniz gerekiyor.

Bu ayarlardan sonra projeyi derleyin ve intellisense kullanarak mevcut nesnelere bir göz atın. Veritabanında örneğin Musteri isiminde bir tablo varsa Musteri ve MusteriCollection isminde iki yeni nesne belirdiğini göreceksiniz. Bu nesneleri kullanarak istediğiniz işlemleri yapmak mümkün.

Ayrıca bir de Query nesnesi mevcut ve istediğiniz sorgulamayı yazmanızı sağlıyor. SPs nesnesi ile de stored procedure çalıştırmak mümkün.

http://www.wekeroad.com/actionpackintro.html adresinde bir de öğretici video var. Biraz eski ama idare eder.

Eğer ReSharper kullanıyorsanız dikkat edin, tablo nesnelerinin hepsi hafızada oluşturulduğu için VS2005 intellisense ile gözüküyor fakat ReSharper ile gözükmüyor. Proje açıkken ReSharper eklentisini açıp kapatmak gerekiyor ki nesneleri görebilesiniz.

Sonuç

Sonuç olarak eğer yeni bir projeye başlıyorsanız kesinlikle tavsiye edeceğim bir yöntem. İlerlemiş projelerde veritabanı katmanını değiştirmek kolay olmayabilir ama genede deneyip bir yarar görecek misiniz diye araştırmak, fiyat performans açısından kazandırabilir.

 

Technorati tags: , ,
Posted in Bilişim, Türkçe.