Jaka jest różnica między aplikacją usługi WCF a biblioteką usług WCF?

118

Tworzę usługę sieci Web WCF i użyłem do tego szablonu aplikacji usługi WCF.

Czy utworzenie „aplikacji usługi WCF” spełnia to wymaganie? Jakie są zalety tworzenia biblioteki usług WCF w porównaniu z aplikacją usługi WCF?

Ashish Ashu
źródło

Odpowiedzi:

148

Aplikacja usługowa zawiera już skonfigurowanego hosta witryny internetowej. Biblioteka usług to biblioteka usług, do których host może odwoływać się i uruchamiać.

Jeśli zaczniesz od biblioteki usług (zalecane), możesz wybrać dowolnego hosta (usługę systemu Windows, IIS / ASP.NET lub nawet aplikację konsolową) i po prostu odwołać się do swojej biblioteki z nowego hosta. Wybór aplikacji usługi ogranicza hosta tylko do usług IIS / ASP.NET (chociaż może to być w porządku do twoich celów, ale ograniczy protokoły, których możesz używać).

Edycja : zmiany w usługach IIS od czasu, gdy to napisałem, pozwalają na szerszą gamę protokołów w aktywowanych usługach ASP.NET, więc wybór aplikacji usługi jest znacznie mniej ograniczający niż wcześniej.

Anderson Imes
źródło
1
Czy ktoś ma informacje o nowych protokołach / powiązaniach dostępnych podczas hostowania w usługach IIS?
Allen Rice
@AndersonImes Wiem, że to stary post, ale mam nadzieję, że możesz pomóc. Szukałem wszędzie i nie mogę znaleźć, czy usługa WCF ma zastąpić usługę sieci Web w .NET 3.5 i dlaczego szablon został usunięty w .NET 4? Dzięki. :)
Chiramisu
2
@Chiramisu WCF zapewnia o wiele więcej korzyści i elastyczności ... Te informacje okazały się bardzo pomocne: przykład Codeproject , pytanie
Stackoverflow
@Sam Thanks Sam, bardzo pomocny. Więc zasadniczo WCF może zrobić wszystko, co usługa sieci Web, a nawet więcej? Zastanawiam się nad
jakimikolwiek
1
@Chiramisu cieszę się, że mogę pomóc! Zawsze istnieją ograniczenia, ale WCF ma znacznie mniej ograniczeń niż typowa usługa sieci Web, wyobrażam sobie.
StoriKnow
10

Jeśli wszystko, co masz, to jedyny projekt, widzę tylko dodatkową złożoność, jeśli rozdzielisz się dla cholery. Korzystałem z biblioteki, gdy miałem pewne szczególne przypadki użycia, w których musiałem hostować zarówno w usłudze systemu Windows, jak i w usługach IIS.

W przypadku usług IIS można przenieść klasy i interfejsy do biblioteki, ale zachować pliki .SVC w projekcie sieci Web. Musisz edytować pliki .SVC, aby wskazywały na odpowiednio kwalifikowane klasy.

Gary
źródło