Zemin Zemin
bos
         Makalelerde Haberlerde Gruplarda
Arama Göstergesi
Site içi arama Site içi arama
Anasayfam Yap Favorilerime Ekle Bize Ulaşın IE7 Provider
BETA 2.1
IE6.0+, FireFox 2.0'ı destekler
 
   
bos bos bos
bos
Kapat

İlk Yorumu Siz Yapın.



Başlık
Yorum
« Geri Yorumlar Makaleyi Sakla Arkadaşıma Gönder Yazdır

Yazar : Timur Gündoğdu
Okunma Sayısı : 3374
Tarih : 20.12.2004 21:16:00
Kategori : ASP.NET
Konu : Microsoft.ApplicationBlocks.Data
Açıklama : VERİ ERİŞİMİ İÇİN UYGULAMA BLOKLARI

Microsoft Application Blocks, SQL Server'daki Stored Procedure'leri kullanmanızı ve SQL cümleleri ile SQL Server'a bağlanmanıza yardımcı olan bir .NET Bileşenidir.Bu bileşen SQL Server'dan Dataset, XMLReader ve SQLDataReader nesneleri döndürür.Uygulamalarınızda veritabanı ile ilgili işlemlerdeki kod miktarını azaltmak için bu bileşeni kullanabilirsiniz.

Microsoft Application Blocks ile neler yapabiliriz?
-SQL Server'daki Stored Procedure' ları ve SQL text command'ları çalıştırabiliriz.
-Parametre detaylarının belirleyebiliriz.
-SQLDataReader, DataSet, XMLReader nesneleri ve tek değer döndürebiliriz.
-Parametre Caching ' i desteklemesi sayesinde performansta ciddi kazanımlar elde edebiliriz.
-DataSet 'i kullanıcı tanımlı bir update komutu ile güncelleyebiliriz.
-SqlCommand nesneleri yaratabiliriz.

Tabi tüm bunları yaparken tek satır kod kullandığımızı unutmamak gerekir.

Örneğin, Microsoft Application Blocks ' un referans edildiği bir uygulama içerisinde, bir Stored Procedure çağırabilir ve DataSet olarak verileri döndürebilirsiniz.Tüm bu işlemleri tek satır kodla yapabilirsiniz.

[Visual Basic]
Dim ds As DataSet = SqlHelper.ExecuteDataset( _
connectionString, _
CommandType.StoredProcedure, _
"getProductsByCategory", _
new SqlParameter("@CategoryID", categoryID))

[C#]
DataSet ds = SqlHelper.ExecuteDataset(
connectionString,
CommandType.StoredProcedure,
"getProductsByCategory",
new SqlParameter("@CategoryID", categoryID));

Visual Basic ve C# Microsoft.ApplicationBlocks.Data projelerinin her ikisi birden Microsoft.ApplicationBlocks.Data.dll assembly dosyasını üretmek için derlenebilirler.Bu dosya iki tane sınıf içermektedir.Bunlardan ilki SqlHelper ( veritabanı ile ilgili çalıştırılacak olan metotları içeren sınıf ) , ikincisi ise SqlhelperParameterCache ( Parametrelerin kullanımı ve hafızada saklanması ile ilgili metodları içeren sınıf ) sınıfıdır.

Neden Microsoft.ApplicationBlocks.Data ' yı Kullanmalıyım?
Microsoft.ApplicationBlocks.Data yazılım geliştiricilere geçmişte veritabanı ile yaptıkları hemen hemen tüm işlemleri metodik olarak sunmaktadır.Bu da uygulamanın kod kalitesinin artmasına ve uygulama için harcanan sürenin kısalmasına neden olmaktadır.

Veri Erişimi Uygulama Bloklarının Şematik Anlatımı

SqlHelper Metotları

ExecuteNonQuery Satır Döndürmeyen bir komutu çalıştırır
ExecuteDataset Dataset olarak satırlar döndürür
ExecuteReader SqlDataReader olarak satırlar döndürür
ExecuteScalar Bir nesne olarak tek bir değer döndürür
ExecuteXmlReader XmlReader içinde bir Xml döndürür
FillDataset Gönderilen parametrelere göre Dataset'i doldurur
UpdateDataset Verilen update,insert,delete komutlarına göre DataSet in satırında değişiklik yapar
CreateCommand Verilen Stored Procedure ve Parametrelere göre Command nesnesi yaratır
ExecuteNonQueryTypedParams
Herhangi bir satır döndürmeyen bir komutu çalıştırır
ExecuteDatasetTypedParams
DataRow'un sütun değerlerini parametre olarak kullanıp DataSet döndüren bir komut işletir.
ExecuteReaderTypedParams
DataRow'un sütun değerlerini parametre olarak kullanıp SqlDataReader döndüren bir komut işletir.
ExecuteScalarTypedParams
DataRow'un sütun değerlerini parametre olarak kullanıp nesnenin değerini döndüren bir komut işletir.
ExecuteXmlReaderTypedParams
XMLReader içersinde DataRow'un sütun değerlerini parametre olarak kullanan bir XML döndüren bir komut işletir

Senaryo
Veritabanındaki Personel tablosundan verileri SQL Server'daki bir Stored Procedure yardımıyla çekmek isteyelim.Tabi bunu yaparken de ApplicationBlocks'u kullanalım.
İlk önce yeni bir ASP.NET projesi yaratalım ve Microsoft.ApplicationBlocks.Data.dll assembly'sini Add Reference diyerek ekleyelim.Bundan böyle SqlHelper ' ı kullanmak istediğimiz her yerde;

using Microsoft.ApplicationBlocks.Data;

Diyerek belirtmemiz yeterli olacaktır.

Personel Tablosu
PERSONEL
personel_ID
isim
dog_tarih
adres
cep
ev

SQL Server'daki Stored Procedure
CREATE PROCEDURE dbo.PersonelBilgiGetir

@personel_id nvarchar(3)

AS
SELECT * FROM Personel WHERE personel_ID=@personel_id
RETURN

GO

Bu SP'de basitçe dışardan gelen personel_id'sine göre Personel tablosundan seçim yapılıyor.

Personel.cs
public DataSet PersonelBilgisi(params object[] pers_id)
{
DataSet ds = new DataSet();

SqlHelper.FillDataset("Server=Localhost;database=Deneme;uid=sa;pwd=123456;","PersonelBilgiGetir",ds,new string[] {"tablom"},pers_id);
// public static void FillDataset ( System.String connectionString , System.String spName , System.Data.DataSet dataSet , string[] tableNames , params object[] parameterValues )
return ds;

}

PersonelBilgisi metodu ile ilk önce bir DataSet nesnesi oluşturuluyor ve bu nesne içersine SqlHelper.FillDataset metodu yardımıyla tablom adlı bir DataTable içerisine yukarıdaki SP'den gelen kayıt dolduruluyor.Daha sonrasında da DataSet nesnesi döndürülüyor.

sayfa.aspx.cs
Personel personel = new Personel();
DataSet ds;

ds = personel.PersonelBilgisi(3);

Sayfa kodlarımızda ise Personel sınıfındaki PersonelBilgisi metodu parametre bilgisi gönderilerek çağırılıyor.Böylelikle üç katmanlı bir yapı içersinde projemizi inşa etmiş bulunuyoruz.Bunlar;

1.Veritabanı
2.Veriye Erişim
3.Arayüz

Bu yapıyı kullanmak bize hem güvenlik hem de performans açısından çok büyük kazanımlar getiriyor.Yapılacak hatalar en aza indirgenerek projeye harcanan zaman da kısalıyor.

Microsoft.ApplicationBlocks.Data'yı Nerden İndirebilirim?

Data Access Application Block for .NET v2

Kaynak: msdn.microsoft.com

Timur Gündoğdu
NCS Web Developer

 
Şifremi Unuttum
Üye Ol

ASP.NET AJAX
ASP.NET AJAX Kitabı

Röportaj Dr. Arzu Baloğlu ile Türkiye ve Bilişim üzerine keyifli bir röportaj...


isarayan.org
Yenibiriş Logo
 
bos bos bos
bos Hakkımızda