SubSonic yeni versiyonu yayınlandı. Bu yeni versiyonda eskiye nazaran bir çok yenilik mevcut. Ayrıca hep şikayet ettiğimiz bir çok Türkçe hatası giderilmiş durumda.
Benim gözlemlediğim değişiklikler şu şekilde :
- SubStage : Class oluşturan sonic.exe halen kullanılmakla birlikte artık SubSonic ; classları oluşturabilen, scaffolding testi için dahili bir web server barındıran, ayarların saklanabildiği ve daha bir çok yeni özelliği üzerinde barındıran bir windows uygulamasına sahip.
- Yeni sorgulama yapısı tıpkı Linq gibi kullanılabilmekte.
- Sayfalama (Paging) eğer SQL Server 2005 üzeri bir versiyon kullanıyorsanız artık sayfalama SQLServer 2005 ROW_NUMBER() fonksiyonu ile sağlanmakta (Eskiden bir temp tablosuna yazılıyordu) ve bu da performans arttırıcı bir etken olacakmış gibi görünmekte.
- Generics : C# 2.0 dan sonra gelen bu özellik SubSonic te neredeyse her yerde kullanılmakta.
- Türkçe problemleri giderildi (bu linkte daha önce belirttiğim hatalar).
- Devamı daha sonraki incelemeler sonucunda gelecek ... :)
Örnek olarak sizlere bir kaç kod göstermek isterim (Dikkat : Subsonic bağımlılık yapabilir).
SubSonic kullanılan bir projede:
- Bir tablodaki toplam kayıt sayısını bulmak :
int records = new Select("productID")
.From("Products").GetRecordCount();
- Bir tabloyu nesne olarak kullanmak :
Product p = new Select().From<Product>()
.Where("ProductID").IsEqualTo(1).ExecuteSingle<Product>();
- Max kaydı bulmak :
double result = new
Select(Aggregate.Max("UnitPrice"))
.From(Product.Schema)
.ExecuteScalar<double>();
- Çoklu Join kullanımı ve sonuçların Collection olarak döndürülmesi :
CustomerCollection customersByCategory = new Select()
.From(Customer.Schema)
.InnerJoin(Order.Schema)
.InnerJoin(OrderDetail.OrderIDColumn, Order.OrderIDColumn)
.InnerJoin(Product.ProductIDColumn, OrderDetail.ProductIDColumn)
.Where("CategoryID").IsEqualTo(5)
.ExecuteAsCollection<CustomerCollection>();
- Sayfalama :
SubSonic.SqlQuery q = Select.AllColumnsFrom<Product>().
Paged(1, 20).Where("productid").IsLessThan(100);
Daha detaylı bilgiler için (İngilizce):
SubSonic 2.1 indirmek için tıklayın