Devo usar ASP.NET Core no meu novo projeto?

     Estou dando início a um novo projeto pessoal e me perguntei se deveria usar o logocoreASP.NET Core. Tomar a decisão apenas levando em consideração a vontade de testar algo novo pode trazer dores de cabeça e atrasar bastante o desenvolvimento, a ideia deste post é listar os prós e contras e tentar descobrir se vale ou não apena utiliza-lo de imediato.

Antes da lista vamos enumerar alguns fatos sobre o Core até o momento:

  • Originalmente chamado de vNext e ASP.NET 5
  • Não é apenas uma nova versão, foi reescrito.
  • ASP.NET Core 1.0 lançado em Junho/2016
  • ASP.NET Core 1.1 lançado em Novembro/2016 (no evento Connect 2016)
  • ASP.NET Core 2.0 preview 1 lançado em Maio/2107 (no evento Build 2017)
  • ASP.NET Core 2.0 preview 2 (early preview) disponível

Prós

  • O ASP.NET Core é multiplataforma, o que significa que você consegue rodar o mesmo código de sua aplicação web no Windows, Linux ou Mac OS. Atentar para o uso de dependências que dependem apenas do Core e não do Full Framework.
  • O ASP.NET está 100% modularizado, ou seja, não vem por padrão com um monte de funcionalidades que você não vai precisar, deixando os aplicativos mais leves.
  • Por ser open source, já existe uma grande quantidade de editores de código que podemos usar para criar nossos aplicativos como o AtomSublimeEmacsVim, e minha escolha pessoal o Visual Studio Code.
  • A melhoria na performance se deve principalmente ao fato de que tanto o ASP.NET quanto o .NET Core são versões totalmente novas, reescritas e enxutas. Em testes de performance a versão mais nova do ASP.NET teve um ganho de 2300% em cima da versão anterior, o 4.6, olhe detalhes destes testes aqui. Veja aqui alguns benchmarks já realizados.

  • Apesar do Visual Studio ser uma ferramente excepcional, não é gratuita (exceto a Community Edition), e roda apenas no Windows (a versão para Mac é uma app diferente). Se não pode arcar com os gastos da compra de licenças para seu time e prefere usar ferramentas mais “leves”, o Core pode fazer mais sentido para sua equipe. Pode trabalhar com o .NET Core no Visual Studio Code que funciona muito bem no Mac e Linux.

Contras

  • O Core ainda é muito recente e tem muito o que amadurecer, se você precisa de um framework com milhares de packages e um ecossistema ativo e maduro talvez usar o MVC 5 seja uma melhor escolha. A base de conhecimento da comunidade é muito mais extensa neste caso e pode poupar tempo no seu projeto. Com o Core 2.0 o suporte melhorou muito e cerca dos 70% dos pacotes do Nuget já são suportados.
  • Então não tem WCF, Windows Forms e WPF.
  • O Entity Framework antigo também não funciona. Agora chamado de Entity Framework Core passou por melhorias, mas demora um pouco para estar completo e suportar tudo o que conhecemos do EF.
  • Não tem NHibernate oficial (no github é possível achar implementações).

 

Vou começar um projeto agora, devo desenvolver em ASP.NET Core 1.0?
Se vai colocar um projeto em produção e precisa de algo bem testado e com um forte suporte da comunidade, o ASP.NET MVC 5 e ASP.NET 4.6 podem ser uma opção mais interessante neste momento, mas com a versão do ASP.NET Core 2.0 preview muito do sofrimento foi superado e já é possível encontrar grandes projetos adotando o mesmo.

Ainda vale a pena estudar ASP.NET WebForms?
O WebForms não faz parte do ASP.NET Core, pois é tecnologicamente incompatível, a única forma de desenvolvimento em ASP.NET Core é o MVC e WebApi. Não recomendo criar novas aplicações em WebForms, apesar de muitos projetos que estão rodando por aí ainda serem nesta tecnologia e funcionarem muito bem, a trajetória da plataforma não inclui o Webforms então não seria interessante investir muitos esforços para quem ta entrando no mercado, a não ser que seja estritamente necessário ou um requisito do seu projeto. A Microsoft ainda investe e da suporte ao Forms mas minha recomendação é focar os estudos em ASP.NET MVC 5 e ASP.NET Core.

     Em geral não vale a pena converter aplicações antigas para o .Net Core, pense nele como uma nova tecnologia. Existem casos para continuar usando o framework tradicional, cabe ao arquiteto analisar cada caso e determinar o impacto da mudança. Para o meu caso onde estou criando algo do zero e já fiz algumas experiências com o .Net Core 1.1, os contras não parecem pesar na minha decisão, como escalabilidade e performance são importantes para mim, irei de Core.

Brace your selves!! Core is coming! ^_^

Veja mais:

2 comentários sobre “Devo usar ASP.NET Core no meu novo projeto?

  1. E tem outra, só funciona se for usar code first, sei que essa é a moda, mas como no meu caso que tenho um banco com quase 400 tabelas não desejo usar code first. Até funciona o mapeamento das tabelas, mas como o MetadataType mudou para ModelMetadataType a utilização de metadatas não funciona como no antigo e então cada vez que você revê o modelo e vai aplicar no código ele apaga tudo o que foi colocado pelo DataAnnotations e fica inviável trabalhar desse jeito. no Asp,net funciona perfeitamente.

    Curtir

    • Verdade Emerson, no meu caso também senti que a dor de cabeça ia ser grande para migrar o sistema da minha empresa que ja tinha todas as tabelas montadas em um banco SQL Server, e acabei optando por começar do zero usando o Core e a filosofia code first, migrations “dói” um pouco as vezes de usar, leva tempo para se sentir a vontade. Sofri mais com algumas limitações do EntityFramewok Core mas estou conseguindo tocar o projeto, o Core e as libs continuam a evoluir mas vale a pena pensar 2 ou 3 vezes antes de gastar tempo e recursos na migração. Há muito espaço para o Asp.Net e o meu sistema roda liso em cima dele desde 2012. Obrigado pelo comentário

      Curtir

Deixe uma resposta para Emerson Stori Rodrigues Cancelar resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s