Bu site emekli olmuştur. Arşiv amaçlı olarak
BT AKADEMİ
sponsorluğunda yayın hayatına devam etmektedir.
Ana Sayfa
.net TV
Makaleler
Kaynak Kod
Haberler
Serbest Köşe
Canlı Köşe
Forum
C#nedir?
Ekibimiz
RSS
ADO.NET/SQL
C / Sys Prog.
Genel
Mono ve .NET
Silverlight
XML / Web Serv.
X86 Assembly
C++ / C++.NET
J#.NET / Java
.NET 3.x
UML / Analiz
Yazılım Müh.
ASP.NET
C# / VC#/.NET
Mobil Prog.
PHP 5
YAZAR HAKKINDA
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ı
:
60392
Yorum Sayısı
:
3
yorum yaz
SİTE İÇİ ARAMA
Ü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.
C#nedir? hesabınız yok mu?
Üye olabilmek için
tıklayın
.
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.
Silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
Bende Yazmak İstiyorum
Blogroll
Turhal Temizer
Conda install environment.yml Package
8.12.2024
Turhal Temizer
Mac OS/X Removing CUDA
8.12.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak
8.12.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi
8.12.2024
Diğer Herşey
»
Makaleler RSS
»
Video Gönder
»
Makale Gönder
»
Serbest Köşeye Yazı Gönder
»
Yazar Başvurusu
»
C#nedir? Ekibinde Olmalıyım!
Sponsorlar
Ana Sayfa
/
Makaleler
/
XML / Web Serv.
/
C# ile Web Servislerine Erişim
C# ile Web Servislerine Erişim
Favorilerime Ekle
Gönderiliyor lütfen bekleyin...
arkadaşıma gönder
Arkadaşınızın email adresi:
Mesajınız:
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
Ö.Fatih BÖLÜKBAŞ
/
üye hakkında
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
ilhan gorgulu
/
üye hakkında
Abim ne deyim yani, ALLAH ne muradın varsa versin..
ŞUB
14
2006
Selçuk ÖZDOĞAN
/
üye hakkında
Ç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
Dizayn ve Kodlama
bt
akademi
. Tüm Hakları Saklıdır © Copyright 2002-2009 c#nedir?com
Makaleler
Serbest Köşe
Makale Gönder
.Net TV
Video Gönder
Canlı Köşe
Kaynak Kod
Forum
Haberler
Röportajlar
Anketler
C# Nedir?
İletişim
Site Haritası
RSS
Favorilere Ekle
Üyelik
Hesap Aktivasyon
Ekibimiz
Ekibe Katıl