Site .net com alta performance
29/09/2015
0
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
Posts
30/09/2015
Randrade
Você irá utilizar algum framework front-end, como o angular, knockout, ou outros?
30/09/2015
Leandro Brito
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.
30/09/2015
Randrade
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:
É 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
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.
-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.
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
30/09/2015
Leandro Brito
Obrigado pelos esclarecimentos.
30/09/2015
Randrade
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.
Clique aqui para fazer login e interagir na Comunidade :)