2009-07-22 15 views

Odpowiedz

8

WCF jest znacznie bardziej elastyczny:

  • może być używany przez protokół HTTP (jak starszego ASMX)
  • ale również: może być używany przez NetTCP, MSMQ, wsHttp i tak dalej

  • Usługi WCF mogą być hostowane w usługach IIS (podobnie jak dotychczasowe ASMX)

  • , ale usługi WCF mogą być również hostowane samodzielnie w aplikacji konsolowej, usłudze Windows NT itp.

  • WCF oferuje znacznie więcej funkcji zabezpieczeń i poziom bezpieczeństwa niż ASMX (komunikat bezpieczeństwa etc.)

  • WCF oferuje takie rzeczy jak wiarygodny wiadomości, wsparcie transakcji itp

w WCF, prawie wszystko jest konfigurowalny w pliku konfiguracyjnym - znacznie bardziej niż w ASMX.

Nie mam żadnych gotowych dokumentów w zasięgu ręki, które opisują to - ale tak naprawdę to jest esencja tego, powiedziałbym.

Marc

PS: Nie wiem, czy ten będzie zawierać coś pożytecznego dla Ciebie:

http://whitepapers.techrepublic.com/abstract.aspx?kw=remoting&docid=270830

PPS: byś myśleć że Microsoft musiałby stosy tych białych ksiąg, aby przekonać ludzie - ale nie ..... :-)

+0

Dzięki! Dowolny dokument do polecenia? Przekonam innych, więc potrzebuję dokumentów, które nie zostały napisane przeze mnie. :-) – George2

+0

Przepraszam Marc, nie znalazłem pokrewnego dokumentu do pobrania. – George2

+0

Marc, jeśli nie będziemy gościć WCF w IIS, czy otrzymamy zasiłek? – George2

4

George,

Nie mam żadnych takich dokumentów pod ręką, ponieważ jest to tak oczywiste, dlaczego WCF jest lepsze.

Po pierwsze, z powodu Microsoft: ASMX Web Services are a “Legacy Technology”. Publicznie oświadczają również, że nie będą wprowadzać zmian w WSDL.EXE i innych częściach technologii ASMX. Mamy wystarczająco dużo problemów w tej branży ze starszą technologią i aplikacjami - nie ma sensu tworzyć dziś nowego kawałka starszego kodu.

Po drugie, WCF usuwa pojęcia, które są częścią ASMX, Remoting i GPW. "Wszystko, co mogą zrobić, WCF może zrobić lepiej".

+0

Fajnie, John! :-) – George2

+0

John, jeśli nie będziemy gościć WCF w IIS, czy korzyścią jest? – George2

+1

Dzięki temu możesz go hostować tam, gdzie chcesz go hostować. Na przykład można go hostować w usłudze systemu Windows lub nawet w aplikacji klienckiej WinForm. Dzięki temu dwie aplikacje klienckie mogą ze sobą rozmawiać. Pamiętaj też, że usługi IIS są tylko HTTP. Jest nowa usługa aktywacji procesów systemu Windows, która może aktywować usługę WCF w stosunku do protokołu _any_ (na przykład binarny zamiast surowego TCP/IP). –

3

Mówiąc prościej, pytanie brzmi "Dlaczego jest .NET lepszy niż VB6". Zważywszy na wystarczającą ilość czasu, wszelkie dotychczasowe technologie staną się brzemieniem konserwacyjnym/finansowym.

Jak już prosiłeś o bezpieczeństwo i wydajność, powiedziałbym "to zależy".Możliwe jest ustawienie jednej z opcji jako bezpiecznej, a wydajność w dużej mierze zależy od pisanego kodu. Dodatkowym plusem dla wydajności WCF jest to, że nie musisz go hostować w IIS - masz więc więcej opcji i elastyczność, aby było wydajniejsze.

+0

Hosing bez IIS ma zaletę ?? – George2

+1

Uważam, że jest to niemal zauważalnie szybsze, niż hostowanie go jako usługi korzystającej z TCP. – Fenton

1

WCF to wysoce konfigurowalny stos z niemal nieskończonymi kombinacjami serializacji, bezpieczeństwa, transportu itp. Dla twojego konkretnego pytania WCF implementuje protokoły WS- *, które obejmują zarówno bezpieczeństwo transportu, jak i wiadomości. Serializator datacontract WCF jest znacznie szybszy niż xmlserialzer używany w acmx. Transport Net.Tcp jest również bardziej wydajny niż transport oparty na HTTP.

znalazłem porównania wydajność tutaj http://msdn.microsoft.com/en-us/library/bb310550.aspx

+0

Fajne rzeczy, dzięki! – George2