PROJETO .NET VPS OU CLOUD
#491715 - 06/12/2019 10:48:22
Gostaria da opinião de todos, os mais experientes, quem trabalha com alguma dessas tecnologias, todos que possam trazer alguma informação sobre o assunto.
Tenho um projeto em Vb.Net windows form com cadastro de clientes, produtos, orçamentos e ordem de serviços.
Esse projeto está em produção mas com o banco local em 1 cliente, sem causar problemas....tempo de resposta rápido, caminho feliz.
Testando em UM servidor pago. No plano básico de hospedagem de site onde utilizo apenas o serviço de banco, usando o MySql, o desempenho mudou completamente. O sistema ficou lento a cada requisição no banco.
Lendo sobre o assunto, pesquisando, comecei a dar mais atenção as tecnologias VPS, CLOUD SERVER e SERVIDORES DEDICADOS.
Alguém utiliza alguma dessas tecnologias? E principalmente o desempenho pra aplicação desktop, se dependendo da tecnologia escolhida posso ter um ganho em desempenho do meu banco em nuvem como tenho nele físico.
Qualquer informação é válida!
#491717 - 06/12/2019 12:09:08
Você não está usando uma WebAPI, certo?
#491719 - 06/12/2019 12:12:28
Última edição em 06/12/2019 12:14:45 por DELIMA
Não estou usando WebAPI, apenas banco Mysql conectando direto no windows form direto.
Acha que ai pode estar o inicio do meu problema ao usar o acesso direto a dados? eu não mudei nada na estrutura do programa apenas mudou a string de conexão pro banco remoto.
#491720 - 06/12/2019 12:49:43
tenho a mesma duvida porem tambem faço sites em armazeno em vps e meu sistema deslktop windows forms tem a opção de em rede externa fica bem lento e nao uso webapi queria saber se tem como deixar rapido
#491723 - 06/12/2019 14:48:27
O ideal, seria pesquisar e ler sobre as diferenças entre uma conexão usando um driver ODBC ou OleDb ou qualquer outro driver nativo. Apesar de funcionar, não é pra isso que eles foram feitos.
#491726 - 06/12/2019 16:32:11
KERPLUNK, usando o drive de conexão correto posso ter um ganho em performance nas requisições ao banco, mas isso por si só já daria diferença suficiente que eu não precisasse utilizar nenhum outro tipo de serviço? Você utiliza algum serviço em nuvem e sistema desktop conectando ao banco?
#491728 - 06/12/2019 16:40:40
Acho que não me expressei bem. Quando você conecta ao banco por algum driver desses(a conexão normal, connectionstring e tal), você está usando sockets. Os pacotes formados pelo driver são GIGANTESCOS, eles contêm uma gama muito grande de dados que não são o que você precisa, além de na maioria das vezes, esses pacotes tem menor prioridade para trafegar na rede. Essa é uma das razões de ser muito lento, tem várias outras mais técnicas que não vale à pena aqui. Com uma WebAPI, os dados são texto pura e simplesmente. O que trafega são basicamente dados mesmo, muito mais sucinto e trafegando pela porta 80 que é de longe a preferencial para tráfego de dados. Uma vez os dados chegando no servidor(na WebAPI), aí sim a conexão é feita ao banco no modo tradicional, mas nesse caso, o banco está localmente em relação à sua WebAPI, ou seja, as duas estão na mesma máquina(ou farm, ou LAN ou seja lá o que for, mas local). Não tente insistir na mesma coisa, se quer se atualizar e ter sua aplicação mais moderna e eficiente, você vai ter que investir tempo em aprender as coisas novas.
#491729 - 06/12/2019 16:56:32
Show KERPLUNK!
Comecei a estender a ideia pra esse lado, mudança da aplicação.
#491730 - 06/12/2019 16:59:52
https://codefc.com.br/criando-uma-webapi-net-core-vs-code-mysql/
#491731 - 06/12/2019 17:00:47
Você pode continuar usando uma aplicação desktop na boa, mas o modo como busca e grava dados vai mudar. Sinceramente sugiro que ao criar sua aplicação, use endpoints OData e crie um SDK(tem ferramentas que fazem isso automaticamente baseado no metadata gerado pelo OData). Assim, você fica livre para ter consultas dinâmicas, ditadas pelo client(sua aplicação desktop) e não precisar criar dezenas de endpoints REST tradicionais. A parte de CRUD dos dados fica do mesmo jeito, o OData só vai facilitar as consultas. É bem fácil de implementar, mas é quase imprescindível usar o Entity Framework. Digo quase porque é possível fazer usando o Dapper, é possível mas MUITO trabalhoso.
#491735 - 06/12/2019 20:04:41
Última edição em 07/12/2019 10:30:22 por MRSILVA
aí sim a conexão é feita ao banco no modo tradicional, mas nesse caso, o banco está localmente em relação à sua WebAPI, ou seja, as duas estão na mesma máquina(ou farm, ou LAN ou seja lá o que for, mas local).
Kerplunk só para exaltar ainda mais o que você explicou sobre a performance de uma WebApi tenho uma aplicação (web) que a WEBAPI está em uma VPS e o banco de dados está no AZURE, ou seja, em duas empresas diferentes, a rapidez é impressionante, o mais legal é que a aplicação quando está publicada tem praticamente a mesma performance do que quando estou testando minha aplicação (minha maquina de desenvolvimento (local) acessando o mesmo banco de dados (AZURE)) teoricamente teria que ter menos performance já que localmente os dados vão direto para o banco de dados e quando está publicada os dados tem que fazer dois caminhos. Eu não sabia explicar porque da diferença de performance de uma aplicação que utiliza conexão normal e de uma WEBAPI, mais uma coisa que apreendi aqui.