Eu não sou fã de procedimentos armazenados
Os procedimentos armazenados são MAIS sustentáveis porque: * Você não precisa recompilar seu aplicativo C # sempre que quiser alterar algum SQL
Você acabará recompilando de qualquer maneira quando os tipos de dados forem alterados ou desejar retornar uma coluna extra, ou o que for. O número de vezes que você pode alterar 'transparentemente' o SQL por baixo do aplicativo é bem pequeno em geral
- Você acaba reutilizando o código SQL.
Linguagens de programação, incluindo C #, têm essa coisa incrível, chamada função. Isso significa que você pode invocar o mesmo bloco de código de vários lugares! Surpreendente! Em seguida, você pode colocar o código SQL reutilizável em um desses itens ou, se quiser obter alta tecnologia, poderá usar uma biblioteca que faça isso por você. Eu acredito que eles são chamados de Mapeadores relacionais de objetos e são bastante comuns atualmente.
A repetição de código é a pior coisa que você pode fazer quando está tentando criar um aplicativo sustentável!
Concordou, e é por isso que os processos armazenados são uma coisa ruim. É muito mais fácil refatorar e decompor (dividir em partes menores) o código em funções do que o SQL em ... blocos de SQL?
Você tem 4 servidores da web e vários aplicativos do Windows que usam o mesmo código SQL. Agora você percebeu que há um pequeno problema com o código SQl, então você prefere ...... alterar o proc em um local ou enviar o código para todos servidores da web, reinstale todos os aplicativos da área de trabalho (o clique pode ajudar) em todas as caixas do Windows
Por que os aplicativos do Windows estão se conectando diretamente a um banco de dados central? Parece uma enorme falha de segurança e um gargalo, pois exclui o cache do servidor. Eles não deveriam estar se conectando através de um serviço da web ou semelhante aos seus servidores da web?
Então, pressione 1 novo sproc ou 4 novos servidores da web?
Nesse caso, é mais fácil enviar um novo sproc, mas, na minha experiência, 95% das 'alterações enviadas' afetam o código e não o banco de dados. Se você enviar 20 itens para os servidores Web naquele mês e 1 para o banco de dados, dificilmente perderá muito se enviar 21 itens para os servidores Web e zero para o banco de dados.
Código mais facilmente revisado.
Você pode explicar como? Eu não entendo isso. Em particular, visto que os sprocs provavelmente não estão no controle de origem e, portanto, não podem ser acessados por navegadores SCM baseados na Web e assim por diante.
Mais contras:
Os Storedprocs vivem no banco de dados, que aparece para o mundo externo como uma caixa preta. Coisas simples, como querer colocá-las no controle de origem, se tornam um pesadelo.
Há também a questão do puro esforço. Pode fazer sentido dividir tudo em um milhão de camadas, se você estiver tentando justificar para o seu CEO por que eles custam 7 milhões de dólares para criar alguns fóruns, mas criar um processo armazenado para cada coisa é um trabalho de burro a mais beneficiar.