M2M-communications

Web Servis, WCF ve Web Api Nedir? Kullanım Alanları ve Aralarındaki Farklar Nelerdir?


.NET FRAMEWORK İLE CİHAZLAR ARASI İLETİŞİM YÖNTEMLERİ NELERDİR?

Merhaba bu yazımda sizlerle .Net Framework’un internet üzerinden cihazların birbirleri ile iletişim kurabilmeleri ve veri alışverişinde bulunabilmeleri için geliştirdiği yöntemlerden bahsedeceğim.

Bu yöntemleri Web Servis, WCF(Windows Communication Foundation) ve Web Api olarak 3 ana başlıkta toplayabiliriz.

1. Web Servis

  • SOAP’a dayanır ve verileri XML biçiminde döndürür.

  • Yanlızca HTTP protokolünü destekler.

  • Açık kaynak kodlu bir yazılım değildir lakin XML formatını algılayabilen herhangi bir client tarafından kullanılabilir.

  • Sadece IIS üzerinden host edilip yayınlanabilir.

Örnek SOAP Web Servis Projesi için linke tıklayın

https://github.com/yusufenesProject/WebServiceSoapProject

2. WCF

  • WCF yöntemi’de SOAP temelli bir yöntemdir.

  • WCF için Web Servis’in başkalaşmış bir yöntemidir denilebilir lakin Web Servis’ten farklı olarak TCP, HTTP, HTPPS, Named Pipes ve MSMQ protokollerini desteklyen bir yapıya sahiptir.

  • Açık kaynak kodlu bir yazılım değildir ama XML formatını algılayabilen herhangi bir client tarafından kullanılabilir.

  • Uygulamada veya IIS üzerinden host edilip yayınlanabilir.

2.a. WCF Rest

  • WCF’yi WCF Rest hizmeti olarak kullanmak için webHttpBindings özelliğini etkinleştirmeniz gerekir.

  • Sırasıyla [WebGet] ve [WebInvoke] özniteliklerine göre HTTP GET ve POST fiillerini destekler.

  • Diğer HTTP fiillerini etkinleştirmek için, IIS’de belirli bir fiil isteğini kabul etmek için IIS’de bir miktar yapılandırma yapmanız gerekir.
  • WebGet kullanarak parametreler arasında veri iletimi için yapılandırma gerekir. Bunun için UriTemplate belirtilmelidir.

  • XML, JSON ve ATOM veri formatını destekler.

3. Web Api

  • Web Api yöntemi HTTP servislerini kolay ve basit bir hale getirmek için oluşturulmuş diğerlerine göre yeni bir yöntemdir.

  • Web Api açık kaynak kodlu bir yazılım olmakla beraber .Net framework üzerinden REST-ful servisler oluşturmak için ideal bir platformdur.

  • WCF Rest servisinden farklı olarak HTTP protokolünün tüm özelliklerini(URI, Request/Response headers, caching yani önbelleğe alma, versioning, çeşitli içerik formatları gibi özellikler) kullanabilir.

  • Ayrıca routing, controllers, action results, filter, model binders, IOC container veya dependency injections, projenizi daha basit ve sağlam kılan Unit Test gibi MVC özelliklerini destekler.

  • Uygulama üzerinde veya IIS üzerinde host edilip yayınlanabilir.

  • Light Weight Mimariler ve akıllı telefonlar gibi sınırlı bant genişliğine sahip olan cihazlar için daha uygun bir yöntemdir.

  • Response değerleri WebApi MediaTypeFormatter aracılığı ile formatlanır, bu formatlar JSON, XML formatlarında olabilmesinin yanı sıra client’ın ekleyeceği herhangi bir formatta da olabilir.

Örnek Web Api Projeleleri için linklere tıklayın

Hava Durumu Web Api Projesi :

https://github.com/yusufenesProject/YahooWeatherApi

Translate Web Api Projesi :

https://github.com/yusufenesProject/GoogleTranslateApi

Web Api, Web Servis ve WCF Yöntemlerinin Kullanım Alanları ve Tercih Sebepleri Nelerdir?

  • Tek yönlü haberleşme, sıralı mesaj ve çift yönlü haberleşme gibi özel senaryoları destekleyebilecek alt yapıda bir servis oluşturmak istiyorsanız WCF kullanmanızda fayda var.

  • TCP, Named Pipes veya UDP gibi hızlı taşıma kanallarını kullanabilecek bir servis oluşturmak istediğinizde WCF yöntemini seçmenizde fayda vardır.

  • HTTP’nin tüm özelliklerini (URI, Request/Response headers, caching yani önbelleğe alma, versioning, çeşitli içerik formatları gibi özellikler)  kullanabilen, HTTP üzerinde kaynak odaklı servisler oluşturmak istediğinizde Web Api yöntemini kullanmanız daha sağlıklıdır.

  • Servislerinizi tarayıcılar, cep telefonları(iphone ve tabletler de dahil olmak üzere) çok çeşitli istemcilere sunmak istediğinizde Web Api yöntemini kullanmanız daha uygun olur.

Bu yazımda sizlere cihazlar arasındaki başlıca haberleşme yöntemlerini, bu yöntemler arasındaki farklılıkları ve bu yöntemlerin kullanım alanlarını açıklamış oldum, bir sonraki yazımızda görüşmek üzere.

Write a Message