Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Sefer Algan
Sefer Algan
http://www.seferalgan.com
İletişme geçmek için tıklayın.
71 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler:  XML / Web Serv. Sefer Algan
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : XML / Web Serv.
Yayınlanma Tarihi : 13.2.2003
Okunma Sayısı : 58266
Yorum Sayısı : 3     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 18.4.2024
Turhal Temizer
Mac OS/X Removing CUDA 18.4.2024
Burak Selim Şenyurt
Kurumsal Yazılımcının Oyun Geliştirme ile İmtihanı 18.4.2024
Burak Selim Şenyurt
Matematik ve Oyun Programlama - Missile Command - Final 18.4.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
C# ile Web Servislerine Erişim
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Bundan önceki makalemde C# ile basit anlamda bir web servisinin nasıl oluşturulacağını anlatmıştım. Ancak web servisini test etmek için Visual Studio.NET'in test ortamından faydalanmıştık. Gerçek uygulamalarımızda bu web servisine nasıl erişebileceğimizi incelememiştik. Bu makalede yine iş yapan basit bir web servisi yazacağız. Daha sonra bu web servisine çeşitli uygulama ortamlarından nasıl erişebileceğimizi göreceğiz.

Şimdi işe bir web servisi geliştirme ile başlayalım. Bu web servisimizde bir tane metodumuz olacak. Bu metot kendisine parametre olarak gönderilen yazının tersi ile geri dönecek.Yani metodun prototipi aşağıdaki gibi olacak;

string TersiniBul(string yazi)

Şimdi Visual Studio ile yeni bir CsWs isimli ASP.NET Web Servis projesi açıp Service1.asmx sayfasını aşağıdaki gibi değiştirin.

Eğer Web Servisi oluşturma ile ilgili sorunlarınız var ise bir önceki makaleyi okumak için tıklayın.



using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;

namespace CsWs
{

public class Service1 : System.Web.Services.WebService
{
     public Service1()
     {

     InitializeComponent();
     }

     private IContainer components = null;

     private void InitializeComponent()
     {
     }


     protected override void Dispose( bool disposing )
     {
          if(disposing && components != null)
          {
               components.Dispose();
          }
          base.Dispose(disposing);
     }



     [WebMethod]
     public string TersiniBul(string yazi)
     {
          char[] ters = new char[yazi.Length];
          for(int i=0; i < yazi.Length/2;++i)
          {
               ters[i] = yazi[yazi.Length-i-1];
               ters[yazi.Length-i-1] = yazi[i];
          }

          if(yazi.Length % 2 == 1)
               ters[yazi.Length/2] = yazi[yazi.Length/2];

          return new string(ters);

     }
   }
}

Yukarıdaki kaynak kodda kırmızı ve mavi ile yazılan yerler bizim web metodunu temsil etmektedir. Bu web servisini Visual Studiao ile test ettiğimizde aşağıdaki çıktıyı alırız. (Web Servisini Internet Explorer ile test etmek için Ctrl+F5 tuş kombinasyonlarını kullanın.)



Gördüğünüz gibi Web Servisinin çıktısı girdiğimiz yazının tersi olacak şekilde oluşturuldu. Visual Studio 'nun kurulu olduğu bir sistemde bir web servisi IE'den aşağıdaki şekilde çalıştırılabilir.

http://localhost/CsWs/Service1.asmx/MetotAdı?parametre1=xxx¶metre2=yyy

Bizim oluşturduğumuz web servisindeki metodun adı TersiniBul ve parametresinin adı da "yazi" olduğu için web servisine aşağıdaki şekilde ulaşılıyor.

http://localhost/CsWs/Service1.asmx/TersiniBul?yazi=deneme

Buraya kadar sadece oluşturduğumuz Web Servisini test etmiş olduk? Peki gerçek bir uygulamada bu web metodunu nasıl kullanacağız? Bu soruya cevap aramak için 4 farklı uygulama ortamından bu web metoduna erişip sonuçları karşılaştıracağız.

Web Servislerine Erişim

Web Servislerine uygulamalarımızdan erişmek için elle yapmamız gereken bir takım işler vardır. Bunlardan en başta geleni wsdl.exe yardımıyla web servisimizin arayüzünü tanıtan wsdl dosyasını oluşturmaktır. Bu makalede wsdl.exe aracı hiç kullanılmayacaktır. Bunu bizim yerimize Visual Studio yapacaktır. Visual Studio olmadan web servislerine erişmenin nasıl olduğunu ise bir sonraki makalemde anlatacağım.

Bu makalede oluşturduğumuz web servisine konsol uygulamasından, asp.net sayfasından, windows uygulamasından ve örnek bir mobil uygulamasından nasıl erişebileceğimizi ayrı ayrı inceleyeceğiz. Bu 4 farklı uygulama için ortak olan projemiz için Web Servisine bir referans vermektir. Bu işi örnek bir konsol uygulamasından nasıl olduğunu inceleyeceğiz, diğer uygulamalarda bu referansı eklemek aynı yöntemle olduğu için ayrıca anlatılmayacaktır.

Konsol Uygulaması

Visual Studio.NET 'i çalıştırın ve bir Konsol Uygulaması açın.(Benim açtığım uygulamanın adı CsWsConClient). Şimdi web servisine projemiz için referans verelim. Aşağıdaki gibi Project menüsünden Add Web Reference bölümüne tıklayın.



Açılacak pencerede Web Servisimizin URL 'sini girmek için bir alan var. Bu alana aşağıdaki gibi

http://localhost/CsWs/Service1.asmx

yazın.


Web Servisin URL 'sini yazdıktan sonra yanda gördüğünüz gibi IE ile daha önceden açmış olduğumuz test sayfasının açılmış olması gerekir.
Eğer bütün işlermlerimiz başarılı ise Solution Explorer penceresinin aşağıdaki gibi değişmiş olması gerekir.



Gördüğünüz gibi projemize Web Referansı olarak Web Servisimiz eklendi. Şimdi bu web servisini uygulamamızda nasıl kullanacağımıza bakalım. Öncelikle web servisinin localhost adlı bir isimalanı(namespace) 'nda olduğunu belirteyim. Yani, üzerinden Web Servisine ulaşacağımız nesneyi aşağıdaki gibi tanımlamamız gerekir.

localhost.Service1 ws = new localhost.Service1();

Şimdi açmış olduğumuz konsol uygulamasının Main() metodunu aşağıdaki gibi değiştirelim.


using System;

namespace CsWsConClient
{
     class Class1
     {

          static void Main(string[] args)
          {
               localhost.Service1 ws = new localhost.Service1();

               Console.WriteLine("Yaziyi girin: ");

               string str = Console.ReadLine();

               Console.WriteLine("Tersi: " + ws.TersiniBul(str));
          }
     }
}


Bu web servisine erişmek için yukarıdaki programda kırmızı ile yazılan yerlerin büyük bir önemi var. İlk kırmızı satırda Web Servisine ulaşabilmek için bir nesne tanımlıyoruz. İkinci kırmızı satırda ise oluşturduğumuz bu nesne üzerinden TersiniBul() web metoduna erişiyoruz.

Programı derleyip çalıştırdığımızda aşağıdaki ekran görüntüsü elde etmeliyiz.



Gördüğünüz gibi ekrandan girilen "www.csharpnedir.com" yazısı web metodu yardımıyla "moc.ridenprahsc.www" ye çevrildi.

ASP.NET Uygulaması

Şimdi konsol uygulamasını kapatıp yeni bir ASP.NET uygulaması başlatın. Aşağıdaki yapıya benzer bir form yapısı oluşturup buton'nun Click metodunu aşağıdaki gibi düzenleyin. Tabi konsol uygulaması için yapmış olduğumuz işlemleri burada da yapmamız gerekir. Yani project menüsünden Add Web Reference 'i seçip web servisinin URL 'sini girmeniz gerekir.



private void Button1_Click(object sender, System.EventArgs e)
{
     localhost.Service1 ws = new localhost.Service1();
     Label2.Text = ws.TersiniBul(TextBox1.Text);
}

/*

Label2 web metodu ile ters çevrilecek yazını görüntüleceneği kontroldür.
TextBox1 ise ters çevrilmesi istenen yazının girildiği kontroldür.

*/

Projeyi Build ettikten sonra IE'deki görüntüsü aşağıdaki gibi olmalıdır. TersiniBul butonuna tıklayınca label2 'de girilen yazının tersi çıkmaktadır.




Windows Uygulaması


Şi mdi .NET'in ve XML web servislerinin etkili kullanımını bir kez daha göstermek için yeni Windows Uygulaması açıp web servisimizi burada da test edelim. Yeni bir "Windows Application" uygulaması başlatın ve windows formunu aşağıdaki gibi düzenleyin. Kodunuzu yazmadan önce Peoject menüsünden web servisine referans vermeyi unutmayın. Tabi projenize web servisini tanıtmadan onu kullanmayı düşünmüyorsanız eğer :)

Şimdi Buton kontrolünün Clilck metodunu aşağıdaki gibi değiştirin.



private void button1_Click(object sender, System.EventArgs e)
{
     localhost.Service1 ws = new localhost.Service1();
     Label3.Text = ws.TersiniBul(TextBox1.Text);
}

/*

Label3 web metodu ile ters çevrilecek yazını görüntüleceneği kontroldür.
TextBox1 ise ters çevrilmesi istenen yazının girildiği kontroldür.

*/

Projeyi Build ettikten sonra görmeniz gereken form yapısı aşağıdaki gibidir. TersiniBul butonuna tıklayınca label2 'de girilen yazının tersi çıkmaktadır. Ben hep "www.csharpnedir.com" yazıyorum ama siz bunu yazmak zorunda değilsiniz. Dilediğinizi yazabilirsiniz. Ben test ettim ne girerseniz girin çalışıyor :)



Mobil ASP.NET Uygulaması

Son olarak web servisimize mobil bir uygulamadan nasıl erişebileceğimizi inceleyelim. Yukarıda yaptıklarımızın aynısını yapacağız.

İşe başlamadan önce elbette sisteminize Mobile Internet Toolkit 'nin yüklü olması gerekmektedir. www.microsft.com adresinden MMIT(Microft Mobile Internet Toolkit) diye aratırsanız kolaylıkla bulabileceğinizi garanti ediyorum. Tabi birde uygulamalarımızı gerçek bir mobil cihazda test ediyor izlenimini vermek için bir tanede simülator edinin.

MMIT 'yi kurduğunuzda "Mobil Web Application" şablonu otomatik olarak kurulacaktır. Yeni bir mobil uygulaması açın ve aşağıdaki Mobil Formu tasarlayın. Formu tasarlamak için Toolbox 'dan ilgili elemanları sürükle bırak yöntemini kullanın.



Formu tasarladığımıza göre sıra Add Web reference menüsünden web servisini projemize referans göstermeye geldi, bunu yaptıktan sonra Command1 kontrolünün click metodunu aşağıdaki gibi düzenleyin.


private void Command1_Click(object sender, System.EventArgs e)
{
     localhost.Service1 ws = new localhost.Service1();
     Label2.Text = ws.TersiniBul(TextBox1.Text);
}

/*

Label2 web metodu ile ters çevrilecek yazını görüntüleceneği kontroldür.
TextBox1 ise ters çevrilmesi istenen yazının girildiği kontroldür.

*/

Projeyi Ctrl+Shift+B ile Build ettikten sonra File menüsünden "Browse With" i seçip sisteminizde kurulu olan test araçlarından birini seçin. Eğer herhangi bir simülatorünüz yoksa IE'de test edebilirsiniz. Ben bu projeyi Microsoft Mobile Explorer Emulator ile test ettim ve aşağıdaki ekran görüntüsünü elde ettim.



Gördüğünüz gibi web servislerini kullanmak .NET projelerinde oldukça kolay olmaktadır. Bize düşen tek iş C# dilini en ince ayrıntılarına kadar güzel bir şekilde öğrenmek. Ve tabiki .NET sınıf kütüphanesini de etkili bir biçimde kullanabilmek.

Bir sonraki makalemde Visual Studio.NET olmadan web servislerine nasıl erişebileceğimizin üzerinde duracağım.

Not : Bu yazı ile ilgili her türlü konuda benimle iletişime geçebilirsiniz.

Makale:
C# ile Web Servislerine Erişim XML ve Web Servisleri Sefer Algan
  • Yazılan Yorumlar
  • Yorum Yaz
MAY
12
2012
mobil emulatorden web servise erişirken http://localhost:1130/Web0512sb/Service.asmx ile erişemiyorum. IP adresim olan 192.168.2.7 yide localhost yerine deniyorum ama olmuyor. 1130 portunu NATA tanıttım. Güvenlik duvarlarını ve firewalları kapattım yinede olmuyor. Sadece emulatorde de değil, kodları derlediğim bilgisayarımdanda ip adresini yazarak erişemiyorum. YARDIMCI OLABİLİR MİSİNİZ?
ARA
2
2008
Abim ne deyim yani, ALLAH ne muradın varsa versin..
ŞUB
14
2006
Çok faydalı bi yazı olmuş, teşekkürler..
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor