Bundan önceki yazımda Delphi Syntax ı
ve Borland Studio arayüzü ile nasıl XML Web Servisleri
oluşturabileceğimiz üzerinde durmuştum. Bu yazımda ise oluşturduğumuz
web servislerini uygulamalarımızda nasıl kullanacağımızdan bahsedeceğim.
Elbette bu sadece oluşturduklarımız ile sınırlı değil sonuçta XML Web
Servislerinin en büyük kullanım alanı başkaları tarafından oluşturulan
servisleride uygulamalarımızda kullanabiliyor olmamız.
İlk olarak bir windows forms uygulaması açarak işe başlayabiliriz.
Desktop yazılımımızda bir önceki yazımda örneğini verdiğim Fahrenayt To
Celcius ve Celcius To Fahrenayt örneklerini kullanalım.
Formumuz 2 label, 2 textbox ve 2 butondan oluşacak. Bir celcius değeri
girilip "Fahrenayt a çevir" butonuna basıldığında ilgili textbox a
fahrenayt değerini yazdıracağız.
Ancak ilk olarak yapmamız gerekne şey az önce oluşturduğumuz projemize
bir referans web servisi yani geçen yazımızda hazırladığımız web
servisini göstermek.
Bunun için Project Inspector da "Project1.exe" ye sağ tıklayıp "Add
Web References" ı seçmeniz gerekiyor. Karşınıza Visual Studio dakine
benzer bir form çıkacak. Bu form yardımıyla isterseniz local
makinenizdeki veya tam urlsini bildiğiniz adreslerdeki web servislerini
isterseniz de formun açılışında karşınıza çıkan Borland UDDI
Directory den kullanacağınız web servisini seçebilirsiniz.


Bu ekranda ilgili web servisini bulmanız ve ardından "Add Reference"
butonuna basmanızın ardından artık adresini belirttiğiniz web
servisi projeniz içinde kullanabilirsiniz. Project Inspector da
eklediğiniz web servisinin disco dosyası,wsdl dokumanı, map dosyası ve
pas dosyası görülmektedir.

Artık web referansımızı da eklediğimize göre kodlamaya geçebiliriz.
procedure
TWinForm.btnFahrenheit2Celsius_Click(sender: System.Object;
e: System.EventArgs);
var
C2F: TCelsius;
begin
C2F := TCelsius.Create;
tbCelsius.Text :=
C2F.Fahrenheit2Celsius(Convert.ToDouble(tbFahrenheit.Text)).ToString
end;
procedure TWinForm.btnCelsius2Fahrenheit_Click(sender:
System.Object;
e: System.EventArgs);
var
C2F: TCelsius;
begin
C2F := TCelsius.Create;
tbFahrenheit.Text :=
C2F.Celsius2Fahrenheit(Convert.ToDouble(tbCelsius.Text)).ToString
end;
Kod bloğumuzu dilersek Hata yönetimi esaslarına göre tekrar yazalım.
procedure
TWinForm.btnFahrenheit2Celsius_Click(sender: System.Object;
e: System.EventArgs);
var
C2F: TCelsius;
begin
try
C2F := TCelsius.Create;
tbCelsius.Text :=
C2F.Fahrenheit2Celsius(Convert.ToDouble(tbFahrenheit.Text)).ToString
except
on E: Exception do
MessageBox.Show(E.Message)
end
end;
procedure TWinForm.btnCelsius2Fahrenheit_Click(sender:
System.Object;
e: System.EventArgs);
var
C2F: TCelsius;
begin
try
C2F := TCelsius.Create;
tbFahrenheit.Text :=
C2F.Celsius2Fahrenheit(Convert.ToDouble(tbCelsius.Text)).ToString
except
on E: Exception do
MessageBox.Show(E.Message)
end
end;
Burada neler yaptık hemen bir göz
atalım ve çalışıp çalışmadığını test edelim.
C2F: TCelsius; - C2F adında bir
değişken yarattık önemli olan bu değişkenin standart değişkenlerden
olmaması , gördüğünüz üzere bu eklediğimiz method u destekleyen bir
değişken.
try - except - end -
.Net in gelişmiş hata yönetimi
tekniği ile kod bloğumuzun hatalara karşı tutumunu belirledik
C2F := TCelsius.Create; -
TCelcius instance ını oluşturduk
tbFahrenheit.Text :=
C2F.Celsius2Fahrenheit(Convert.ToDouble(tbCelsius.Text)).ToString -
TextBox un butona bastığımız anki değerini web servisin ilgili metodunun
sonucuna eşitledik. Yani xml web servisimize bağlandık, celcius değerini
ona ilettik ve karşılık olarak gelen xml veriyi Fahrenayt textbox una
yazdırdık.
Ve sonuç:

Delphi 8 for Microsoft .Net FrameWork serisinde yazılarımız devam
edecek. |