XML Web Servis Örneği

Yazar: n d
Kategori: XML WEB Servisleri
Eklenme Tarihi: 23.7.2007 02:27:37



Bu makale ile basit bir XML Web Servis oluşturmayı ve bu servisimizi bir Windows Formda kullanmayı öğreneceğiz.

Giriş
Web Servisleri günümüzde önemli hale gelmiştir. T.C Numara sorgulama , Hava Durumlarının web sitelerine eklenmesi , döviz kurları verilerinin çekilmesi gibi önemli işlemler için bir web servis hazırlanır ve bunlar ihtiyaca göre gerek web formlarda gerekse windows formlarda hizmet görür.Biz basit bir web Servis hazırlayıp bunu windows formda kullanacağız.

Web Servis Hazırlanması




Öncelikle yukarıdaki gibi yeni bir uygulama açılarak bu pencereden ASP .NET  Web Service seçeneği seçilir. Dil seçimi ise isteğe bağlı olarak tercih edilebilir(Language kısmından).Dosyanın kayıt edileceği yerde seçildikten sonra OK butonuna basılarak bu pencere kapatılır.
Karşımıza web servisimize ait hazır bir metot gelir.Bu metot sadece ekrana "Hello World" söz dizimini yazdırır.Aslında çok devasa bir platform üzerinde çok basit bir metotdur diyebiliriz :) Dolayısıyla kendimize özel metot yapmamız gerekecek.

Imports

System.Web
Imports
System.Web.Services
Imports
System.Web.Services.Protocols
Imports
System.Data
Imports
System.Data.OleDb
Imports
System.Xml
<WebService(Namespace:=
"http://tempuri.org/"
)> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<
Global
.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class
Service
Inherits
System.Web.Services.WebService

<WebMethod()> _
Public FunctionDataSet_Ornegi() As
DataSet
Dimbaglanti As NewOleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ Server.MapPath("veriler.mdb"
))
Dimadap As NewOleDb.OleDbDataAdapter("select * from isimler"
, baglanti)
Dima1 As New
DataSet
adap.Fill(a1,
"gs"
)
Returna1
End Function
End
Class

Bu kodlar Service.vb(ben vb ile yapıyorum) dosyasında olması gereken kodlardır ve bir metot belirtir.Bilinen ado .net kütüphanesine ait kodlar kullanılarak ilk önce veritabanına bağlantı sağlanmıştır.sonra adapter nesnesi ile bir sorgulama cümlesi yazılıp bu sorguya uyan veriler datasete(verikümesine) aktarılmıştır.Dikkat edilir ise metotun geri dönüş veritipini kırmızı renkli arkaplan ile boyadım.Yani bu metot sonlandığı zaman geri dönüş olara(return) bir dataset fırlatacak.İşte bunuda sarı renkli arkaplan ile göstermeye çalıştım.Şimdi F5'E basarak bu Web Servisimizi test edebiliriz.



Yukarıdaki şekilde Web Servisimize ait oluşturulmuş olan bütün metotlar bu sayfada görüntülenir ve hangisini test edileceği buradan seçilir.Bizim örneğimizde sadece bir tane metot olduğundan karşımıza çıkan metota tıklıyoruz.Karşımıza gelen yeni sayfadanda Invoke butonuna tıklıyoruz.Bu aşamalardan sonra karşımıza ado .net kütüphanesine ait kodlar ile verileri çektiğimiz datasetin içeriği görülecektir.Tabikide burada açılacak olan sayfa bir xml sayfasıdır.Dolayısıyla verilerde xml üzerinden gelecektir.


Görüldüğü gibi dataset verileri xml şeklinde görüntülenir ve testimizin başarılı olduğu bu şekilde anlaşılır.

Bu aşamalardan sonra Web Servisimiz herhangi bir web formda veya windows formda kullanılabilir duruma gelmiştir.Şimdide aşağıdaki gibi basit bir windows form hazırlayıp bunu şuanki projemiin içine dahil edeceğiz.File > New > Project adımlarından sonra projemizin dilini seçelim ve ok butonuna basmadan öncede Solution kısmını Add to Solution şeklinde belirtelim.Karşımıza açılan yeni windos projemizi aşağıdaki şekilde tasarlayalım.

Windows Formun Hazırlanması



Solution Explorer bölümünden WindowsApplication1 kısmını sağ tıklayarak açılan menüden Add Web Reference... seçeneğini tıklayalım.buradan karşımıza 3 seçenek çıkar.



İlk seçenek projemizdeki Web Servisleri gösterirki biz bu seçeneği tıklayacağız.İkinci seçenek ise bizim makinamızdaki tüm Web Servisleri gösterir.İlk seçeneği tıkladıktan sonra karşımıza projemizdeki az önce oluşturduğumuz servisimiz görünecektir onu seçiyoruz ve bu aşamadan sonrada karşımıza bu servise ait metotlar gelir.Web Reference name kısmına bu servisin ismini girebilirsiniz.Ben kardeşimin ismi olan anıl şeklinde giriyorum.



Son olarak Add Reference butonuna tıklayıp Web Servisimizin windows formumuza hizmet etmesine olanak sağlamış olacağız.
Windows formumuzdaki verileri çağır isimli butonumuzun click olayı aşağıdaki gibi olmalıdır.

Public

ClassForm1
Private SubButton1_Click(ByValsender AsSystem.Object, ByVale AsSystem.EventArgs) Handles
Button1.Click
Dimdemir As Newanil.Service
DataGrid1.DataSource = demir.DataSet_Ornegi
End
Sub
End
Class

Kırmızı renkli boyadığım kısım ile demir isimli değişkenimize Web Servisimizi ekliyoruz(hatırlarsanız web servisimizin ismini anil yapmıştık).Bundan sonra ise formumuzdaki datagird nesnesinin veriyolunu belirtiyoruz.demir isimli değişkenin yani web servisin DataSet_Ornegi isimli metotunu kullanıyoruz.Hatırlamalısınızki bu metot bize geri dönüş değeri olarak bir dataset fırlatıyordu.dolayısıyla datagird nesnesinin veriyolunu bu fırlatılan datasete bağlıyoruz.Projemizi çalıştırdığımızda (win formun ilk çalışması için Solution kısmından sağ tıklayarak Set StartUP Project tıklanır ve buradan seçilir)  karşımıza çıkan verileri getir isimli butona tıklarız ve datagrid nesnesinde verilerimizi görebiliyor olmamız gerekecektir.

Makaleye ait örnek uygulamayı indirmek için tıklayın


Son Söz
Bu makale ile basit bir web servis hazırlamayı ve bunu windows formlarda nasıl kullanabileceğimizi öğrendik.Umarım yararlı bir makale olmuştur.Takıldığınız kısımlarda benimle veya ilgili editörler ile temasa geçebilirsiniz.

Bir sonraki makalemde görüşmek dileğiyle . . .


n d


Eren Emre Çağlar - 28.5.2009
Süleyman Öztürk - 01.04.2008 örnekte select query yapılmış sen bunun yerine Insert yapacaksın Insert yapacağın bilgileride paramerte alan bi webservisiyle halledebilirsin

Gülçin Şadıroğlu - 17.4.2008
Makaleniz çok güzel olmus paylaştığınız için kendime adımada tesekkur ederım fakat Private SubButton1_Click(ByValsender AsSystem.Object, ByVale AsSystem.EventArgs) HandlesButton1.Click Dimdemir As Newanil.Service DataGrid1.DataSource = demir.DataSet_Ornegi DataGrid1.DataBind() End Sub diye bitirmeniz gerekiyor aksi taktirde hiçbirsey gelmediğini sizde göreceksiniz iyi çalışmalar

Süleyman Öztürk - 1.4.2008 1
Peki bu makeleden yola çıkarsak Insert , Update ve Delete işlemlerini nasıl gerçekleştireceğiz. Örnek açmış olduğumuz form1 deki grid deki listelediğimiz verileri değiştirince Web service bunları nasıl kaydecek ? Örnek verirseniz seviniriz.

Yorumunuz