Estamos começando um projeto que já tem um banco de dados legado, mas bem modelado. O novo projeto será todo em . NET Core. O que é mais vantajoso e de longa vida na comunidade e Microsoft, DataBase First ou Code First?
Obrigado!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Estamos começando um projeto que já tem um banco de dados legado, mas bem modelado. O novo projeto será todo em . NET Core. O que é mais vantajoso e de longa vida na comunidade e Microsoft, DataBase First ou Code First?
Obrigado!
Oi, Valterlei, boa tarde.
Longa vida na comunidade e Microsoft: Code First, sem sombra de dúvidas. Devido a crescente distribuição de informações e sistemas, cada vez mais estamos movendo as regras de negócio para aplicações onde o time de desenvolvimento tem maior controle e conhecimento. Com isso dependemos menos dos bancos de dados.
Porém conforme você mencionou seu banco de dados está bem modelado. Talvez o esforço de mover toda a lógica de negócio para o código seja alto. Outra avaliação que vocês devem fazer é o grau de relacionamentos entre as tabelas do banco. É alto a ponto de exigir SELECTs com inúmeros JOINs ou VIEWs para reaproveitá-los? Então até a decisão de mover essa lógica de recuperação de dados para o Entity (seja via Code First ou Database First) deva ser repensada, pois pode levar a degradação de performance e a um maior esforço de desenvolvimento.
Ou seja, depende...
Qualquer coisa responde aqui que exploramos mais o assunto.
Abraços!
Olá Daniel, boa noite!
Muito obrigado pelo retorno. Aproveitando sua experiência e ajuda, seria possível realizarmos o Database First (ganharia tempo) e depois continuarmos com os modelos criados, adicionando os campos, validações e outros como se fosse o Code First? Se isso for possível, seria somente usar os procedimentos para Database First e depois Code First, ou tem mais algo à ser configurado?
Abs.,
Seria possível sim, Valterlei. Começa fazendo um scaffolding do contexto (classe que herda de DbContext) e a partir daí vc segue evoluindo o modelo OO e usando Migrations para atualizar o banco.