2. İ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.
3. Ajanda
WCF Contracts Service Hosting
• WCF • Service • WCF Hosting
• Servis Contracts • Visual Studio
• Address • Data Contracts Şablonları
• Contracts • Message • Demo: WP2W8
• Binding Contracts • Demo: Logic
• Endpoint • Fault Contracts Bomb
10. 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
11. 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.
12. NetTCPBinding Nedir?
Farklı iki .NET Mimarisini kullanan ortamların birbiriyle haberleşmesini sağlar.
Mesajları almak için TCP Protokolünü kullanır.
14. 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.
18. Service Contracts Nedir?
Servisin sunduğu fonksiyonlar burada belirtilir.
WebService=ServiceContract
WebMethod=OperationContract
[ServiceContract()]
public interface ISimpleCalculator
{
[OperationContract()]
int Add(int num1, int num2);
}
19. Data Contracts Nedir?
Servis ile gönderilecek kullanıcı-tanımlı tipinde veriyi Serialize etmenize olanak sa
[ServiceContract] XML Şemasına CLR Tipini serilize eder.
public interface IEmployeeService
{
[OperationContract] Bunu da OperationContract ler vasıtasıyla yapar.
Employee GetEmployeeDetails(int EmpId);
}
[DataContract]
public class Employee
{
private string m_Name;
[DataMember]
public string Name
{
get{return m_Name;}
set {m_Name = value;}
}
}
20. Message Contracts Nedir?
Önemli bilgileri taşımak istediğimizde kullanırız(Örneğin: Çalışan Bilgileri)
[MessageContract]
public class EmployeeDetails MessageContract esasen 3 ana Şablonu kullanabilir:
{ Simplex,Request/Replay ve Duplex.
[MessageHeader]
public string EmpID;
[MessageBodyMember]
public string Name;
[MessageBodyMember]
public string Location;
}
21. Simplex,Request/Replay ve Duplex
Şablonları(Message Exchange
Patterns)Tek Yönlüdür.Kaynak,hedefe mesaj gönderir.
Simplex(One-Way):
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.
22. Fault Contracts Nedir?
Uygulamalarda Hata Yönetimini sağlayan Contract tipidir.
[DataContract()] [ServiceContract()]
public class CustomException public interface ISimpleCalculator
{ {
[DataMember()] [OperationContract()]
public string Title; [FaultContract(typeof(CustomException))]
int Add(int num1, int num2);
[DataMember()] }
public string ExceptionMessage;
[DataMember()]
public string InnerException;
[DataMember()]
public string StackTrace;
}
24. 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.
25. 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 servisleri
iç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.
26. 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)
HTTP Üzerinden text/xml verisi taşır...Güvenlik Yoktur...
HTTP ve HTTPS Üzerinden text/xml verisi taşır...Güvenlik Vardır...
HTTP ve HTTPS Üzerinden text/xml verisi taşır...Güvenlik Vardır...Duplex Mesajlaşma Şablonunu kullanarak CallBack döndürür.
Mesajları almak için TCP Protokolünü kullanır.
Full SOAP desteği bulunur...WS-ReliableMessaging i kullanır...NamedPipe protokolünü kullanır.
MSMQ Değişik zamanlarda birbirinden bağımsız çalışan ve haliyle performanslı bir yöntemdir. Windows Features’dan
Geliştireceğiniz servislerin ne yapması gerektiğini Contractler vasıtasıyla gerçekleştirirsiniz.
WCF üzerinde Servise verilen genel ad diye de bilinir...Multiple Endpoint kavramı vardır.
[ServiceContract] Niteliğini alır ve bir servisin birden fazla ServiceContract i olabilir.Ancak en az 1 tane olmak zorunda.Interface tanımlamadan da direkt yazabiliriz.WebService=ServiceContract ve WebMethod=OperationContract
XML Şemasına CLR Tipini serilize eder.Bunu da OperationContract ler vasıtasıyla yapar.
MessageContractler MessageBody ve MessageHeader dan oluşur. MessageContract esasen 3 ana Şablonu kullanabilir: Simplex,Request/Replay ve Duplex.
WCF servislerinde neden böyle bişeye ihtiyaç duyulduğu ise farklı mimarilerde ve teknolojilerden servisinize tükettiklerinde try catch yapısını kullanamazlar.Bu yüzden kendi özel Exception yapımızı kurmak için Fault Contracts kullanmalıyız.
Host Process denilen Windows Process de saklanır tüm servisler. 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.
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.