27

Asp.Net İle Web Servis Geliştirme. Bu yazımda sizlerle Asp.Net ile web servis geliştirelim ve servisin çalışma yapısını inceleyelim. Öncelikle web servisin veri tabanı kısmını hazırlayalım daha sonra web servisimizi yazalım.

-Web Servis Veri Tabanı İşlemleri

Öncelikle Microsoft SQL Server üzerinde veri tabanımızı oluşturalım. SQL Server’i açalım ve bir veri tabanı ekleyelim.


Resim-1

“Databases” seçeneğine sağ tıklayarak “New Database” seçeneğini seçelim.


Resim-2

Veri tabanı adımızı “WebServis” olarak belirleyelim. OK tuşuna tıklayarak veri tabanımızı oluşturalım.


Resim-3

Veri tabanımızda “WebServis” veri tabanı içerisinde bulunan “Tables” seçeneğini sağ tıklayarak “New>Table” yolunu izleyerek web servisimizde kullanılacak bilgileri tutacağımız tablomuzu oluşturalım.


Resim-4

Tablomuza değerlerimizi atayalım. Veri tabanımızdaki “ID” değerine Birincil Anahtar (Primary Key) atayalım. Bu işlemi yapmamızın sebebi bu alandaki değerin daha sonradan değiştirilemeyecek olması yani her kayıta özel bir alan yaparak sorgulamalarımızı bu alan üzerinden yapacağımızdandır.


Resim-5

“ID” alanımıza sağ tıklayalım ve “Set Primary Key” seçeneğini tıklayarak bu alanımıza birincil anahtar değerini atayalım.


Resim-6

Birincil anahtarı atadıktan sonra bu alanın değerini her kayıtta otomatik olarak artırmak için “ID” değerini seçerek “Identity Specification” seçeneğinin altında bulunan “Is Identity” seçeneğini “Yes” olarak değiştirelim. Bu özelliğin değişmesi ile her yeni kayıt eklendiğinde “ID” değerimiz birer olarak artacaktır.


Resim-7

Tablomuzu kayıt edelim ve tablomuza “Kisiler” ismini verelim. Tablomuza birkaç kayıt ekleyelim.


Resim-8

Tablomuza sağ tıklayarak “Edit Top 200 Rows” seçeneğini seçelim.


Resim-9

Kayıtlarımızı ekledikten sonra veri tabanımızdan sorgulama yapmak için Saklı Yordam(Stored Procedure) oluşturalım.


Resim-10

Veri tabanımız üzerinde sağ tıklayarak “New Query” seçeneğini seçelim ve prosedürümüzü yazalım. Yazacağımız prosedür sayesinde web servisteki sorgulama işlemlerini prosedür içerisinde gerçekleştireceğiz ve prosedürden gelen kayıtları web servise aktaracağız.


Resim-11

“SPBILGILERIGETIR” adında bir prosedür oluşturduk. Bu prosedürde parametre olarak “@ID” değerini aldık ve web servise gönderilecek olan parametre değerimiz bu değer olacaktır. Böylece her ID değerinde veri tabanımızda bilgi var ise o bilgileri web servisin istek yapıldığı yere göndereceğiz. Veri tabanı işlemlerini tamamladık artık web servisimizi yazabiliriz.

-Web Servis Geliştirme İşlemleri

Visual Studio IDE ortamını açalım. Yeni bir proje oluşturalım.

Resim-12

“File>New>Project” yolunu izleyerek proje oluşturma işlemlerimize başlayalım.


Resim-13

“Web>Visual Studio 2012” sekmesinden “ASP.NET Empty Web Application” proje şablonunu seçelim. Projemize “Web Servis” adını verelim ve “OK” tuşuna tıklayıp projemizi oluşturalım.


Resim-14

Projemize sağ tıklayalım “Add>New Item” seçeneğini seçelim.


Resim-15

“Web Service (ASMX)” seçeneğini seçelim “Add” seçeneğiyle projemize ekleyelim.


Resim-16

Web servisimizde hazır olarak yazılmış ve “Hello World” değerini istek yapan kullanıcıya döndüren metod bulunmaktadır. Bu metodun nasıl çalıştığını inceleyelim.


Resim-17

Web servise sağ tıklayalım “View In Browser” seçeneğini seçelim ve çalıştıralım.


Resim-18

Web serviste bulunan metod web servisi çalıştırdığımızda karşımıza gelmektedir. Metoda tıkayalım.


Resim-19

Web servise tıkladığımız zaman web servisi kullanacak kişilerin isteklerini gönderecekleri “POST” metodunu görebilmemiz için “Çağır” metoduna basarak web serviste gönderilecek bilgileri görüntüleyebiliriz. Butona tıklayalım ve web servis bizlere nasıl bir değer döndürüyor bunu inceleyelim.


Resim-20

Web servis bizlere “XML” formatında bilgi döndürmektedir. Web servisin çalışma mantığını inceledik artık web servisimizi geliştirebiliriz.


Resim-21

Veri tabanımızda bulunan bilgileri çekeceğimiz alanlar için projemizde bir sınıf oluşturalım. Bu sınıfı oluşturmamızın amacı veri tabanından gelen bilgileri bir sınıf üzerinde tutarak kullanıcıya göndermemizdir.


Resim-22

Projemize sağ tıklayalım “Add>Class” seçeneği ile projemize sınıf ekleyelim.


Resim-23

Sınıfımıza “Bilgiler” adını verelim “Add” seçeneği ile projemize ekleyelim.


Resim-24

Sınıfımızda “Property” yapısını kullanarak veri tabanından alacağımız verilerin tipinde değer alan değişkenlerimizi sınıfımıza tanımladık.


Resim-25

“Web.config” dosyamıza veri tabanımıza bağlantı kodumuzu tanımlayalım.


Resim-26

Web servis sınıfına “Bilgiler” adında verileri döndüreceğimiz metodumuzu yazdık. “Web.config” dosyamızda tanımladığımız bağlantımızı alıyoruz. Veri tabanımızda yazdığımız prosedürü çağırıyoruz ve prosedürün bizden istediği “ID” değerini prosedüre yollayarak prosedürden gelen bilgileri tanımlamış olduğumuz sınıfımıza atıyoruz. Metodumuzun sonunda bu bilgileri kullanıcıya gönderiyoruz.

Web servisimizi çalıştıralım ;


Resim-27

Web servis bizden “ID” değerini istemektedir. Değeri girelim ve web servisi çağıralım.


Resim-28

Web servis bize “ID” değeri gönderdiğimiz değere eşit olan kaydın bilgilerini döndürdü. Böylelikle web servis yazmayı görmüş olduk.

Bir sonra ki yazıda görüşmek dileğiyle

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

https://www.mshowto.org

 

TAGs : Web Servis, SOAP, XML, SOAP Web Servis, Web Servis Nedir, Asp.Net, Asmx, Web Servis Yapisi, Asp.Net Web Servis, Microsoft, Visual Studio, Web Servis Gelistirme, web servis kullanimi, web servis yazmak, web servis .net, web servis android, web servis ios, web servis Windows, web servis c#, web service nedir, web service indir, web service example, web service nedir

Bu İçeriğe Tepkin Ne Oldu?
  • 20
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 3
    _ok_iyi
    Çok iyi
  • 8
    sevdim_
    Sevdim!
  • 5
    bilemedim_
    Bilemedim!
  • 2
    olmad_
    Olmadı!
  • 2
    k_zd_m_
    Kızdım!

Servan Oral, 1991 yılında Diyarbakır’da doğdu. Üniversite öncesi öğrenimini Malatya’da tamamladı. Dicle Üniversitesi ve Atatürk Üniversitesi Bilgisayar Programcılığı mezunudur. .Net Developer olarak birçok firmada görev almıştır. MSHOWTO bünyesinde yazar olarak görev yapmaktadır. Uzmanlık alanları olan; Bilişim Güvenliği, Microsoft Azure, Microsoft Visual Studio, C# .Net, Asp.Net, Cloud Computing, Microsoft Azure SQL, Microsoft SQL Server, MVC .Net alanlarında yazarlık yapmakta ve etkinliklerde uzmanlık alanlarında konuşmacı olarak görev almaktadır. MCP sertifikası bulunmaktadır.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yorumlar (27)

Popüler Yorumlar
  1. ben visual studio 2017 kullanıyorum webservis sınıfında public bilgiler BilgileriGetir(int ID) kısmında return döndürsemde hata veriyor ve ayrıca configurationmanager da göstermiyor bu sorunu nasıl çözerim hem buraya hemde mail adresime yazarsanız sevinirim iyi çalışmalar dilerim.

  2. 01/06/2018

    Sanrım buldum

Yapılan Yorumlar
  1. 30/04/2017

    kardeşim selamın aleyküm bir ödevim var bir web servisi yazıcaz ve buna dair kayıt ekleme silme güncelleme yapabilicez ben hala mantığını kavrayamadım yardımcı olabilir misin

    • Merhabalar,

      Makalede anlatıldığı şekilde güncelleme ve silme veya kayıt ekleme gibi metod oluşturarak bu metodlara parametrelerinizi göndererek web servis aracılığıyla işlemlerinizi gerçekleştirebilirsiniz. yani form oluşturup bu formda web servisteki yazılan metodları çağırarak işlem gerçekleştirebilirsiniz.

  2. çok güzel bir makale. Peki farklı bir siteden bu webservisi kullanıp nasıl o veritabanındaki bilgilere ulaşabiliriz? Parametre de gönderilerek ulaşımı anlatan bir konunuz var mı?

    • Yukarıdaki sorumu hallettim. Fakat bir sorum daha olacak. return ederken classı sadece string istiyorum diyor. Yani stringe dönüştür diyor. Onu nasıl halledebiliriz?

  3. ben visual studio 2017 kullanıyorum webservis sınıfında public bilgiler BilgileriGetir(int ID) kısmında return döndürsemde hata veriyor ve ayrıca configurationmanager da göstermiyor bu sorunu nasıl çözerim hem buraya hemde mail adresime yazarsanız sevinirim iyi çalışmalar dilerim.

  4. ben visual studio 2017 kullanıyorum webservis sınıfında public bilgiler BilgileriGetir(int ID) kısmında return döndürsemde hata veriyor ve ayrıca configurationmanager da göstermiyor bu sorunu nasıl çözerim hem buraya hemde mail adresime yazarsanız sevinirim iyi çalışmalar dilerim.

  5. Merhabalar,

    Aldığınız hata nedir ? Açıklamasını gönderebilir misiniz ?

  6. Merhabalar,

    Tek başına olan bir tablo ile işlem yaparken sorunsuz bir şekilde veri çekilebiliyor. Fakat bağlantılı bir tablo ile işlem yapılacaksa “Cannot serialize member x because it is an interface.” hatası vermekte.

    Bu hatayı aşmanın pratik bir yolu mevcut mu acaba?

    Cevap için şimdiden teşekkürler.

  7. Merhabalar,

    Aldığınız hatayı düzeltmek için işlem yaptığınız sınıfı IList şeklinde kullanıp dener misiniz ?

    Teşekkürler

  8. hocam selam, web servisde ilgili tabloda ki tüm verileri yayınlamak istiyorum, ve metodunuzda ki parametrik bağlantıları kaldırdım, metodu aşağıda ki hale getirdim. Bu durumda tabloda ki tüm verileri tarıyorum fakat xml e sadece son gelen veriyi atıyorum. Ben tüm tabloyu aktarmak istiyorum bu metodu nasıl yapabilirim ?

    Yardımlarınız için teşekkürler.

    Sınıf xx = new Sınıf();
    string cs = ConfigurationManager.ConnectionStrings[“DBBaglan”].ConnectionString;
    using(MySqlConnection con = new MySqlConnection(cs))
    {
    MySqlCommand cmd = new MySqlCommand(“SELECT * FROM xx”, con);
    con.Open();
    MySqlDataReader dr = cmd.ExecuteReader();
    while (dr.Read())
    {
    getaracTip.ID = Convert.ToString(dr[“ID”]);
    getaracTip.Name = Convert.ToString(dr[“xx”]);

    }
    return xx;
    }

    • Metod da ki parametrik bağlantıları kaldırmamın sebebi ise, MySql ile çalışmam query yazamıyoruz dolayısıyla query i bu tarafta cmd satırına yazdım. Yanlış biliyor olabilirim düzeltirsenizde çok memnun olurum.

  9. 09/03/2018

    başarılı bir çalışma olmuş tebrikler.

  10. Burak Bey güzel yorumlarınız için teşekkürler

  11. 01/06/2018

    Merhaba,

    Resim 26 daki kodu nereye yazacağız???
    Bu konuda yeniyim kendi içinde bir test yapmak deniyorum

  12. Merhabalar,

    Web servis için geliştireceğiniz sınıfa yazacaksınız.

    Teşekkürler

  13. uygulama çok güzel web servis mantığını anlatıyor peki aynı uygulama üzerinde veri tabanına veri eklemek için hangi işlemler gerekiyor

  14. Veritabanıyla işim olmamasına rağmen yazınızı okudum gayet açıklayıcı ve güzel anlatmışsınız elinize sağlık teşekkürler

  15. Merhabalar;

    Öncelikle elinize sağlık çok güzel bir makale olmuş. Teşekkürler.

    -Bilgiler sınıfında web servisden gelen verileri, asp.net proje kısmında nasıl kullanabiliriz?

    -Web servis’den gelen verilerin kontrolü, kullanımı ile ilgili bir makale yazarmısınız? Yazarsanız şayet kanımca faydalı olur.

    İyi çalışmalar

  16. 09/11/2018

    Projenin örnek indirme bağlantısı verme şansınız varmı ? orda kullanılan hiç bi referansı söylememişsiniz ?

  17. parameter.ParameterName=”Id” alanındaki ismi neye göre verdik acaba? Keyfi bir adlandırma mı oldu?

  18. teşekkürler. 15 dk lık araştırmam sonucu konuyu en anlaşılır anlatan Türkçe kaynak olarak sizin yazınızı buldum. oldukça öğretici ve uygulaması kolay görünüyor. hemen uygulamaya geçiyorum. iyi çalışmalar.

  19. 16/01/2020

    Vermiş olduğunuz bilgilerden dolayı teşekkür ediyorum.
    Özellikle SQL işlemlerinden başlayıp açıklamanız gerçekten çok kıymetli….

  20. Yazdığım prosedür parametre almıyor bu nedenle yazdığınız bu kod hata veriyor ne yapmalıyım?

  21. Emeğiniz için teşekkürler. Güzel açıklayıcı olmuş.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir