31
Windows Communication Foundation İBRAHİM ERSOY BİLGEADAM

WCF'e Giriş

Embed Size (px)

Citation preview

Page 1: WCF'e Giriş

Windows CommunicationFoundationİBRAHİM ERSOY

BİLGEADAM

Page 2: WCF'e Giriş

İbrahim Ersoy - Kimdir?

1985 Istanbul doğumlu

BilgeAdam’da Assistant Consultant

Boş Vakitlerimde;

C# Corner ve DBTalks Editörlük yaparım.

C# Corner Istanbul Chapter olarak her ay toplanırız.

Mobil Uygulamalar ve SharePoint’e ilgi duyarım.

Page 3: WCF'e Giriş

Ajanda

WCF

• WCF• Servis• Address• Contracts• Binding• Endpoint

Contracts

• Service Contracts

• Data Contracts• Message

Contracts• Fault Contracts

Service Hosting

• WCF Hosting• Visual Studio

Şablonları• Demo: WP2W8• Demo: Logic

Bomb

Page 4: WCF'e Giriş

WCF

Page 5: WCF'e Giriş

WCF Nedir?

Simple Object Access Protocol (SOAP)

RemotingWeb Services Windows Services MSMQ

Service Oriented Architecture (SOA)

Page 6: WCF'e Giriş

Servis Nedir?

* Fonksiyonalite Topluluğu

* SOA Fikrinin Uygulanması

Page 7: WCF'e Giriş

Address Nedir?

http://www.iersoy.com/Service/Service1.svc

‘Nerede?’ sorusuna cevap verir...

Page 8: WCF'e Giriş

Binding Nedir?

‘Nasıl?’ sorusuna cevap verir...• BasicHttpBinding• WSHttpBinding• WSDualHttpBinding• NetTCPBinding• NetNamedPipeBinding• NetMSMQBinding

Page 9: WCF'e Giriş

BasicHttpBinding Nedir?

ASP.NET Web Servisleri(ASMX) için en ideal olandır.

HTTP Üzerinden text/xml verisi taşır

Güvenlik Yoktur

Page 10: WCF'e Giriş

WSHttpBinding Nedir?

Duplex(İki Yönlü) olmayan servisler için Güvenli bir servis yapısıdır.

HTTP ve HTTPS Üzerinden text/xml verisi taşır

Güvenlik Vardır

Page 11: WCF'e Giriş

WSDualHttpBinding Nedir?

Duplex(İki Yönlü) servisler için Güvenli bir servis yapısıdır.

HTTP ve HTTPS Üzerinden text/xml verisi taşır...Güvenlik Vardır

Duplex Mesajlaşma Şablonunu kullanarak CallBack döndürür.

Page 12: WCF'e Giriş

NetTCPBinding Nedir?

Farklı iki .NET Mimarisini kullanan ortamların birbiriyle haberleşmesini sağlar.

Mesajları almak için TCP Protokolünü kullanır.

Page 13: WCF'e Giriş

NetNamedPipeBinding Nedir?

Aynı makine üzerinde farklı process ler için güvenilir bir yapı sunar.

NamedPipe protokolünü kullanır.

Page 14: WCF'e Giriş

NetMSMQBinding Nedir?

Aynı tip makine(MSMQ kurulu) üzerinde farklı process ler için güvenilir bir yapı sunar.

MSMQ Değişik zamanlarda birbirinden bağımsız çalışan ve haliyle performanslı bir yöntemdir.

Windows Features’dan aktifleştirilmesi gerekir.

Page 15: WCF'e Giriş

Contracts Nedir?

Servise ait fonksiyonaliteyi belirler.

‘Ne Yapar?’ sorusuna cevap verir...

Page 16: WCF'e Giriş

Endpoint Nedir?

WCF’in ABC si Address-Binding-Contracts in tümüne verilen isim.<endpoint address="" binding="basicHttpBinding" contract="Microsoft.ServiceModel.Samples.ICalculator" /> <endpoint address="secure" binding="wsHttpBinding" contract="Microsoft.ServiceModel.Samples.ICalculator" />

Page 17: WCF'e Giriş

CONTRACTS

Page 18: WCF'e Giriş

Service Contracts Nedir?

[ServiceContract()]public interface ISimpleCalculator {

[OperationContract()] int Add(int num1, int num2);}

Servisin sunduğu fonksiyonlar burada belirtilir.WebService=ServiceContract WebMethod=OperationContract

Page 19: WCF'e Giriş

Data Contracts Nedir?

[ServiceContract] public interface IEmployeeService { [OperationContract] Employee GetEmployeeDetails(int EmpId); } [DataContract] public class Employee { private string m_Name;

[DataMember] public string Name { get{return m_Name;} set {m_Name = value;} }}

Servis ile gönderilecek kullanıcı-tanımlı tipinde veriyi Serialize etmenize olanak sağlar.

XML Şemasına CLR Tipini serilize eder.

Bunu da OperationContract ler vasıtasıyla yapar.

Page 20: WCF'e Giriş

Message Contracts Nedir?

Önemli bilgileri taşımak istediğimizde kullanırız(Örneğin: Çalışan Bilgileri)

[MessageContract] public class EmployeeDetails {

[MessageHeader] public string EmpID;

[MessageBodyMember] public string Name;

[MessageBodyMember] public string Location; }

MessageContract esasen 3 ana Şablonu kullanabilir: Simplex,Request/Replay ve Duplex.

Page 21: WCF'e Giriş

Simplex,Request/Replay ve DuplexŞablonları(Message Exchange Patterns)

Simplex(One-Way): Tek Yönlüdür.Kaynak,hedefe mesaj gönderir.Request/Replay: Çift Yönlüdür.Kaynak,hedefe mesaj gönderdikten sonra tam tersi işlem olur.Duplex(CallBack): Çift Yönlüdür.Kaynak ve Hedef birbirlerine aynı anda mesaj gönderebilirler.

Page 22: WCF'e Giriş

Fault Contracts Nedir?

Uygulamalarda Hata Yönetimini sağlayan Contract tipidir.

[DataContract()] public class CustomException { [DataMember()] public string Title; [DataMember()] public string ExceptionMessage; [DataMember()] public string InnerException; [DataMember()] public string StackTrace; }

[ServiceContract()] public interface ISimpleCalculator { [OperationContract()] [FaultContract(typeof(CustomException))] int Add(int num1, int num2); }

Page 23: WCF'e Giriş

SERVICE HOSTING

Page 24: WCF'e Giriş

WCF Hosting

Geliştirdiğiniz servisleri farklı şekillerde host edebilirsiniz...

Host Process • IIS Hosting• Self Hosting• WAS Hosting• Windows Server AppFabric

Servisler ‘Host Process’ denilen Windows Process de saklanırlar.SvcHost.exe adlı process içerisinde saklanır.Bir servis birden çok host process tarafından kullanılabileceği gibi,bir host process de aynı şekilde birden çok servisi barındırabilir.

Page 25: WCF'e Giriş

WCF Hosting

• IIS Hosting: Klasik ASMX ve Virtual Directory...Sadece Http • Self Hosting: İlgili Client Process i üzerinde çalışan hosting tipidir.• WAS Hosting: Windows Vista ile çıktı.Bir Hosting Motorudur. • Windows Server AppFabric : IIS 7.5 de Extension,IIS 8’de ise bütünleşik.Hem WCF hem de WF servisleriiçin optimize edilmiştir(Monitoring,Event Tracking)... Otomatik Başlatma Özelliği

IIS Hosting in dezavantajı WebServisini bir Websitesi gibi sanmasıdır.Çünkü IIS bir Hosting servisi değil de bir Web Serverdır.IIS 7 ile birlikte hosting işlemleri artık WAS üzerinden gerçekleşir.Hem WebSitesi hem de servisleri host edebilir.

Page 26: WCF'e Giriş

Visual Studio 2012 WCF Şablonları

WCF Service Library(Project-WCF)WCF Service Application(Project-WCF)WCF Workflow Service(Project-WCF)WCF Syndication Service(Project-WCF)WCF Web Site(Project-Web)WCF Service Item(Item)

Page 27: WCF'e Giriş

Demo – WP2W8

Page 28: WCF'e Giriş

Demo – Logic Bomb

Page 29: WCF'e Giriş

Referanslar

http://www.slideshare.net/iersoy/windows-store-ve-windows-phone-ile-wcf-uygulamalar

http://www.yazgelistir.com/makale/nedir-su-msmq-dedikleri-

http://msdn.microsoft.com/en-us/library/ms751515.aspx

Programming WCF Services – Juval Löwy

Page 30: WCF'e Giriş

Sorular?

Page 31: WCF'e Giriş

Katıldığınız için Teşekkürler!İBRAHİM ERSOY

BİLGEADAM