Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanMujdat Suleymanoglu Değiştirilmiş 10 yıl önce
1
MVP (Microsoft Most Valuable Professional) Nedir?
Windows Communication Foundation(WCF) Burak Selim Şenyurt Connected System Developer INETA MEA Speaker MVP (Microsoft Most Valuable Professional) Nedir? Microsoft’un En Değerli Profesyonelleri (MVP’ler) bir veya daha fazla sayıdaki Microsoft ürünü konusunda bilgisini kanıtlamış, bilgi ve deneyimlerini sektördeki diğer profesyonellerle gönüllü olarak paylaşan uzmanlardır. MVP’ler bilgi ve deneyimlerini çok farklı şekilde paylaşırlar. Bazıları kitap ve makale yazarken, bazıları Web sitesi ve blog barındırır, "Teknik kullanıcı grupları" liderliği yapar, seminerlerde konuşmacı olur, teknik habergrupları ve forumlarda gelen soruları cevaplandırırlar. Microsoft için müşterilerden alınan geri bildirimler hayati düzeyde önem taşımaktadır. Bu noktada MVP’ler, geri bildirim döngüsünün önemli bir parçası olmakta ve Microsoft ile müşterileri arasındaki bir başka iletişim yolunu oluşturmaktadırlar. MVP ödül programı on üç yıldan uzun süredir devam etmekte ve 90 ülkeden 4000’e yakın MVP ile temsil edilmektedir. 43 MVP ile Türkiye, Orta Doğu ve Afrika bölgesinde ilk sırada yer almaktadır. Detaylı bilgi için Türk MVP’leri: MVP Kitap:
2
Gündem WCF Kimdir? WCF Hedefleri WCF Mimarisi
WCF’ in ABC’si EndPoint Kavramı Hosting Seçenekleri Demo – Merhaba WCF Dünyası Örnek Vakalar Klasik Intranet Modeli Klasik Internet Modeli Güvenilir İş Ortağı Modeli Web Uygulaması Modeli Çoklu EndPoint Modeli Front – End Service Modeli
3
Gündem Geliştirici için Kazanımlar .Net 3.5 ile Gelen Bazı Yenilikler
Visual Studio 2008 Yenilikleri Performans Asmx & WCF Asmx & WCF (Https) Asmx WSE 2.0 & WCF .Net Remoting & WCF Bulunduğumuz Noktada Yardımcı Kaynaklar
4
WCF Kimdir? Windows Communication Foundation, Servis Yönelimli Mimari(Service Oriented Architecture) uygulamalarının entegre, platform bağımsız, güçlü ve kolay geliştirilmesi için tasarlanmış bir Framework altyapısıdır. .Net Framework 3.0 ve 3.5’ in bir parçası olarak gelmektedir.
5
WCF Hedefleri
6
WCF Hedefleri Var olan dağıtık mimari geliştirme modellerini tek bir çatı altında birleştirmek. (Unified) Güvenlik(Security), Transaction gibi, dağıtık mimarilerde uygulanması zor kavramların, kolay bir şekilde ele alınabilmesini sağlamak. (Simplicity) Farklı platformlara destek verebilecek servislerin geliştirilmesini sağlamak. (Interoperability) Farklı tipte servislerin birbirleriyle olan entegrasyonunu daha kolay sağlamak. (Integration)
7
WCF Hedefleri - Entegrasyon
COM+ .Net Remoting XML Web Services WSE WS-* MSMQ ... Entegrasyon
8
WCF Mimarisi
9
WCF Mimarisi – WCF’ in ABC’si
AddressBindingContract
10
WCF Mimarisi – Adresler
Adresler (Addresses) : Bir servisin nerede olduğunu, hangi protokol ile yayınlama yaptığını belirtir. net.tcp://localhost:4000/UrunServisi/Service.svc net.msmq://localhost:6789/MatSrv
11
WCF Mimarisi – Bağlayıcılar(Bindings)
Bağlayıcılar(Bindings) : Bağlayıcılar temel olarak servisler ile nasıl iletişim kurulacağını tanımlamak üzere kullanılırlar. Bir bağlayıcı tip (Binding Type), taşıma tipi (transport type), protokol(protocol) ve veri çözümlemesini(data encoding) mutlaka bildirir.
12
WCF Mimarisi – Bağlayıcılar(Bindings)
Bağlayıcı Adı Açıklama Ver. BasicHttpBinding Asmx web servis modelini ve WS-I Basic 1.1 profilini destekler. 3.0/ 3.5 WsHttpBinding WS-* şartnamalerine uygun Web Servisi modelini destekler. WsDualHttpBinding İki yönlü seri iletişime(Dublex Communication) izin verir. WebHttpBinding XML ve JSON serileştirme desteği ile servisler üzerinde REST/POX tabanlı iletişime izin verir. WsFederationHttpBinding WS-* için Federation şartnamelerini destekler. Ws2007HttpBinding 2007 WS-* standartlarını destekler. 3.5 Ws2007FederationHttpBinding WsFederationHttpBinding için 2007 standartlarını destekler. NetTcpBinding İki .Net tabanlı sistem arasında Tcp bazlı iletişimi destekler. NetNamedPipeBinding Makine üzerinde bir veya daha fazla .Net tabanlı uygulama arasında iletişimi destekler. NetMsmqBinding MSMQ ile asenkron iletişimi destekler NetPeerTcpBinding Peer-To-Peer ağ uygulamaları arası iletişimi destekler. MsmqIntegrationBinding MSMQ tabanlı kuyruk modelini kullanarak mesaj göndirilip alınmasını destekler.
13
WCF Mimarisi – Bağlayıcılar(Bindings)
İletişim Çeşidi Bağlayıcı (Binding) İletişim Seviysinde Güvenlik (Transport Level Security) Mesaj Seviyesinde Güvenlik (Message Level Security) WS-* Desteği WS-* Transaction Desteği Güvenilir Mesajlaşma (Reliable Messaging) Güvenilir Oturumlar (Reliable Sessions) Performans İstek / Cevap (Request / Reply) Tek Yön (One - Way) Çift Yön (Duplex) BasicHttpBinding 1 İyi WsHttpBinding WsDualHttpBinding WsFederationHttpBinding Ws2007HttpBinding Ws2007FederationHttpBinding NetTcpBinding Daha İyi NetNamedPipeBinding En İyi NetMsmqBinding NetPeerTcpBinding MsmqIntegrationBinding
14
WCF Mimarisi – Bağlayıcılar(Bindings)
Interop Gerekli mi ? Yerel mi? Hayır Başla Evet NetNamedPipeBinding Evet Hayır Diğer MSMQ’ lar ile iletişim var mı? Interop Seviyesi Nedir ? Basic Kuyruk Gerekli mi ? Evet BasicHttpBinding Evet MsmqIntegration Binding WS-* Hayır Hayır Çift Yön (Duplex) Gerekli mi ? Evet NetMsmqBinding WsDualHttpBinding Hayır Hangi bağlayıcının seçileceğine nasıl karar verebiliriz? Peer Network Gerekli mi ? NetPeerTcpBinding Federatif Güvenlik Gerekli mi ? Evet Evet WsFederationHttpBinding Ws2007FederationHttpBindig Hayır Hayır WsHttpBinding Ws2007HttpBinding NetTcpBinding
15
WCF Mimarisi – Sözleşmeler(Contracts)
Sözleşmeler(Contracts): bir servisin ne iş yaptığının bilinmesinde önemli rol oynarlar. Servis Sözleşmesi (Service Contract) Veri Sözleşmesi (Data Contract) Hata Sözleşmesi (Fault Contract) Mesaj Sözleşmesi (Message Contract)
16
WCF Mimarisi - EndPoint
Client (İstemci) Servis (Service) Mesajlar (Messages) EndPoint EndPoint
17
WCF Mimarisi - EndPoint
Client (İstemci) Servis (Service) A B C C B A Message A B C Address Binding Contract Nerede? Nasıl? Ne?
18
WCF Mimarisi - Hosting WCF Servisleri için Hosting Seçenekleri
IIS Hosting Self Hosting Windows Activation Service (WAS) Windows Uygulamaları WPF/WinForms... Console Uygulamaları Windows Servisleri
19
Demo - Merhaba WCF Dünyası - IIS Tabanlı WCF Servisi
20
Örnek Vakalar
21
Klasik Intranet Modeli
Active Directory NetTcpBinding Servis (Service) İş Nesnesi (Business Components) TCP TCP Veri Erişim Katmanı (DAL) Doğrulama (Authentication) İstemci
22
Klasik Internet Modeli
HTTPS BasicHttpBinding S e r v i s İş N e s n i D A L Basic Profile Username AspNetDb Username HTTP WsHttpBinding WS* Profile
23
Güvenilir İş Ortağı Modeli
S e r v i s İş N e s n i D A L WsHttpBinding HTTP HTTP İş Ortağı (Internet İstemcisi) Sertifika Deposu (Certificate Store)
24
Web Uygulaması Modeli S e r v i s İş N e s n i D A L NetTcpBinding
Asp.Net App. HTTPS TCP (Internet İstemcisi) Sertifika Deposu (Certificate Store) AspNetDb
25
Çoklu EndPoint Modeli S e r v i s WsHttpBinding İş N e D s
A L WsFederationHttpBinding NetTcpBinding İstemci MsmqIntegrationBinding Custom Binding
26
Front-End Service Modeli
WCF Servisi A İstemci V EndPoint A Front – End WCF Servisi WCF Servisi B İstemci X EndPoint B EndPoint WCF Servisi C İstemci Y EndPoint C1 EndPoint C2 İstemci Z
27
Geliştirici için Kazanımlar
28
4,442 satır alt yapı hazırlığı
Kod Bazında – VS.Net 2003 class HelloService { [WebMethod] public String Hello(String Greeting) { X509CertificateCollection collection = new X509CertificateCollection(); IntPtr blob = Marshal.AllocHGlobal(Marshal.SizeOf( typeof(CRYPTOAPI_BLOB))); IntPtr data = (IntPtr)((int)blob + Marshal.SizeOf(typeof(CRYPTOAPI_BLOB))); … SeqAckRange range = new SeqAcknRange(id, low, high ); SeqAckRange[] ranges = { range }; ReliableQueue.ProcessAcks( ranges ); BeginTransaction (NULL, ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions, &pITransaction); return Greeting; } 20,379 satır güvenlik 5,988 satır güvenilir mesajlaşma 25,507 satır transaction 4,442 satır alt yapı hazırlığı Toplam Satır 56,296
29
1,804 satır güvenilir mesajlaşma
Kod Bazında – VS.Net 2003 & WSE class HelloService { [WebMethod] public String Hello(String Greeting) { foreach ( SecurityToken tok in requestContext.Security.Tokens { X509SecurityToken token = tok as X509SecToken } … SeqAckRange range = new SeqAcknRange(id,low,high ); SeqAckRange[] ranges = { range }; ReliableQueue.ProcessAcks( ranges ); BeginTransaction (NULL, ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions, &pITransaction); return Greeting; 10 satır güvenlik 1,804 satır güvenilir mesajlaşma 25,507 satır transactions Toplam Satır 27,321
30
Kod Bazında – WCF & VS 2005/2008 1 kod + 2 config
[ServiceContract] class HelloService { [OperationContract] [PrincipalPermission(SecurityAction.Demand, Role = “Adminstrators")] [TransactionFlow(TransactionFlowOption.Mandatory)] [OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)] String Hello(String Greeting) {return Greeting;} } <bindings> <wsHttpBinding> <binding name="Binding1“ transactionFlow="true"> <security mode="Message"> <message clientCredentialType="Windows“/> </security> <reliableSession enabled="true" /> </binding> </wsHttpBinding> </bindings> 1 kod + 2 config güvenlik 0 kod + 1 config güvenilir mesajlaşma 2 kod + 1 config (attr.) transactions Toplam Satır 3 kod+ 4 config
31
.Net 3.5 ile Gelen Bazı Yenilikler
Web Destekli Programlama Modeli (Web-Based Programming Model-RESTful) Syndication(İçerik Paylaşımı) Desteği RSS 2.0 Atom 1.0 JSON(JavaScript Object Notation) – Ajax Desteği Ado.Net Data Services açılımı için zemin!
32
Visual Studio 2008 Yenilikleri
WcfSvcHost.exe (Otomatik Host aracı) WcfTestClient.exe (Hazır test amaçlı istemci uygulama) WCF Service Library çeşitleri WCF Service Library Syndication Service Library Sequential Workflow Service Library State Machine Workflow Service Library Service Reference Settings
33
Performans
34
Asmx & WCF(BasicHttpBinding)
Saniye Başına Operasyon Sayısı (Dört İşlemci) Servis tarafındaki metodumuz geriye sırasıyla 1, 10, 100 nesne gönderimi yapmaktadır. Buna göre servisin saniye başına operasyon işlemleri grafikte yer almaktadır. WCF Asmx
35
Asmx & WCF(Https - BasicHttpBinding)
Saniye Başına Operasyon Sayısı (Dört İşlemci) Servis tarafındaki metodumuz geriye sırasıyla 1, 10, 100 nesne gönderimi yapmaktadır. Buna göre servisin saniye başına operasyon işlemleri grafikte yer almaktadır. Asmx Basic Profile 1.0 a göre mesaj yayını yapmaktadır. (Burada HTTPS Kullanılmıştır)
36
Asmx WSE 2.0 & WCF Saniye Başına Operasyon Sayısı (Dört İşlemci)
Servis tarafındaki metodumuz geriye sırasıyla 1, 10, 100 nesne gönderimi yapmaktadır. Buna göre servisin saniye başına operasyon işlemleri grafikte yer almaktadır. Asmx Basic Profile 1.0 a göre mesaj yayını yapmaktadır ve WSE ile mesaj gönderimi gerçekleştirilmektedir. WSE tarafı XmlDocument kullanırken WCF XmlReader kullandığından belirgin bir performans farkı oluşmaktadır.
37
.Net Remoting & WCF Saniye Başına Operasyon Sayısı (Dört İşlemci)
Bu seneryoda WCF tarafında NetNamedPipeBinding kullanılmış.
38
Standart SOA Çözümleri
Bulunduğumuz Noktada WF ile Entegrasyon Standart SOA Çözümleri WCF Ado.Net Data Services RIA Silverlight Ajax Based Clients
39
Yardımcı Kaynaklar C#Nedir? (www.csharpnedir.com)
NedirTv? ( Bsenyurt ( Essential Windows Communication Foundation For .Net Framework 3.5 Addison Wesley Professional Programming WCF Services Juval Löwy – O’Reilly Windows Communication Foundation 3.5 Unleashed (2nd Edition) (Unleashed) Sams Michele Leroux Baustamante – WCF Web Cast Series MSDN Magazine – Service Station
40
Teşekkürler
41
©. 2008 Microsoft Corporation. All rights reserved
© 2008 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.