Makale Özeti

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.

Makale

Delphi & XML Web Servisleri II

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.