|
CLR İş başında : Kod Adı Yukon |
|
Gönderiliyor lütfen bekleyin... |
|
|
Microsoft NET
vizyonunu geliştirdiği yeni ürünlerle desteklemeye devam ediyor. Bu yazıda
Microsoft’un veritabanı yönetim sistemi Sql Server ’ın beta aşamasında olan
yeni sürümü Yukon’u genel hatlarıyla inceleyeceğiz. Başlamadan önce bir
noktanın altını çizmek istiyorum. Beta aşamasında, kullanılan bir çok özellik,
geliştirilen bir çok araç, dağıtım sürümünde belki çok değişmiş olarak
karşımıza çıkacak, belki de tamamen kaldırılmış olacak. Bu yüzden
okuyacaklarımızı kesin özellikler olarak algılamak yerine muhtemel özellikler
olarak düşünmek çok daha uygun olacaktır. Şmdi adım adım Yukon’u incelemeye başlıyalım.
CLR desteği:
Yukon’un en
dikkat çekici özelliği CLR ile temel bir işbirliği içinde çalışabilmesi. Bu
sayede kendinizi en rahat hissettiğiniz .net dili ile veritabanı nesneleri
oluşturma, düzenleme ve yönetimini sağlama imkanına kavuşuyoruz. Artık
geliştirici T-Sql kullanmadan, istediği dilde
(Vb.Net,C#...) veritabanı üzerinde trigger ’lar , stored procedure’ler ya da
fonksiyonlar yazabilecek, veritabanları oluşturup silebilecek. Bu aynı zamanda
herhangi bir veritabanı nesnesi yazarken binlerce ( abartmıyorum :) ) bileşeni
sunan .Net Class Library’den faydalanabilme
anlamına da geliyor.
Fikir vermesi
açısından, aşağıda girilen Id ‘ye göre isim döndüren bir fonksiyon görüyoruz.
Kodun ayrıntısına girmeden, kabaca SqlContext
bağlantıyı sağlayan sınıfımız diyebiliriz. (Ado.NET’in yeni sürümünde Yukon’a
destek vermek üzere bu tarzda, aşina olduğumuz ama yeni sınıflarla karşılacağız.)
Imports System.Data.Sqlserver
Imports System.Data.Sql
Public Class Kitaplik
<SqlFunction(DataAccess=DataAccessKind.Read)>
Public Shared Function YazarDondur() as
String
Dim cmdSql As Sqlcommand = Sqlcontext.GetCommand()
cmdSql.CommandText= "Select
Yazar from Kitap where KitapId = @prmKitapId"
Dim prmKitapId As SqlParameter =
cmdSql.Parameters.Add("@prmKitapId",SqlDBType.String)
prmKitapId.Direction = ParameterDirection.Input
prmKitapId.Value="K001"
Return Ctype(cmdSql.ExecuteScalar(),String)
End Function
End Class
|
Bundan önce
kullandığımız Ado.NET kodlarına ne kadar da benziyor değil mi? Gördüğünüz gibi
kodları yorumlamak .net ile haşır neşir olanlar için hiç de zor değil. Sql
Server’ ı programlamak için yeni bir dil öğrenmek yerine bildiğimiz dili Sql
Server’ın desteklemesi elde edinilen bilginin katlanarak artmasına olanak
sağlıyor.
Şuna da dikkat
çekmek gerekiyor. T-Sql rafa kaldırılmış durumda değil.
Yukon’da T-Sql
işlevselliğini, geliştirilmiş
deyimlerle , koruyor. Try/Catch
yapısının eklenmesi ya da CLR ile bütünleşmesi için eklenen deyimler bu
gelişime örnek verilebilir. Aşağıda Try/Catch yapısına ait bir örnek bulunuyor;
BEGIN TRY
BEGIN TRAN
INSERT INTO tblMusteri (Id,MusteriAdi,Bakiye,Tarih)
VALUES (@Id, @MusteriAdi,
@Bakiye, GETDATE())
COMMIT TRAN
END TRY
BEGIN CATCH TRAN_ABORT
ROLLBACK
INSERT INTO tblHatalar VALUES (’Hata Oluştu’))
END CATCH |
Peki bazı işlemleri hem T-Sql ile hem .Net programlama dillerinden biriyle
yapabileceksek T-Sql ve .Net kodu arasında tercihi neye göre belirleyeceğiz?
Genel olarak T-Sql’in, veriye basit erişim işlemleri için kullanılması daha
uygunken .net kodlarının veri üzerinde daha karmaşık (ileri düzey matematik ya
da katar işlemleri gibi) işlevleri yerine getirirken kullanılması uygun olacak
diyebiliriz..
CLR ile bütünleşme
beraberinde arttılmış güvenliği
(code access security v.b.),
bellek yönetimini (garbage collection v.b.) ve
çok kanallı (multi threading)
programlanabilmeyi de getiriyor. Burada sadece adını andığımız bu başlıkların
hepsi başlı başına birer uzmanlık konusu. Genel olarak baktığımızda ise Yukon-CLR
işbirliği işlevsellik açısından ani bir patlama gibi.
Peki bu işbirliği
sayesinde, madem Yukon .net kodlarını işletebiliyor, peki o zaman kodlar nerede
duracak? Yukon sunucusu üzerinde mi, yoksa istemci üzerinde mi? Bu sorunun
cevabı sizin tercihinize kalmış. Kodlarınızı, eğer sunucunuzun kullanılmayı
bekleyen kaynakları varsa sunucuda, istemcileriniz güçlüyse istemcilerde
çalıştırmayı tercih edebilirsiniz. Bu sayede yük dengesini istediğiniz gibi
düzenleyebilir, sunucu(lar) üzerindeki aşırı yüklenmeyi engelleyebilir,
istemcilerin atıl durumdaki kaynaklarını değerlendirebilirsiniz.
XML ve YUKON:
Yukon, XML ‘e verdiği
destekle de ön plana çıkıyor. Aslında Sql Server 2000’de XML desteğiyle
tanışmıştık. Bu sayede veritabanından bilgileri XML olarak çekebiliyor, XML Web
Servisleriyle uyumluluğu sağlayabiliyorduk. Yukon’la birlikte bu destek,
eklenen XML veritipiyle , XSD şemalarına verilen destekle, XML veritipi üzerinde Xquery ile geliştirilmiş XML sorgulama yöntemleriyle daha
da geliştirilmiş durumda.
Yukon web servisleri
tarafında da bir çok yeniliği haber veriyor. Örneğin, Yukon belirlenen bir Http portunu dinlemek üzere ayarlanabiliyor. Bu
sayede IIS gibi arakatmanlara gerek kalmadan sorgulama yapbiliyor, sonuçları
XML olarak verebiliyor.
Service Broker:
Service Broker, Yukon’un
dağıtık sistemler için verdiği desteğin bir uzantısı. Service Broker eşzamanlı
ilerlemeyen işlerin birlikteliğini sağlamak üzere Yukon’a eklenen bir mesajlaşma teknolojisi. Mesajları gruplandırma ve
paralel erişim imkanlarıyla geliştirilmiş entege bir mesajlaşma sistemi. Böyle
bir mesajlaşma teknolojisinin de Sql Server ile entegrsayonu geliştiricileri
kullandıkları dille (T-Sql,Vb.Net,C#,…) rahatlıkla mesajlaşma teknolojisini
kullanabilme yeteneği kazandırıyor.
Reporting Services:
Yukon’la birlikte
raporlama üzerine de birçok yenilik getirilmiş durumda. Kullanılan Reporting Services altyapısıyla raporlar istenilen
formata (pdf,text,html,vs.) aktarılabiliyor.
Workbench:
En çok kullanacağımız
aracı en sona bıraktım: Workbench, Enterprise Manager ve Query Analizer’ın
birleşimi olarak düşünülebilir. Visual Studio (Visual Studio ‘nun yeni sürümü
olan Whidbey) içine dahil edilmiş durumda. Tıpkı bir proje geliştiriyormuş gibi
analiz ve raporlama araçlarından hatta IntelliSense kolaylığından bile
yararlanabiliyorsunuz. Aşağıda Workbench’in görüntüsü bulunmakta;
Sonuç olarak
diyebiliriz ki; Sql Server’ın veritabanı üzerindeki yeteneklerini ve CLR’ın
yönetim kabiliyetini ve .net Framework Class Library’ın işlevselliğini
birleştirince “Yukon” ortaya çıkmış. Bakalım Microsoft Sql Server’ın
yeni sürümü dağıtım aşamasına geldiğinde bize ne gibi süprizler hazırlamış olacak. Böylelikle genel hatlarıyla Yukon’u
incelemiş olduk. Değerlendirme ve yorumlarınızı bekliyorum.
Kâsım GÜLCAN
[email protected]
Makale:
CLR İş başında : Kod Adı Yukon ADO.NET ve SQL Kasım Gülcan
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|