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!
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.