.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: , ,

Reklamlar


Bu girdiye atılan yorumlar:

# re: Subsonic

Video gayet etkileyici idi. Denemeyi düşünüyorum.Acaba Subsonic ile ciddi bir web projesine başlanmasını tavsiye edermisiniz ?

kemal tarafından  2/17/2007 2:48 AM tarihinde atılmıştır.
# re: Subsonic

Tavsiye ederim tabii, Henüz bir dataset kadar gelişmiş olmasa da işleri kolaylaştırdığı kesin. Bir araştırayım profesyonel bir proje var mı diye.

Gürkan Yeniçeri tarafından  2/17/2007 9:44 AM tarihinde atılmıştır.
# re: Subsonic

Sabırsızlıkla bekliyorum. Bu günlerde yeni projenin DAL yapısını tasarlayacağım. Eğer ok derseniz hemen başlıyorum. :)
açıklamalarınız için teşekkürler..

kemal tarafından  2/17/2007 10:19 PM tarihinde atılmıştır.

Yorumunuzu buradan giriniz

Yorumlar onaylandıktan sonra yayınlanacaktır

*


*


 (Görüntülenmeyecek)


 (İsminizde link olarak görüntülenecek)

*
Bold Italic Underline Blockquote Hyperlink Hyperlink

 

Please add 3 and 7 and type the answer here:

Yorum Önizleme:

 

Arama



Hakkımda

Merhaba, ben Gürkan Yeniçeri. 9 yılı aşkın süredir özel sektör ve hükümet iştiraklerinde yazılım mühendisliği yapıyorum. Bu sitede 2005 Mart ayından beri genelde yazılım mühendisliği ve Microsoft teknolojileri hakkında yazmaktayım. Profesyonel iş geçmişim hakkında daha fazla bilgiyi aşağıdaki Çember.net linkinden alabilirsiniz.
Çember.net
Faturaları ödeyen günlük işim dışında Açık Kaynak Subtext Projesine katkıda bulunuyorum. Bu blogun alt yapısıda Subtext ile hazırlanmıştır. Ayrıca 1999 yılından beri Programlama.com sitesinde VB6 editörlüğü yapıyorum. Fakat takdir edersinizki VB6 artık ölü bir dil, bu nedenle beta sürümlerinden beri C# ve ASP.NET programcılığı ile uğraşıyorum.

kontak

Soru sormak veya öneride bulunmak isterseniz buradaki kontak formunu kullanın. Mesajlarınıza en kısa zaman içinde cevap vermeye çalışacağım. Ayrıca Windows Live Messenger kullanarak gyeniceri {AT} hotmail {DOT} com adresinden bana ulaşabilirsiniz.
Eğer İngilizce blogumu okumak isterseniz buraya buyrun.
Blogumu RSS Bandit gibi bir RSS okuyucusu ile de takip etmek için kullanın.
RSS 2.0

Reklamlar


imleme

Yumilerime ekle   Reddit Türkçe'ye ekle   Limkle   Bag-kur

Vezir

Vezir Proje Danışmanı
Sitede birde Vezir isminde wikimiz var. Bu wikiyi yazmayı düşündüğüm bir kitap için oluşturmuştum daha sonra herkese açmaya karar verdim. Vezir yazılım firması kurmak isteyenlere tavsiyeler vermek için hazırlandı. Ayrıca UML ve Modül Tabanlı Geliştirme hakkında da bilgiler mevcut. Vakit buldukça yeni eklemeler yapıyorum. Değişikliklerden haberdar olmak için RSS çıktısına üye olabilirsiniz.
www.flickr.com
This is a Flickr badge showing public photos from gurkanyeniceri. Make your own badge here.
Bu blogda 250 yazı ve 336 yorum var. Diğer sitelerden 7 adet link gelmiş.

Buradayım

my blogmap

Reklamlar