﻿
{"id":781,"date":"2012-06-08T12:54:02","date_gmt":"2012-06-08T12:54:02","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=781"},"modified":"2012-06-08T12:54:02","modified_gmt":"2012-06-08T12:54:02","slug":"web-service-olusturma","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/web-service-olusturma\/","title":{"rendered":"Web Service Olu\u015fturma"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Farkl\u0131 \u00fcreticilerden \u00e7\u0131kan farkl\u0131 uygulamalar\u0131n, i\u015f mant\u0131\u011f\u0131n\u0131 anlama, verilerden haberdar olma ve ek olarak kod par\u00e7ac\u0131klar\u0131 ekleme ihtiyac\u0131 duymaks\u0131z\u0131n a\u011f \u00fczerinden payla\u015f\u0131ma a\u00e7\u0131lmas\u0131na Web Service diyebiliriz.<br \/>\nWeb Servislerin b\u00fcy\u00fck oranda avantajlar\u0131 mevcuttur.Birlikte i\u015flenebildikleri gibi kullan\u0131m\u0131 olduk\u00e7a kolayd\u0131r ve tekrar tekrar kullan\u0131labilirler.Ayn\u0131 anda her yerde mevcut olabilirler ve herkes taraf\u0131ndan kullan\u0131labilirler.<br \/>\n<!--more--><br \/>\n\u00d6ncelikle bir Web Service nas\u0131l yaz\u0131l\u0131r inceleyelim.<br \/>\nBir Web projesi ba\u015flatal\u0131m.A\u00e7\u0131lan projeye Add Item&#8217;dan &#8220;Web Service&#8221; dosyas\u0131 ekleyece\u011fiz.Ad\u0131na &#8220;Service.asmx&#8221; diyerek dosyay\u0131 projeye ekliyorum.Otomatik olarak App_Code dosyas\u0131na &#8220;Service.cs&#8221; isminde dosyay\u0131 ekleyecektir.Bu dosyay\u0131 a\u00e7arsak e\u011fer a\u015fa\u011f\u0131daki kodlar\u0131 g\u00f6rece\u011fiz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.Services;\r\n\/\/\/ &lt;summary&gt;\r\n\/\/\/ Summary description for Service\r\n\/\/\/ &lt;\/summary&gt;\r\n&#x5B;WebService(Namespace = &quot;http:\/\/tempuri.org\/&quot;)]\r\n&#x5B;WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]\r\n\/\/ To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.\r\n\/\/ &#x5B;System.Web.Script.Services.ScriptService]\r\npublic class Service : System.Web.Services.WebService {\r\n    public Service () {\r\n\r\n        \/\/Uncomment the following line if using designed components\r\n        \/\/InitializeComponent();\r\n    }\r\n    &#x5B;WebMethod]\r\n    public string HelloWorld() {\r\n        return &quot;Hello World&quot;;\r\n    }\r\n}\r\n<\/pre>\n<p>Varsay\u0131lan olarak &#8220;Service.cs&#8221; dosyam\u0131zda HelloWorld metodunu g\u00f6rmekteyiz.<br \/>\n\u015eimdi hi\u00e7 bir m\u00fcdahale etmeden projemizi derleyip \u00e7al\u0131\u015ft\u0131ral\u0131m.Dikkat ederseniz <span style=\"color: #99cc00;\"><em>&#8220;http:\/\/localhost:37580\/WebSite17\/Service.asmx&#8221;<\/em><\/span> benzer bir adres a\u00e7\u0131lacakt\u0131r.Burada \u00e7al\u0131\u015ft\u0131r\u0131lan sayfa &#8220;Service.asmx&#8221; dosyas\u0131d\u0131r.Sayfa a\u00e7\u0131ld\u0131\u011f\u0131nda a\u015fa\u011f\u0131daki gibi bir ekran g\u00f6z\u00fckecektir.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-782\" title=\"Web Service\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service1.png\" alt=\"\" width=\"613\" height=\"164\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service1.png 613w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service1-300x80.png 300w\" sizes=\"auto, (max-width: 613px) 100vw, 613px\" \/><\/a>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi varsay\u0131lan olarak gelen HelloWorld ismindeki metodumuz g\u00f6z\u00fckmektedir.<br \/>\n\u015eimdi metod \u00fczerinde biraz dural\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    &#x5B;WebMethod]\r\n    public string HelloWorld() {\r\n        return &quot;Hello World&quot;;\r\n    }\r\n<\/pre>\n<p>Metodumuzun \u00fcst\u00fcnde yazan [WebMethod] attribute u bu metodun &#8220;Service.asmx&#8221; sayfas\u0131nda g\u00f6z\u00fckmesini sa\u011flamaktad\u0131r.E\u011fer [WebMethod] attribute unu kald\u0131r\u0131rsak, metodumuz burada g\u00f6z\u00fckmeyecektir.<br \/>\nMetodumuzu incelersek e\u011fer, geriye string d\u00f6nen ve parametre almayan tiptendir.Geriye d\u00f6nd\u00fc\u011f\u00fc de\u011ferde &#8220;Hello World&#8221; de\u011feridir.<br \/>\n\u015eimdi HelloWorld metoduna t\u0131klayal\u0131m.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-783\" title=\"Web Service\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service2.png\" alt=\"\" width=\"742\" height=\"399\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service2.png 742w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service2-300x161.png 300w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/a><br \/>\nG\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi Test ama\u00e7l\u0131 bir sayfa geldi.Burada Web Service imizdeki metodumuzu test edebiliyoruz.Invoke butonuna t\u0131klayal\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\r\n&lt;string xmlns=&quot;http:\/\/tempuri.org\/&quot;&gt;Hello World&lt;\/string&gt;\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi geriye bir XML format\u0131nda de\u011fer d\u00f6nd\u00fc.HelloWorld metodu geriye string d\u00f6nd\u00fc\u011f\u00fcnden dolay\u0131, XML dosyas\u0131ndaki eleman\u0131n ad\u0131da string olarak gelmektedir.De\u011fer olarak gelen &#8220;Hello World&#8221; de, metodun geriye d\u00f6nd\u00fcrd\u00fc\u011f\u00fc de\u011ferdir.<br \/>\nBen \u015fimdi &#8220;Service.cs&#8221; geriye int d\u00f6nen, int tipinde 2 parametre alan ve ad\u0131da Topla olan bir metod yazaca\u011f\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    public int Topla(int sayi1, int sayi2)\r\n    {\r\n        return sayi1 + sayi2;\r\n    }\r\n<\/pre>\n<p>Yukar\u0131daki metodu yaz\u0131p, projeyi derleyip \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m zaman sadece HelloWorld metodunu g\u00f6rece\u011fiz.Bunun sebebi [WebMethod] attribute unu Topla metodumuzun \u00fcst\u00fcne yazmam\u0131zdan kaynaklanmaktad\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    &#x5B;WebMethod]\r\n    public int Topla(int sayi1, int sayi2)\r\n    {\r\n        return sayi1 + sayi2;\r\n    }\r\n<\/pre>\n<p>Bu \u015fekilde projeyi tekrar \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m zaman a\u015fa\u011f\u0131daki g\u00f6r\u00fcnt\u00fcy\u00fc gelecektir.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-784\" title=\"Web Service\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service3.png\" alt=\"\" width=\"636\" height=\"181\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service3.png 636w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service3-300x85.png 300w\" sizes=\"auto, (max-width: 636px) 100vw, 636px\" \/><\/a><\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi servisimizde ne kadar metod varsa alt alta bu \u015fekilde listelenmektedir.\u015eimdi Topla metoduna t\u0131kl\u0131yoruz.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-785\" title=\"Web Service\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service4.png\" alt=\"\" width=\"745\" height=\"398\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service4.png 745w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/06\/Web-Service4-300x160.png 300w\" sizes=\"auto, (max-width: 745px) 100vw, 745px\" \/><\/a>HelloWorld metodunu t\u0131klad\u0131\u011f\u0131m\u0131zda sadece Invoke butonuyla kars\u0131las\u0131yorduk.\u00c7\u00fcnk\u00fc o metodda hi\u00e7 parametre bulunmamaktad\u0131r.Topla metodunda ise int tipinden sayi1 ve sayi2 parametreleri bulundu\u011fundan dolay\u0131, Test ederken bu parametre de\u011ferlerini bizden istiyor.Ben 2 ve 3 de\u011ferlerini verip Invoke metoduna t\u0131kl\u0131yorum.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\r\n&lt;int xmlns=&quot;http:\/\/tempuri.org\/&quot;&gt;5&lt;\/int&gt;\r\n<\/pre>\n<p>Tekrardan XML tabanl\u0131 bir sayfa d\u00f6n\u00fcyor.Metodumuz int tipinden de\u011fer d\u00f6nd\u00fc\u011f\u00fcnden dolay\u0131 eleman\u0131n ad\u0131 int, de\u011feri ise 5 tir.Metod parametrelerden ald\u0131\u011f\u0131 de\u011feri i\u00e7erde topluyor ve sonucu geriye d\u00f6nd\u00fcr\u00fcyor.<\/p>\n<p>Bu yaz\u0131mda bir Web Service nas\u0131l yaz\u0131l\u0131r, metodlar\u0131 nas\u0131l Test edilir g\u00f6rm\u00fc\u015f olduk.Bir sonraki yaz\u0131mda Web Servis kullan\u0131m\u0131n\u0131 anlataca\u011f\u0131m.<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar<br \/>\nSee You&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Farkl\u0131 \u00fcreticilerden \u00e7\u0131kan farkl\u0131 uygulamalar\u0131n, i\u015f mant\u0131\u011f\u0131n\u0131 anlama, verilerden haberdar olma ve ek olarak kod par\u00e7ac\u0131klar\u0131 ekleme ihtiyac\u0131 duymaks\u0131z\u0131n a\u011f \u00fczerinden payla\u015f\u0131ma a\u00e7\u0131lmas\u0131na Web Service diyebiliriz. Web Servislerin b\u00fcy\u00fck oranda avantajlar\u0131 mevcuttur.Birlikte i\u015flenebildikleri gibi&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,12,234],"tags":[244,752],"class_list":["post-781","post","type-post","status-publish","format-standard","hentry","category-asp-net","category-c-sharp-c","category-xml","tag-web-service","tag-xml"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/781","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=781"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/781\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=781"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=781"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=781"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}