Em geral
- O nível de serviço da Web promove a reutilização de solicitações de dados comuns para vários aplicativos
- O serviço da Web pode ser configurado com gerenciamento de versão que desvia muitos problemas decorrentes do desenvolvimento de nível de aplicativo. Por exemplo, se eu for novo em um projeto, qual aplicativo existente devo usar como um bom modelo para configurar meu aplicativo para usar fontes de banco de dados existentes.
- O Web Service evoluiu para permitir opções flexíveis para enviar solicitações e obter resultados de resposta em um formato comum, como JSON, usando um URI simples, o que significa que os aplicativos cliente podem ser desenvolvidos usando um padrão mais comum que incentiva interfaces uniformes confiáveis.
Estou começando a usar ASP.NET Web Api e planejo fazer serviços de dados primeiro.
Recentemente, tenho me concentrado em aplicativos da Web .NET MVC com o uso da estrutura de entidade.
- Se você já usa MVC, a API da Web também usa MVC com o controlador de API, de modo que a curva de aprendizado para construir os serviços é bastante fácil.
Recentemente, me encontrei em uma situação frustrante com um aplicativo da web MVC que estava construindo originalmente com base em procedimentos armazenados da Oracle. A versão original como Oracle 9 ou mesmo anterior que apresentava outro problema com o Visual Studio 2012 empurrando uma abordagem de fábrica de conexão mais moderna com assemblies de tempo de carregamento encontrando os arquivos dll certos para usar com base em conexões de configuração da web e nomes TNS.
As tentativas de conexão com o banco de dados falharam com mensagens de erro 'não mais suportadas'. Por curiosidade, baixei o Oracle 12c e fiz algumas conexões em nível de aplicativo que funcionaram bem com meus nomes TNS e a dll de montagem de carga e consegui trabalhar com o Oracle sem problemas.
Havia alguns serviços da web construídos que funcionavam com conexões com a versão mais antiga do Oracle. Eles foram construídos com métodos que foram mapeados especificamente para tabelas selecionadas, no entanto, para minha decepção. Eu teria que escrever meu próprio.
Disseram-me que o grupo responsável pela manutenção dos bancos de dados Oracle estaria escrevendo novos procedimentos armazenados para substituir os mais antigos que eu estava usando para abstrair a interface do cliente e as camadas de lógica de negócios.
Então, meu primeiro pensamento foi que todas as solicitações de dados comuns, como preencher lista suspensa ou preenchimento automático com dados de toda a empresa, fossem feitas por meio de serviços de dados que chamariam os procedimentos armazenados do Oracle. Por que repetir esse processo em cada aplicativo e fazer com que cada desenvolvedor tenha problemas com configuração e montagem de versão / carga e problemas de TNS?
tão....
- Para vários problemas de servidor de banco de dados, como o uso de procedimentos armazenados Oracle em um aplicativo .NET MVC que normalmente pode estar usando EF para o uso de dados do SQL Server, por que não empurrar essas dores de cabeça para métodos de serviço Web Api onde esses problemas de configuração podem ser isolados.
- Novamente, a interface do cliente pode ser feita usando JavaScript, JQuery e JSON, os quais você já está usando, se estiver usando a API da Web para fazer solicitações de dados do SQL Server.
Eu sou um desenvolvedor / analista de aplicativos e não um DBA, então minha perspectiva é a experiência com a frustração sem fim de ter que modificar constantemente os aplicativos quando as ferramentas de banco de dados evoluem.