Web Service é sempre necessário?

Xamarin

Android

.NET

Mobile

iOS

06/04/2020

Boa noite pessoal,
estou começando a carreira de desenvolvedor mobile e sou novo aqui no devmedia.

Pesquisando e mergulhando nesse oceano de informação do stackoverflow, youtube e udemy. Percebi que é a rejeição ao acesso direto ao banco de dados por aplicação mobile é um consenso entre a comunidade de desenvolvedores. A utilização de uma Web API é sempre preferível. Li que existem diversas vantagens em relação à reutilização, escalabilidade e segurança das aplicação quando há um back-end.

No entanto, em meu contexto profissional, me deparei com alguns cenários que me encheram de dúvidas e queria compartilhar aqui em busca de ajuda.

Cenário: Loja/Restaurante

Desenvolvemos sistemas de gestão em que tanto o próprio sistema como o banco de dados estão hospedados no servidor local do cliente.
O cliente tem interesse de controlar comandas/pedidos/vendas por aplicativos móveis instalados nos celulares dos funcionários que estarão dentro da loja atendendo os clientes.
Os aplicativos e o servidor estão conectados à mesma rede local.

Dúvida 1: Faz sentido hospedar uma Web API em serviços como Azure, AWS nesse cenário? tendo em vista que o servidor é local e os dispositivos estão conectados na mesma rede.

Dúvida 2: Faz sentido hospedar a Web API no servidor do cliente? tendo em vista que provavelmente teria que fazer isso para todos os clientes interessados na aplicação? E que, provavelmente, alguns não terão servidores dedicados para hospedar a WEB API (Podendo, inclusive, não ser um windows server)?

Dúvida 3: Existe alguma possibilidade de tornar seguro o acesso direto ao banco de dados pelos dispositivos móveis através da rede local? Corrijam-se se estiver errado, mas pela minha ótica inexperiente, não seria essa uma alternativa mais prática?

Observação: Já assisti alguns cursos sobre o .NET EntityFramework e achei muito interessante. No caso, se a resposta da dúvida 3 for positiva, ele seria uma solução para o cenário? (considerando que os aplicativos serão desenvolvidos usando Xamarin)?

Desde já agradeço a atenção de todos!
E desculpem o volume de perguntas.
Ricardo Arraes

Ricardo Arraes

Curtidas 0

Melhor post

Kleber Santos

Kleber Santos

07/04/2020

O senário que você apresenta de servidor local, acredito ser uma realidade muito presente em aplicações um pouco legadas. A tendencia é as aplicações serem hospedadas em nuvem (Azure, AWS, Google, etc...) pois atualmente está muito acessível (financeiramente), sem contar na auta disponibilidade.

Existem diversas formas, e cada uma adequada para cada realidade.

Percebo que atualmente está sendo utilizado muito o conceito de servidor Serveless, no qual ele fica inativo até que aconteça uma requisição (economizando muito em processamento). Por exemplo o Firebase, ele te entrega um servidor de armazenamento NoSQL com validação completo e pronto, para aplicações altamente escaláveis.

Sugiro você utilizar alguma dessas plataformas em nuvem para o teu app, e através de serveless integrar com as outras aplicações legadas. Imagino que assim você ganha tempo pois essas plataformas te entregam tudo pronto e assim gradativamente vai atualizando as aplicações legadas.
GOSTEI 1
POSTAR