Site .net com alta performance

29/09/2015

0

Olá,

Vou iniciar a construção de um site para compra de ingressos e a previsão de acesso a página principal é de 8000 usuários por minuto.
Obrigatoriamente usaremos C# .NET e MVC.

O banco de dados, padrão de projeto, ORM e frameworks estão em aberto e podem ser escolhidos.

Até o momento penso em fazer uma WebApi 2.0 com padrão Repository e Micro ORM Dapper e banco SQL Server. O que acham?

Qual a sugestão vocês? Implementariam um sistema de filas ou para essa quantidade de usuários não é necessário?

Obs. Levem em conta um servidor de médio a baixo potencial.

Obrigado
Leandro Brito

Leandro Brito

Responder

Posts

30/09/2015

Randrade

Leandro, até o momento suas escolhas estão boas. Antes de lhe dar uma resposta mais aprofundada, tenho apenas uma dúvida.
Você irá utilizar algum framework front-end, como o angular, knockout, ou outros?
Responder

30/09/2015

Leandro Brito

Leandro, até o momento suas escolhas estão boas. Antes de lhe dar uma resposta mais aprofundada, tenho apenas uma dúvida.
Você irá utilizar algum framework front-end, como o angular, knockout, ou outros?


Sim. A princípio AngularJS por já ter experiência mas nada impede de utilizarmos outro como knockout se for para ter acréscimo em performance.
Responder

30/09/2015

Randrade

Irei responder sua pergunta por partes, então vamos lá.
Obrigatoriamente usaremos C# .NET e MVC.


Eu considero essa como uma excelente escolha de arquitetura. Até pq a Microsoft trabalho bem e existem N Framework's para complementar o que a Microsoft "deixou" de fazer.
Ao utilizar MVC você já possui algumas vantagens, como:
Como o modelo MVC gerencia múltiplos visualizadores usando o mesmo modelo é fácil manter , testar e atualizar sistemas múltiplos;
É muito simples incluir novos clientes apenas incluindo seus visualizadores e controles;
Torna a aplicação escalável;
É possível ter desenvolvimento em paralelo para o modelo , visualizador e controle pois são independentes;
É mais fácil gerenciar a complexidade da aplicação dividindo-a em modelo, visualizador e controlador (MVC);
-Fonte


Até o momento penso em fazer uma WebApi 2.0 com padrão Repository e Micro ORM Dapper e banco SQL Server. O que acham?


Eu não conheço os requisitos de seu se sistema, isso apenas você e/ou sua equipe. Porém, como você terá vários acessos, e necessita de algo robusto e de performance, eu sugeriria estudar a utilização de Asp.Net MVC no lugar do WebApi ou em conjunto, depende de como você prefere trabalhar.

MVC e WebApi são coisas distintas, e com funcionalidades distintas. Você não precisa escolher um ou outro, pode utilizar os dois em conjuntos.
O MVC pressupõe que o usuário vá acessar sites que são coleções de páginas para visualizar. WebAPI só retorna resultados, ele obviamente não têm visões, o V do MVC. WebAPI sempre precisou de uma estrutura mais simples, mas se pensar bem elas precisam de modelos (o M) e precisam se não dos controladores (o C) de algo muito parecido. Por isto faz mais sentido usar um framework único.
-Fonte


Porém, se utilizar o WebApi, você necessitará de um FrameWork para o V, do MVC, que no caso você já disse que usará o Angular. Nada contra, mas o angular tem como uso principal SPA (Single Pages Application). Neste caso aconselharia à verificar se realmente é necessário a utilização do mesmo, ou se deixaria por conta do Asp.Net MVC.

Em relação ao seu ORM e banco de Dados, não vejo problema algum. Apenas alternaria entre Dapper e EF (Entity framework). Dapper para queries e EF para outras funcionalidades.

Implementariam um sistema de filas ou para essa quantidade de usuários não é necessário?

Para essa parte é muito relativo. Você necessitará realizar testes de carga e stress para determinar quanto o seu site conseguirá suportar, para então ver se há necessidade de implementar um sistema de filas. Lembrando que para isso o seu servidor realmente importa.

-- Adicionais
Problemas de performance podem ser for N possibilidades. A linguagem e Framework
Responder

30/09/2015

Randrade

.......
Responder

30/09/2015

Leandro Brito

Desconhecia essa abordagem sobre MVC e Webapi e realmente se o site não for SPA a necessidade de um metaframework front-end como o AngularJS pode ser questionável. O site terá alguns CRUDs para alimentar a página principal e nessa situação usar o EF para o CRUD e Dapper para a página principal de consulta onde existe o acesso intenso me parece interessante.

Obrigado pelos esclarecimentos.
Responder

30/09/2015

Randrade

Na página do GitHub do Dapper possui algumas comparações em ms (milissegundos) de queries. A página está desatualizada, mas realmente há uma grande diferença entre ambos.
A utilização do MVC você contará com o Identity, que é um excelente componente para autenticação.

Vale lembrar, que existe N modificações para fazer o projeto ficar mais performático. ViewEngine, publish em modo de Release, Rountings, gZip (HTTP compression), dentre outras. Isso tudo interfere na performance do mesmo.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar