/ / Jquery WCF vs Pagemethods - jquery

Jquery WCF vs Pagemethods - jquery

Estou nos estágios iniciais de desenvolvimento de um siteusando o jQuery. Eu estou querendo saber se deve usar Pagemethods ou classe de serviço WCF. Eu vi em uma das respostas do SO que diz para usar o WCF em todos os requisitos futuros, tanto quanto possível. Aprecie altamente se alguém puder explicar quais são os fatores decisivos e a segurança.

Respostas:

1 para resposta № 1

Não há nada de errado em usar um Método de Página ou o ASMX ScriptService se eles atenderem aos seus requisitos.

O WCF definitivamente traz mais potência, flexibilidade e recursos à tabela, mas isso resulta em uma penalidade de complexidade adicional. Se você não pretende usar essas melhorias, então traz a complexidade.

As pessoas lhe dirão que a abordagem ScriptService é "legada", baseada em um pouco de texto de cabeçalho em um artigo do MSDN, mas que está fora de proporção. De fato, versões mais recentes desses mesmos artigos não mais carrega o aviso. Soltá-lo deveria ter sido uma decisão consciente. ASP.net ASP.NET AJAX e ScriptServices não estão indo em qualquer lugar no futuro previsível.

Se você está apenas hospedando um ponto de extremidade de retorno de chamada do AJAXdentro do mesmo projeto que a página que vai chamá-lo, você realmente não pode bater métodos de página e ScriptServices para facilidade de uso. Eu nunca vi um bom argumento falando por que a penalidade de complexidade do WCF é justificada nesse cenário, além de argumentos FUD sobre obsolescência.

O JavaScriptSerializer do ScriptService / Page Method também desserializa os parâmetros de entrada DateTime e enum de maneira um pouco mais flexível do que o DataContractJsonSerializer do WCF, que geralmente é bastante útil.


1 para resposta № 2

Recentemente, enfrentei uma decisão semelhante - eis algumas coisas que influenciaram fortemente nossa decisão:

O ASMX e o PageMethods são executados no ASP.NET, para que possam compartilhar os mesmos dados da sessão que as páginas ASP.NET. Se você faz uso pesado da sessão (eu não diria se isso é uma boa prática ou não - que é uma discussão completamente diferente), então poder compartilhá-la entre suas chamadas de página e chamadas de webservice pode ser um benefício significativo. No nosso caso, na verdade, armazenamos certas informações de autorização na sessão - se optarmos por implementar nossos serviços da Web como WCF, também precisaríamos implantar nossa própria estrutura de logon único entre o serviço da Web e o serviço ASP.NET. isso, mas é tempo de design / dev / teste você não pode querer investir.

Se o seu Webservice estiver hospedado em umendereço / porta que o seu serviço ASP.NET, então todas as chamadas para ele da sua página serão consideradas cross-site scripting (XSS) e serão significativamente limitadas pelo navegador. Há soluções alternativas para isso (principalmente na forma de JSONP), mas essas soluções alternativas também têm limitações; por exemplo, somente solicitações HTTP do tipo GET são suportadas. Como os ASMX / PageMethods são executados no próprio servidor ASP.NET, eles não será considerado pedido de XSS. É claro, se você puder garantir que seu serviço WCF sempre será implantado no mesmo endereço / porta que seu servidor ASP.NET, eles também não serão considerados XSS - nesse caso, esse problema é discutível.

Do ponto de vista do futuro, é provávelque o WCF verá mais atenção (patches, melhorias, etc.) do MS do que o ASMX / PageMethods. No entanto, nenhuma tecnologia é completamente à prova do futuro (você não acha que ainda estaremos escrevendo serviços WCF daqui a 10 anos, não é?). Então você realmente tem que medir seu próprio nível de compatibilidade (ou seus clientes ") com relação à possível depreciação futura do ASMX.


0 para resposta № 3

PageMethods usam muito da mesma tecnologia usadapelos serviços da web da ASMX. Essa tecnologia está estagnada. Não é esperado que seja aprimorado, e somente os bugs críticos devem ser corrigidos. Isso não é uma boa base para um pedaço de código pronto para produção.