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:

Deixe um comentário

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 )

Imagem do Twitter

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

Foto do Facebook

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

Foto do Google+

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

Conectando a %s