Mudanças no EF Core 5 estão a caminho, mas o que de fato devemos esperar delas? Será que as preces da comunidade serão ouvidas?
Acho que o primeiro item que devemos pontuar antes de prosseguir é o que de fato é um ORM. ORM é a sigla para Object/Relational Mapping ou mapeamento objeto/relacional.
Sua função é mapear o resultado que recebemos de um banco de dados relacional para um objeto. Note que eu disse OBJETO e não entidade, ou seja, pode ser um DTO, uma entidade anêmica, qualquer coisa.
Caso queira saber mais sobre Modelagem de Domínios Ricos, acesse meu curso GRATUITO sobre o assunto clicando aqui.
Na versão 1.x do .NET Core muita coisa foi prometida, mas como as mudanças eram muitas, confesso que minha expectativa não estava lá em cima, pois eu sabia que o .NET Core ainda não estava maduro e o EF Core muito menos.
Porém, o item que mais me deixou desapontado foi o mapeamento NxN, que antes dado por Navigation Properties agora exigia uma classe exclusiva para isto.
Em termos de modelagem, isto é muito ruim. Sabemos que não conseguimos ter o cenário perfeito de OOP usando um ORM, mas afetar desta forma a modelagem chega a doer na alma.
Na versão 2.x vieram várias melhorias de performance, query, e na 3.x isto continuou, mas nada do NxN mudar, pior, o time do EF disse publicamente que ele estava pronto!
Foi então que decidi parar de brigar e assumir que a proposta do EF Core é mais Data Driven do que Domain Driven. Olhando o cenário NxN podemos ver claramente uma alusão aos relacionamentos de bancos de dados e não a OOP.
Encarar desta forma facilitou encaixar o uso do EF Core no dia-a-dia, ou seja, em cenário Data Driven ele brilha, em cenários focados em domínios ricos, ou usamos outra coisa, ou desmanchamos nossas entidades.
Se quiser saber mais sobre a criação de APIs Data Driven com ASP.NET Core 3 e EF Core 3, acesse meu curso clicando aqui.
Outro ponto que me incomodava bastante é que muitas das features que vou comentar abaixo estão como “sugestão” no GitHub do EF Core há tempos, mas vinham sendo ignoradas pelo time.
Não estou julgando pois não se internamente como acontecem as coisas lá, mas sei que a implementação destas features na nova versão mostra que o time está se posicionando diferente, ouvindo mais a comunidade.
A primeira mudança é na versão, pois não teremos o EF Core 4.x, pularemos para o EF Core 5 para acompanhar o .NET Core 5.
Embora a mudança seja grande, não haverá muitas breaking changes aparentemente e vale salientar que estas informações ainda são BEM RECENTES e muita coisa pode mudar.
Sem mais delongas, vamos as 6 mudanças mais aguardadas no Entity Framework Core 5.
Eu sei que deveria deixar esta feature para o fim, mas não estou aguentando de felicidade. Finalmente teremos uma mudança no modelo de mapeamento NxN, com a volta dos Navigation Properties.
O modelo atual ainda será suportado, porém teremos a alternativa de fazer como antigamente, apenas tendo duas listas uma em cada entidade, sendo gerada uma terceira tabela apenas a nível de banco de dados.
Outra mudança legal é a possibilidade de mapear classes abstratas (Tipos) como tabela. Esta feature permite que trabalhemos com herança de forma melhor no EF caso seja necessário separar apenas o tipo em uma tabela a parte.
Fazer consultas quando há Include envolvido é sempre um desafio. Muitas vezes partimos para o LINQ ou mesmo para o Dapper ou ADO, mas agora isto também será melhorado.
Será incluso o ThenInclude (Nome temporário) para que possamos aninhar Includes e também a possibilidade de consultas dentro do próprio Include.
Para os fãs de DevOps, os Migrations serão desacoplados da aplicação, tornando fácil executar a migração.
Hoje normalmente o Migration é feito no Startup do App e traz muitos problemas, incluindo a necessidade de um novo deploy para mudanças na migração.
Com as Migrations fora do App, podemos incluí-las no processo de deployment, como deve ser de fato.
Outro tópico comentado é sobre melhorias no uso do EF com Xamarin, Blazor, WinForms/WPF, mas este tópico vou ficar devendo pois não tenho conhecimento para falar sobre.
Abaixo deixo o link para o artigo oficial, você pode obter mais informações lá!
Além dos tópicos que mencionei, teremos melhorias nas queries e performance, assim como o time vem fazendo nas versões anteriores.
Não sei o que esperar, mas acho que não será algo muito grande, serão pontos específicos e vamos melhorando o framework aos poucos!
Este artigo atualmente utiliza a versão 5.0.0-rc.1 do ASP.NET/.NET, o que significa que ainda não...
Saiba como manter seu código limpo (Clean Code) seguindo algumas práticas sugeridas pelo Robert C...
Git é um sistema de controle de versões distribuídas, enquanto GitHub é uma plataforma que tem o ...
O Visual Studio Code é um editor de código criado pela Microsoft e que tem uma grande adoção pela...
O Angular nos fornece um esquema de rotas e navegação completo, simples e fácil de utilizar.
Me dedico ao desenvolvimento de software desde 2003, sendo minha maior especialidade o Desenvolvimento Web. Durante esta jornada pude trabalhar presencialmente aqui no Brasil e Estados Unidos, atender remotamente times da ?ndia, Inglaterra e Holanda, receber 8x Microsoft MVP e realizar diversas consultorias em empresas e projetos de todos os tamanhos.
Aulas disponíveis
horas de conteúdo
Alunos matriculados
Certificados emitidos
Temos mais de 16 cursos totalmente de graça e todos com certificado de conclusão.
Prefere algo mais Premium?
Compra única, parcelada em até
12x no cartão de crédito
Cobrado mensalmente via
cartão de crédito
Precisa de ajuda?
Sim! Basta criar sua conta gratuita no balta.io e começar seus estudos. Nós contamos com diversos cursos TOTALMENTE gratuitos e com certificado de conclusão.
Nós temos cursos gratuitos e pagos, porém você não precisa informar nenhum dado de pagamento
para começar seus estudos gratuitamente conosco. Os cursos gratuitos são completos e com
certificado de conclusão, você não paga nada por eles.
Porém, caso queira algo mais Premium,
você terá acesso à diversos benefícios que vão te ajudar ainda mais em sua carreira.
Siga SEMPRE as nossas Carreiras, elas vão te orientar em todos
os sentidos. Os cursos já estão organizados em categorias e carreiras para facilitar seu
aprendizado.
Nossa sugestão para aprendizado é começar pelo Backend e seguindo para Frontend e Mobile.
Nenhum curso no mundo vai te ensinar tudo, desculpa ser sincero! Os cursos são uma base, eles fornecem por volta de 30% do que você precisa aprender, o resto é com você, com dedicação e MUITA prática.
Java ou .NET? Angular ou React? Xamarin ou Flutter? A resposta é simples e direta: "Você já sabe
o básico?"
Se você ainda não sabe BEM o básico, ou seja, os fundamentos, OOP, SOLID, Clean Code, está
perdendo tempo estudando Frameworks ou até coisas mais avançadas como Docker. Foque nos seus
objetivos primeiro.
Agora se você está indeciso sobre qual Framework estudar, a boa notícia é que o mercado neste
momento está bem aquecido e você tem várias oportunidade. Desta forma o que levaríamos em conta
para tomar esta decisão seria:
Com certeza! O primeiro passo é começar e você pode fazer isto agora mesmo!
Começar de
graça
Receba em primeira mão todas as nossas novidades.