Czy WCF REST Starter Kit jest martwy w wodzie?

Rozważamy przejście z korzystania z WCF dla naszej warstwy usług w aplikacjach na REST.

Do tej pory Zakładamy, że sposobem na to jest użycie WCF REST Starter Kit . Jednak jest to nadal w wersji podgląd 2 i nie został zaktualizowany od marca 2009.

Czy ten projekt jest martwy?

Jeśli tak, jakie mamy alternatywy dla tworzenia usług REST opartych na. Net? (Niektóre są sugerują użycie ASP.NET MVC , którego już używamy dla naszego interfejsu użytkownika layer)

Edit

Wygląda na to, że teraz WCF REST Starter Kit jest naprawdę martwy . ASP.NET zalecaną alternatywą jest Web API .

Author: Community, 2009-06-17

10 answers

WCF zapewnia wsparcie dla usług w stylu REST od wydania. Net Framework 3.5 i możesz zacząć budować usługi REST na WCF już dziś .

Zestaw Startowy WCF REST jest przeznaczony dla zespołu, aby uzyskać informacje zwrotne od społeczności na temat nowych funkcji związanych z REST w WCF. Aktywnie pracujemy nad włączeniem do platformy. Net Framework ulubionych funkcji starter kit programistów - na przykład możesz skorzystać z funkcji strony pomocy w niedawno wydanej wersji beta. Net 4 1 wydanie. Gdy otrzymujemy opinie na temat funkcji zestawu startowego, rozważamy je do włączenia w ramy, które można wykorzystać w produkcji.

Jeśli chodzi o komentarze, że zestaw startowy jest "martwy w wodzie", mogę zapewnić, że jest zupełnie odwrotnie. Planujemy 4-miesięczny cykl rozwoju nowych wersji starter kit, o czym informowaliśmy na stronie głównej starter kit . Posiadamy zasoby dedykowane do obsługi zestawu startowego i pracy nad przyszłymi wersjami.

 10
Author: Yavor Georgiev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-19 23:36:44

Po spędzeniu ogromnej ilości czasu grając z różnymi frameworkami. NET rest doszedłem do wniosku. za pomocą asp.net mvc jest zdecydowanie najprostszym i najbardziej przejrzystym sposobem obsługi usług restful. Jest dużo mniej myląca konfiguracja.

Asp.net MVC

Z natury rzeczy, asp.net mvc pasuje do metodologii usług restful. Zamiast przyjmować skomplikowany framework oparty na soap i "dostosowywać" go do protokołu restful, asp.net mvc opiera się na paradygmacie programowania sieciowego. Jest znacznie bardziej przezroczysty i łatwy do debugowania. Korzystanie z asp.net framework routingu, żądania iis są podłączone do klas kontrolerów. Zwracanie dowolnego rodzaju treści jest bardzo proste. Uzyskanie konfiguracji jest znacznie łatwiejsze ze względu na konwencję nad konfiguracją. To po prostu działa. - Nuff powiedział.

Oto lista projektów, w które grałem próbując sprawić, by wcf dobrze działał z resztą. Spędziłem dni ucząc się o różne podejścia. W końcu, były rzeczy, które lubiłem w każdej z nich, ale nie było nic, co zadbało o wszystkie nasze potrzeby. Mvc wygrywa.

WCF Rest Projects


WCF Rest Contrib - wcfrestcontrib.codeplex.com

Ten projekt ma kilka naprawdę przydatnych funkcji, takich jak zerowa konfiguracja, obsługa błędów (zwracanie odpowiednich kodów odpowiedzi) i uwierzytelnianie internetowe.

Wymaga zmiany klasy service factory, która tworzy Twój serwis wcf. Oznacza to, że nie może grać dobrze z innymi bibliotekami, które wymagają użycia ich fabryki.

WCF Rest Starter Kit - code.msdn.microsoft.com/wcfrestlabs /

To tak naprawdę tylko "narzędzie do nauki" i laboratorium pokazujące, w jaki sposób można zaimplementować odpoczynek w wcf. Nie wygląda na to, że jest już aktualizowany. Myślę, że asp.net mvc i wcf 4.0 odcisnęły piętno na sprzedaży. Ma kilka dobrych klas, które ostatecznie zostały włączone do wcf 4.0 (funkcja pomocy).

Narzędzia Dokumentacji


WCF Rest AutoDocs - autodocs.codeplex.com

Generuje naprawdę fajną, łatwą w użyciu dokumentację opartą na atrybutach i nowej klasie adaptera endpoint behavior.

Uderzyłem tym w duże sidła. Kiedy dodałem go do WCF nagle posty przestały działać. Ciągle otrzymywałem błąd nie znaleziony punktu końcowego. W końcu poddałem się i przestałem korzystać z biblioteki. Nie działa dobrze z innymi bibliotekami.

WCF Doc - wcfdoc.codeplex.com

Generuje dokumentację dla usług opartych na soap i rest. Możesz tworzyć własne XSLT i generować fajnie wyglądającą dokumentację na podstawie brandingu Twojej firmy. Obecnie włączam to do naszego procesu budowania.

 15
Author: ryanconnellyatl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-25 19:49:46

To zależy od twoich scenariuszy, ale przekonasz się, że WCF REST staje ci na drodze, aby włączyć określone scenariusze.

Zestaw Startowy zaczyna naprawiać niektóre z tych problemów, inne zostaną naprawione w następnej wersji, ale jeśli chcesz tworzyć łącza, negocjować typy treści i niestandardowe typy mediów, będziesz spędzać dużo czasu, aby to działało.

Są inne frameworki, które rozwiązują ten sam problem w prostszy sposób, proponuję wystarczy spojrzeć na Openrastę i drzemkę, a nawet MVC.

 3
Author: SerialSeb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-20 13:33:32

Użyliśmy WCF do zaimplementowania RESTFUL api, gdzie mogliśmy wysyłać i odbierać dane za pomocą XML, JSON i ProtoBuf. To samo z GETEM.

Jednak gdy spojrzeliśmy na ASP.NET MVC porzuciliśmy WCF i teraz używamy MVC, aby zrobić to samo z dużo bardziej przejrzystym kodem. W google jest kilka fajnych artykułów na temat tego, jak to zrobić. Naszą podstawową potrzebą było danie klientom opcji serializacji żądań i odbierania odpowiedzi na XML, JSON lub Protobuf.

Powiedziałbym, że WCF jest dla nas martwy. Niech żyje MVC

 3
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-22 23:57:38

Inną możliwością jest to, że ta funkcjonalność będzie częścią. NET 4.0 i Visual Studio 2010. Proponuję pobrać wersję beta i się przekonać.

 2
Author: John Saunders,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-17 10:54:03

Myślę, że to do niczego nie zmierza. Przejście z podglądu 1 do podglądu 2 zajęło 4 miesiące, a od tego czasu minęło dopiero 3 miesiące. Nie jest to oficjalne, ale Ten artykuł nazywa go punktem kulminacyjnym Framework 4 - Beta 1. Była na niej również sesja PDC . Zbyt wiele organizacji korzysta z usług REST, aby nie mieć wsparcia w WCF.

 2
Author: JP Alioto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-17 11:06:46

Do tej pory Zakładamy, że sposobem na to jest użycie zestawu WCF REST Starter Kit. Jednak jest to nadal w wersji podgląd 2 i nie został zaktualizowany od marca 2009.

Możesz tworzyć aplikacje REST z WCF, bez zestawu startowego.WCF, który został dostarczony w. NET 3.5, zawierał dobre możliwości odpoczynku i narzędzia. Zawiera mapowanie szablonu URI, atrybut WebGet i wiele innych.

Zestaw startowy to przykładowy kod, dodatkowe klasy narzędzi, filmy i inne dodatki rzeczy, które pomagają zilustrować, jak zrobić odpoczynek w WCF. Nie potrzebujesz zestawu startowego do odpoczynku w WCF.

Nie musisz czekać na "skompletowanie" zestawu startowego, aby odpocząć w WCF. Jeśli są tam rzeczy, które Ci się podobają, takie jak Kreator żądań Http, użyj go. Jest to open source, możesz użyć w swoim projekcie. Jeśli ci się nie podoba, nie używaj go.

 1
Author: Cheeso,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-17 15:39:20

Jeśli szukasz dodatkowych funkcji (takich jak typ zawartości & Akceptuj de/serializację na podstawie nagłówka, uwierzytelnianie operacji itp.), Sprawdź projekt WCF REST Contrib:

Http://wcfrestcontrib.codeplex.com/

Jest oparty na 3.5 SP1 WCF REST API i oferuje pewne funkcje, których nie ma w RSK.

 1
Author: hcoverlambda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-01 17:38:30

Używam WCF Rest Contrib tylko dlatego, że potrzebowałem wsparcia dla formatu x-www-form-urlencoded wysyłanego do nas z opracowanej przez inną firmę aplikacji na iPada. Dodatkowo potrzebuję wsparcia dla walidacji niestandardowej nazwy użytkownika, która nie jest również obsługiwana po wyjęciu z pudełka z usługami WCF 4 REST services.

Niestety minusem była utrata możliwości automatycznego generowania stron Pomocy, która nie wydaje się być obsługiwana w bibliotece WCF Rest Contrib.

Utrata stron pomocy okazała się być prawdziwym PITA, ale nie widzę innej opcji, o ile powyższe wymagania nie podlegają negocjacjom.

Mam nadzieję, że wraz z eksplozją urządzeń mobilnych wykorzystujących REST, Microsoft potraktuje wdrożenie wersji industrial strength w WCF poważniej. W obecnym stanie, byłem trochę rozczarowany w WCF 4... Liczyłem na coś bliższego WCF Rest Contrib.

(BTW, biblioteka implementacji usług obsługuje również wdrożenie SOAP ws dla klasycznych Nie-mobilnych klientów, co jest prostsze do wdrożenia, gdzie Kontrakty WSDL mogą być wykorzystywane do generowania proxy).

 1
Author: Bill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-01 21:17:55

Tworzyliśmy aplikację do korzystania z naszych istniejących usług. Mieliśmy również wymóg wdrożenia usług RESTful, ale naszym głównym celem było ponowne wykorzystanie / centralizacja naszych już istniejących usług WCF, osiągając możliwość ponownego użycia.

Następnie wypróbowaliśmy Web API i znaleźliśmy go całkiem prosto. Dostarczyła nam również dodatkowej warstwy do naszej architektury, którą również mogliśmy kontrolować.

Początkowo mieliśmy problemy z wydajnością, ale do tej pory były one dość minimalne.

Więc jeśli nie masz nic przeciwko dodaniu dodatkowej warstwy do usług WCF, pozwól jej istnieć jako warstwa Web API, w przeciwnym razie HttpClient jest równie solidny jako opcja.

 1
Author: user919426,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-20 16:57:53