2009-01-05 20 views

Odpowiedz

2

Myślę, że to sprawiedliwe powiedzieć, że WCF zastępuje ASMX i remoting. Możesz osiągnąć wszystko, co możesz, za pomocą ASMX i zdalnego dostępu, a więcej dzięki WCF, ale masz znacznie więcej możliwości i ogólnie większą kontrolę nad tym, co się dzieje.

Uważam więc, że jeśli możesz, powinieneś używać WCF.

4

WCF to biblioteka komunikacyjna, która jest nadzbiorem zarówno usługi .NET, jak i "starej" usługi sieciowej ASMX oraz następczyni obu tych bibliotek.

Usługi internetowe WCF mają znacznie lepsze wsparcie dla standardów WS- * i mają mniej problemów z interoperacyjnością.

Zasadniczo należy użyć WCF od .net Remoting i ASMX może uznać legecy (i, jeśli dobrze pamiętam, kilka błędów .NET Remoting zostały ustalone dopiero w WCF i nigdy w samej usług zdalnych .NET)

10

WCF to stos komunikacyjny, który pozwala na ujawnienie usług za pośrednictwem protokołu HTTP (np. ASMX) i protokołu TCP (takiego jak Remoting), a także potoków nazwanych (co jest w istocie połączeniem między procesami w obrębie maszyny), MSMQ i REST .NET 3.5.

Pozwala na to, ponieważ jest oddzielony od części komunikacyjnych usługi z dala od logiki biznesowej. Wszystko, co musisz zrobić, to udekorować swoje klasy usług, metody i DTO za pomocą odpowiedniego atrybutu umowy ([SeriviceContract], [OperationContract] i [DataContract].)

Miało to tę zaletę, że można napisać usługę raz i umożliwienie wielu różnym klientom korzystania z tej samej usługi (np. klienci Java mogą korzystać z HTTP, klienci .NET mogą korzystać z protokołu TCP, starsze wersje mogą używać MSMQ itp.).

WCF nadal pozwala korzystać ze wszystkich funkcji każdego transportu, w tym zabezpieczeń, transakcji, niezawodnego przesyłania wiadomości itp., Ale należy zachować ostrożność. Nie wszystkie funkcje działają na wszystkich transportach i trzeba odpowiednio zaprojektować. WCF pozwala określić w umowie, które funkcje są wymagane. Zapobiegnie to próbom ujawnienia usługi w sposób, który nie obsługuje wymaganego zestawu funkcji (tj. Jeśli usługa wymaga transakcji, środowisko wykonawcze WCF nie zezwoli na dostęp do usługi za pośrednictwem podstawowego punktu końcowego HTTP).

WCF jest rozszerzalna za pomocą niestandardowych zachowań (które wpływają na sposób działania runtime WCF) i kanały niestandardowe (które kontrolują jak WCF usługi komunikować się ze światem zewnętrznym.)

WCF ma trochę krzywa uczenia się w porównaniu do ASMX, ale korzyści ABSOLUTNIE wyważają tę krzywą uczenia się.

Nadzieję, że pomaga.

+1

W WCF, DataContractSerializer może uzyskać dostęp do członka niepublicznego, dlatego wymaga pełnego zaufania, podczas gdy Serializer XML (w usługach internetowych) nie. Należy z niej korzystać ostrożnie, ponieważ w pełni zaufany kod zapewnia dostęp do wszystkich zasobów urządzenia. – Adeel

Powiązane problemy