Jestem na wczesnym etapie rozwoju strony internetowej przy użyciu Jquery. Zastanawiam się, czy użyć usługi Pagemethods lub klasy usług WCF. Widziałem w jednej z odpowiedzi SO, która mówi, aby używać WCF we wszystkich przyszłych wymaganiach w jak największym stopniu. Bardzo wdzięczni, jeśli ktoś może wyjaśnić, jakie są decydujące czynniki i aspekty bezpieczeństwa.Jquery WCF vs Pagemethods
Odpowiedz
PageMethods używają dużo tej samej technologii używanej przez usługi sieciowe ASMX. Ta technolgia jest w stagnacji. Nie oczekuje się, że zostanie ulepszony, a tylko krytyczne błędy powinny zostać naprawione. To nie jest dobra podstawa dla kawałka kodu gotowego do produkcji.
Nie ma nic złego w korzystaniu z metody strony lub usługi skryptowej ASMX, jeśli spełniają one wymagania.
WCF zdecydowanie przynosi dodatkową moc, elastyczność i funkcje do stołu, ale jest to karane dodatkową komplikacją. Jeśli nie zamierzasz korzystać z tych ulepszeń, to tylko tylko przynosi złożoność.
Ludzie powiedzą ci, że podejście ScriptService jest "starsze", oparte na tekście nagłówka w jednym artykule MSDN, ale jest to nieproporcjonalne. W rzeczywistości newer versions of those same articles nie jest już opatrzone zastrzeżeniem. Upuszczenie musiało być świadomą decyzją. ASP.NET AJAX i ScriptServices po stronie serwera nie pojawią się w najbliższej przyszłości.
Jeśli hostujesz punkt końcowy oddzwaniania AJAX w ramach tego samego projektu, co strona, która będzie go wywoływać, naprawdę nie możesz pokonać metod Page Methods i ScriptServices w celu ułatwienia użycia. Nigdy nie widziałem dobrego argumentu przemawiającego za tym, dlaczego kara złożoności WCF jest uzasadniona w tym scenariuszu, innym niż argumenty FUD dotyczące przestarzałości.
Usługa JavaScriptSerializer usługi ScriptService/Page umożliwia również deserializację DateTime i wyliczanie parametrów wejściowych nieco bardziej elastycznie niż DataContractJsonSerializer WCF, co jest często bardzo przydatne.
Niedawno w obliczu podobnej decyzji - oto kilka rzeczy, które silnie wpłynęły na naszą decyzję:
ASMX i PageMethods prowadzone w ramach usługi ASP.NET, dzięki czemu mogą one udostępniać te same dane sesji jako stron ASP.NET. Jeśli intensywnie korzystasz z sesji (nie będę się zajmować tym, czy jest to dobra praktyka, czy nie - to zupełnie inna dyskusja), wtedy możliwość dzielenia się nią między rozmowami na stronie i połączeniami z serwisem internetowym może być znaczącą korzyścią. W naszym przypadku faktycznie przechowujemy pewne informacje o autoryzacji w sesji - jeśli zdecydujemy się na wdrożenie naszych usług internetowych jako WCF, musielibyśmy również wdrożyć własną strukturę pojedynczego logowania między usługą internetową a usługą ASP.NET. Nic w tym złego, ale czas na projektowanie/programowanie/testowanie może nie być warty zainwestowania.
Jeśli Twój serwis internetowy jest hostowany na innym adresie/porcie niż twoja usługa ASP.NET, wszystkie wywołania do niego ze strony będą uznawane za skrypty krzyżowe (XSS) i będą znacznie ograniczone przez przeglądarkę. Istnieją rozwiązania tego problemu (głównie w formie JSONP), ale te obejścia również mają ograniczenia; na przykład obsługiwane są tylko żądania HTTP typu GET. Ponieważ metody ASMX/PageMethods są wykonywane na samym serwerze ASP.NET, nie będą traktowane jako żądania XSS. Oczywiście, jeśli możesz zagwarantować, że twoja usługa WCF będzie zawsze wdrażana na tym samym adresie/porcie co serwer ASP.NET, nie będą one również uważane za XSS - w takim przypadku ten problem jest dyskusyjny.
Z przyszłościowego punktu widzenia prawdopodobnie WCF będzie zwracać większą uwagę (poprawki, ulepszenia itp.) Od MS niż ASMX/PageMethods. Jednak technologia NO jest całkowicie odporna na przyszłość (nie sądzicie, że za 10 lat będziemy nadal pisać usługi WCF, czyż nie?).Więc naprawdę musisz zmierzyć swój własny poziom kompresji (lub klientów) w odniesieniu do możliwej przyszłej amortyzacji ASMX.
- 1. .Net Remoting vs. WCF
- 2. Gniazda vs. WCF
- 3. asp.net ScriptManager PageMethods jest niezdefiniowany
- 4. jQuery vs jQuery Mobile vs jQuery UI?
- 5. WCF ChannelFactory vs generowanie proxy
- 6. PageMethods nie jest zdefiniowany w ASPX Strona
- 7. jQuery komórkowy vs regularnych jQuery
- 8. Wypoczynek vs Wcf plusy i minusy
- 9. Generowanie proxy WCF: svcutil.exe vs wsdl.exe
- 10. WCF vs WebAPI i natywne urządzenia mobilne
- 11. F # F # interaktywne vs. roztworze i WCF
- 12. Jquery live() vs delegate()
- 13. JQuery if() vs: zawiera
- 14. Jquery mousedown vs kliknij
- 15. Jquery Chaining vs Callbacks
- 16. jQuery. $ (This) vs. to $()
- 17. jQuery append vs appendTo
- 18. Dołącz Vs appendChild JQuery
- 19. jQuery: eq() vs get()
- 20. Wtyczki jQuery vs UI vs niektóre alternatywne
- 21. jQuery Komórka delegat vs żywo vs wiążą
- 22. Azure vs WCF vs ASP.NET vs ... Jak to pasuje do siebie?
- 23. Zużywanie usługi WCF przy użyciu jQuery
- 24. Problem Wywołanie usługi WCF Biblioteka z jQuery
- 25. Spożywanie WCF z jQuery jako JSON
- 26. jquery ui _trigger vs trigger
- 27. $ (this) vs to w jQuery
- 28. Jquery Różnica .html ("") vs .empty()
- 29. jquery each vs. native dla
- 30. Wejście vs: Wejście w jQuery
Coś, co łatwo przeoczyć, dopóki nie zanurzysz się w kolanie w projekcie, jest to, że JavaScriptSerializer ASMX ScriptServices jest bardziej elastyczny niż DataContractJsonSerializer w WCF, jeśli chodzi o analizowanie daty i wyliczanie parametrów wejściowych. –