1. Ana Sayfa
  2. ASP.Net
  3. Asp.Net ile Web Servis Geliştirme

Asp.Net ile Web Servis Geliştirme

Asp.Net İle Geliştirme. Bu yazımda sizlerle Asp.Net ile 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 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 ()” 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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

https://www.mshowto.org

 

TAGs : Web Servis, , XML, Web Servis, , Asp.Net, Asmx, , Asp.Net Web Servis, Microsoft, Visual Studio, Web Servis Gelistirme, , web servis yazmak, , web servis android, web servis ios, , web servis c#, , , web service example,

Yorum Yap

Yazar Hakkında

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.

Yorum Yap

Yorumlar (23)

  1. 2 sene önce

    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. 1 sene önce

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

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

  11. 1 sene önce

    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. Teşekkürler.

  16. 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

  17. 8 ay önce

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

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