Jestem całkowicie zdezorientowany między usługami internetowymi WCF i ASMX. Na wcześniejszym etapie korzystałem z wielu usług internetowych, a teraz pojawiła się nowa rzecz zwana WCF. Nadal mogę utworzyć WCF, który działa jako usługa internetowa. Myślę, że będzie więcej rzeczy w WCF.
Jakie są różnice między WCF a usługami internetowymi? Kiedy należy użyć każdego z nich?
wcf
web-services
asmx
shailesh
źródło
źródło
Odpowiedzi:
Keith Elder ładnie porównuje ASMX do WCF tutaj. Sprawdź to.
Kolejne porównanie ASMX i WCF można znaleźć tutaj - nie zgadzam się w 100% ze wszystkimi punktami tam zawartymi, ale może ci to dać pomysł.
WCF to w zasadzie „ASMX na stereoidach” - może to być wszystko, co ASMX może zrobić - i wiele więcej! .
ASMX to:
WCF może być:
W skrócie: WCF jest tutaj, aby całkowicie zastąpić ASMX.
Sprawdź Centrum deweloperów WCF w witrynie MSDN .
Aktualizacja: link wydaje się być martwy - spróbuj tego: Co to jest Windows Communication Foundation?
źródło
Usługi sieciowe ASMX mogą być wywoływane tylko przez HTTP (tradycyjna usługa internetowa z .asmx). Natomiast usługę WCF lub komponent WCF można wywoływać za pomocą dowolnego protokołu (takiego jak http, tcp itp.) I dowolnego rodzaju transportu.
Po drugie, usługi sieciowe ASMX nie są elastyczne. Usługi WCF są jednak elastyczne. Jeśli tworzysz nową wersję usługi, musisz po prostu ujawnić nowy koniec. Dlatego usługi są zwinne i jest to bardzo praktyczne podejście, biorąc pod uwagę obecne trendy biznesowe.
Opracowujemy WCF jako kontrakty, interfejsy, operacje i kontrakty danych. Jako programista bardziej skupiamy się na usługach logiki biznesowej i nie musimy się martwić o stos kanałów. WCF to ujednolicony interfejs API do programowania dla wszelkiego rodzaju usług, dlatego tworzymy usługę i używamy informacji konfiguracyjnych do skonfigurowania mechanizmu komunikacji, takiego jak HTTP / TCP / MSMQ itp.
źródło
endpoint
. Jak<endpoint address="http://api.microsofttranslator.com/V1/soap.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_LanguageService1" contract="TranslatorService.LanguageService" name="BasicHttpBinding_LanguageService3" />
To bardzo stare pytanie, ale nie sądzę, że zalety ASMX zostały dość dobrze przedstawione. Chociaż usługi sieciowe ASMX nie są zbyt elastyczne, są bardzo proste w użyciu i zrozumieniu. Podczas gdy WCF jest bardziej elastyczny, jest również bardziej złożony, aby wstać i skonfigurować.
Usługi sieciowe ASMX są gotowe do wstania i dodania jako odwołania do usługi internetowej, gdy tylko dodasz plik. (zakładając, że Twój projekt się kompiluje)
W prostym przepływie pracy programistycznej
create webservice
->run webservice
->add webservice reference
usługa sieciowa ASMX ma bardzo niewiele rzeczy, które mogą pójść źle, niewiele, które można źle skonfigurować, i to jest jej siła.W odpowiedzi na te, które twierdzą, że WCF zastępuje ASMX, odpowiedziałbym, że WCF będzie musiał dodać usprawniony tryb konfiguracji KISS, aby całkowicie zastąpić ASMX.
Przykład web.config dla usługi sieciowej ASMX:
źródło
WCF całkowicie zastępuje usługi sieciowe ASMX. ASMX to stary sposób świadczenia usług internetowych, a WCF to obecny sposób świadczenia usług internetowych. Tworzenie nowych usług sieciowych SOAP na kliencie lub serwerze powinno odbywać się przy użyciu WCF.
źródło
Trwa wiele rozmów dotyczących prostoty usług sieciowych asmx w WCF. Pozwól mi wyjaśnić kilka punktów tutaj.
Nie zapominając, że byłem jednym z tych facetów, którzy lubili usługi asmx bardziej niż WCF, ale wtedy nie byłem świadomy usług WCF i ich możliwości. Bałam się konfiguracji WCF. Ale odważyłem się i spróbowałem napisać kilka własnych usług WCF, a kiedy dowiedziałem się więcej o WCF, teraz nie mam żadnych zahamowań na temat WCF i polecam je każdemu i wszystkim. Miłego kodowania !!!
źródło