Pages

Xml Web Servisleri

Bir Web Servisi, uzak istemcilerin başvuruda bulunduğu çeşitli işlevsel metod çağırımlarını bardındırdan, çok yönlü ve merkezileştirilmiş bir ünitedir. Bir web servisi, çok sayıda istemci tarafından erişilebilen  bir yapıya sahiptir. Onu diğer dağıtık nesne modellerinden farklı kılan sahip olduğu alt yapı sistemi sayesinde, platform bağımsız uygulanabilirliği sağlamasıdır.

Bir web servisi, standart olarak HTML iletişim protokolü üzerinden veri alışverişine izin veren bir yapıdadır. HTML tabanlı bu sistem XML temelleri üzerine dayandırılmıştır.  Web servislerinin kullanılmasında yatan en büyük kavram xml tabanlı veri akışının belirli standartlar dahilinde gerçekleştirilmesidir. Bu, web servislerinin platform bağımsız olmasıdır.

şimdi aşağıda bazit bir örnek gösterelim

Visual studio new website oluşturuyoruz. ve Adına services olarak ayarlıyoruz.

s

karşıma çıkan sayfada

 

[WebMethod]
   public string HelloWorld() {
       return "Hello World";
   }

örneğini görüyoruz. burdaki [webMethot] kısmı mecburi kısım eğer yazmazsak bu sırdan bir class olur ve biz bunu servisimizde kullanamayız.devamında ise klasik class yapımızı görüyoruz..

Şimdi biz bir class oluşturalım bu classa bağlanıp kullanalım.

 

[WebMethod]
  public int Topla(int sayi1,int sayi2)
  {
      return sayi1+sayi2;
  }

oluşturduktan sonra kodumuzu derliyoruz. ve bu oluşturduğumuz kodu bulup service.cs kodunu oluşturup.programımıza eklememiz gerekiyor. Önce wsdl.exe olarak aratıyoruz dosyamızı ve bulduğumuz path i cmd yazıp komut satırının directory si olarak atıyoruz.

sonra projemiji derleyip internet explorer penceresi açık ken url sini alıp

wsdl http://localhost:4544/services/Service.asmx

tarzında yazarak derliyoruz ve bu bize service.cs dosyası olusturuyor . bu kodu artık kullanacağımız aspx sayfamıza ekleyebiliriz.

burda localden çalıştığımız için bu işlemi yaparken alttaki resimde gördüğünüz internet sayfasını kapatmıyoruz.çünkü bu servisi aktif olarak tutuyor.

bu sayfadaki topla fonsiyonunu tıklayarak servisimizin çalışıp çalışmadığını deneyebiliriz.

image image

şimdi gelelim uygulamamıza yeni bir ASP.NET web sitesi açıyoruz app_code dosyamızı oluşturup içine az önce oluşturduğumuz service.cs dosyasını ekliyoruz (dosyamız yukarıdaki ekranda gördüğümüz directory pathi nereyi gösteriyorsa orda :) ).

sonra referansları kontrol ediyoruz. eğer yoksa gerekli referansları ekliyoruz.

bunlar

System.web;

System.web.services;

System.Xml;

image

default.aspx dosyamıza gelerek 2 textbox,1 label ve 1 buton ekliyoruz.

buttonumuza çift tıklayarak codebehind dosyamız olan default.aspx.cs dosyamıza gelip aşağıdaki kodumuzu yazıyoruz.

using System.Web.Services.Description;
using System.Web.Services;
using System.Web.Services.Protocols;

tabi önce bu ykarıdaki kısımları koda eklememiz gerekiyor. yoksa app_code içindeki service.cs dosyamızdaki service adlı classımıza erişemeyiz.aşağıdaki kodu ekleyip

image

programımızı derliyoruz. ve bizim yazdığımız değereleri servisimizi kullanarak  toplayıp sonucu elde ediyoruz

image

…..