Bu makalemde Delphi.NET ile geliştirilmiş Türkiye’de ve Dünyadaki web site örneklerini sizlerle paylaşacağım. Bunun yanında ADO.NET ve Borland’ın BDP.NET veritabanı teknolojilerine değinerek ADO.NET ile web sayfası içerisinden veritabanına bağlantının nasıl yapıldığı ve veritabanından nasıl bilgi çekileceği konularında duracağım.
--
Delphi.NET ile Geliştirilmiş Site Örnekleri
Borland’ın çok yakın zamanda bu teknolojiyi desteklemesinden dolayı yaygın derecede bu dil ile geliştirilmiş web uygulamaları mevcut değildir; ama giderek yaygınlaşmaktadır. Yine de profesyonel düzeyde yapılmış referansları sizlerle paylaşmak isterim.
1.si Borland’ın (quality center) kalite merkezi olarak adlandırdığı sisteme
[Bu Adresi (link) Görme Yetkiniz Yok BEDAVA'ya Üye Ol Sitemizden Faydalan....] adresinden girerek bakabilirsiniz. İşte Borland sitesinin Quality Center kısmı Delphi 2005 ile geliştirilmiştir. [Bu Adresi (link) Görme Yetkiniz Yok BEDAVA'ya Üye Ol Sitemizden Faydalan....] adresinden bunu daha iyi öğrenebilir, [Bu Adresi (link) Görme Yetkiniz Yok BEDAVA'ya Üye Ol Sitemizden Faydalan....] adresinden ne kadar profesyonel yapılıp veritabanlarından bilgileri yorumlayarak istatistik oluşturduğunu görebilirsiniz.
Borland ürünlerinin hata takibi, hata raporlama veya teknolojik eklenti, gelişim evreleri ile ilgili düşünce fikir tartışmaları(discuss) bu kısımda yapılmaktadır.
2.si [Bu Adresi (link) Görme Yetkiniz Yok BEDAVA'ya Üye Ol Sitemizden Faydalan....] adresinden Delphi 8/2005 ile geliştirilmiş hazır alış-veriş web portallarına ulaşabilirsiniz. Kaynak kodları ile bedava verilen örneklerde sitede mevcuttur. Eğer Delphi.NET ile bir alış veriş sitesi yapmak isterseniz bu adrese mutlaka uğrayın. Bazı gelişmiş portal uygulamları paralıdır ve satın almanız gerekir.
3.sü Türk yapımı. Sanırım şaşırdınız. Bu makale dizisi için sizlere somut bir örnek gösterme arzumdan dolayı Delphi.NET ile geliştirdiğim kişisel blog sitemdir. [Bu Adresi (link) Görme Yetkiniz Yok BEDAVA'ya Üye Ol Sitemizden Faydalan....]
adresinden sitemi inceleyebilirsiniz. %100 Delphi.NET 2005 kodu ile geliştirilmiş dinamik yapılı bir blog sitesidir.
4.’sü [Bu Adresi (link) Görme Yetkiniz Yok BEDAVA'ya Üye Ol Sitemizden Faydalan....] adresinden Borland’ın Delphi 2005 ile ilgili görüntülü örnek uygulamalarını izleyebilirsiniz.
ADO.NET
ASP'de veritabanına bağlanırken ADO (Active Data Objects) nesneleri kullanırdı. Connection ve Recordsetler tüm işleri görürdü; ancak bu nesnenin eksikleri web’te performans açısından kendisini hemen gösteriyordu. Bu yüzden ASP.Net geliştirilirken ADO'da geliştirilerek ADO.Net'e geçilmiştir. Tüm yapısı baştan aşağı değiştirilerek yeni nesneler ve yeni özellikler eklenmiştir.
ADO.Net, .Net Framework sınıf kütüphanesinde 4 tane isim alanı (namespace) ile temsil edilir ve hepsi de System.Data altında bulunur. Bu isim alanları aşağıdaki gibidir:
System.Data.OleDb - Ole DB ile veritabanlarına bağlanmak için gereken sınıfları içerir.
System.Data.SqlClient - SQL Server 7.0 ve üstündeki versiyonlara bağlanmak için gereken sınıfları içerir.
System.Data.Odbc - ODBC ile veritabanlarına bağlanmak için gereken sınıfları içerir.
System.Data.Oracle - Oracle veritabanına bağlanmak için gereken sınıfları içerir.
System.Data.OleDb isim alanı ayrıca 3 tane sınıf içerir. Bunlar:
Bunun yanında Borland Delphi 2005'te, Microsoft.Net 'in database teknolojisi olan ADO.Net'e benzer olarak BDP.Net (Borland Data Providers for .Net) teknolojisi bulunmaktadır. Delphi.NET ile program geliştiren biri ister ADO.NET isterse de BDP.NET’ten birini kullanabilir. BDP.Net, MSSQL, Oracle,MSAcces, DB2 ve Interbase(FireBird) gibi veri tabanlarını desteklemektedir. Bunun yanında eski Delphi sürümleri ile hazırlanmış uygulamalarınızı yükseltmeniz durumunda, dbExpress yada dbGo gibi eski database teknolojilerini de desteklemektedir. BDP.Net'in, ADO.Net'teki System.Data gibi ana sınıfları şu şekildedir :
BDP.Net ile veritabanı bağlantısı sırasında, OLEDB 'de olduğu gibi COM Interop kullanılmamaktadır. Bu da eski teknolojilere oranla yüksek perforemans anlamına gelmektedir. BDP.Net kullanarak, birçok veritabanına bağlanmak, tablolar arasında ilişkiler yaratmak, ilişkilendirilen veritabanının tüm fonksiyonlarını kullanmak mümkündür. Bu bağlamda BDP.Net'in ; veritabanına bağlanmak, veriye erişmek, veriyi işlemek gibi amaçlar için en çok kullanılan componentleri şu şekildedir :
BDPConnection : Bir veritabanı bağlantısı oluşturur.
BDPCommand : SQL ve Stored Procedure oluşturmak için gerekli bir dizi metod ve özellik içerir.
BDPDataReader : Veriyi alır.
BDPParameter : Runtime parametre kullanımını destekler.
BDPTransaction : Transaction 'ı destekleyen bir dizi metod içerir.
BDPDataAdapter : Data ile ilişkiyi sağlar ve veriyi çözümler.
BDPCopyTable : Tablo yapısını, primary key'i ve veriyi kopyalar.
ISQLMetaData : MetaData'yı alır.
ISQLSchemaCreate : Database nesnelerinin yaratılmasını, sürüklenmesini ve alter edilmesini sağlayan bir dizi metod içerir.
ADO.NET Kullanarak veritabanına bağlantı ve veri çekme
Bu yazımda ADO.NET ile Access veritabanına bağlantı ve veri çekmeyi anlatacağım için System.Data.OleDb kütüphanesindeki sınıfları kullanacağız.
.NET’te Veritabanından bilgi çekmenin 2 yolu var. “DataReader” ve “DataSet”, Bunlar arasında bazı farklar vardır. İlk olarak DataSet nesnesini ele alalım. DataSet veritabanına bağlanıp bunu hafızasına alır. Artık veritabanı bağlantınızı kesseniz bile sanki bir veritabanına bağlıymışsınız gibi DataSet üzerinden tablolar arasında ilişki kurabilir, yeni bir veri ekleyebilir, yeni sorgulamalar yapabilir, ve hatta kayıtlar silip işiniz bittiğinde tekrar veritabanına kaydedebilirsiniz. İşte DataSet nesnesinin bu çalışma prensibine offline çalışma denmektedir. İşin ilginç tarafı ağ da bulunan bir veritabanındaki bütün tabloları DataSet içine alıp sanki kendi makinanızdaki veritabanı üzerinde çalışıyormuş gibi yapabiliriz. Bu da doğaldır ki büyük bir kaynak tasarrufu ve performans sağlamaktadır. DataSet, ADO.NET'in getirdiği bir yeniliktir. Eski ADO da bulunan Recordset nesnesi hatırlarsanız sadece bir tablo üzerinde çalışabiliyordu. ADO.NET ile online çalışma ise DataReader dediğimiz nesne ile gerçekleştirilir.DataReader’ın da avantajı çok hızlı olmasıdır. İhtiyaca göre kullanım prensibini benimseyin. Ben en çok DataReader’ı kullanırım; ama DataSet’in işime yaradığı yerde DataSet kullanırım.