Examinei algumas perguntas, tecnologias para criar uma boa camada de serviço, mas tenho algumas perguntas sobre isso com as quais preciso de ajuda.
Primeiro, algumas informações do que tenho para os requisitos. Atualmente, temos um número de aplicativos da Web que se comunicam de maneira semelhante a uma teia de aranha (todos conversando de maneira confusa por meio de serviços da Web e dados do banco de dados).
- Queremos mudar isso para que todos os aplicativos passem por uma camada de serviço onde possamos trabalhar mais com o cache e encapsular funcionalidades comuns e muito mais.
- Queremos que essa camada também tenha uma API da Web para que clientes de terceiros possam consumir informações do serviço.
O problema que vejo é que, se construirmos a camada de serviço com a MVC4 Web API, não precisaremos nos comunicar entre o aplicativo usando a webAPI, o que significa que precisamos construir URLs e consumir JSON / Xml. Isso não parece muito eficaz. Presumo que um método melhor seria trabalhar com entidades e WCF para se comunicar entre o aplicativo, mas podemos perder a mágica da API da Web?
Portanto, a questão é se existe uma maneira de consumir uma camada de serviço como uma API da Web (JSON / XML) e como uma camada de serviço de back-end com entidades. Se formos forçados a usar duas camadas de serviço diferentes, talvez tenhamos que duplicar algumas funcionalidades e outras coisas ruins.
Espero que a pergunta seja clara o suficiente e pergunte se você precisa de mais informações.