none
Conexão com banco de dados RRS feed

  • Pergunta

  • Uma aplicação MVC 5 por padrão vem com banco de dados local quando criada no Visual Studio, porém sei que não é uma prática nada usual no mercado. Como conectar com um banco de dados SQL Server externo? Tenho o SQL Server 2014 Express instalado localmente em minha máquina, por exemplo no php temos o PDO que com a string = new PDO("mysql:hostname=localhost;dbname=nome do banco","usuario","senha") eu me conecto a um banco MySql, por exemplo. No caso do ASP.NET como funciona essa conexão? Digo em padrão atual, estou lendo sobre ADO.NET. É o padrão utilizado?
    • Editado Ranierycg segunda-feira, 25 de maio de 2015 16:51
    segunda-feira, 25 de maio de 2015 16:51

Respostas

  • Raniery,

    O ADO.NET é a base na qual está construída toda a tecnologia de acesso a bancos de dados relacionais na plataforma .NET. Estudar sobre o mesmo é importante, já que vc terá discernimento sobre como proceder em cada cenário que encontrar no dia-a-dia.

    Atualmente a alternativa para acesso a dados mais utilizada é o Entity Framework (EF), o qual representa um exemplo de solução ORM. O Entity Framework foi projeto utilizando o ADO.NET, sendo que o mesmo possibilita representar registros da tabela de um banco sob a forma de objetos .NET.

    Sugiro a vc dar uma olha nos link abaixo (há no mesmo uma relação de outros artigos que podem ser úteis), caso queria conhecer mais sobre o Entity Framework:

    https://msdn.microsoft.com/pt-br/library/jj128157.aspx
    • Marcado como Resposta Ranierycg segunda-feira, 25 de maio de 2015 18:00
    segunda-feira, 25 de maio de 2015 17:34
  • Ambos são frameworks. Na verdade, o Entity Framework foi construído a partir de recursos do ADO.NET.
    • Marcado como Resposta Ranierycg segunda-feira, 25 de maio de 2015 19:59
    segunda-feira, 25 de maio de 2015 18:33
  • Apenas complementando a resposta anterior, existem outras opções de acesso a dados como NHibernate e Enterprise Library. Nestes outros casos, novamente o ADO.NET é a base para que aconteça a interação com bases relacionais como SQL Server, Oracle, Postgre, MySql, Firebird, dentre outros.
    • Marcado como Resposta Ranierycg quarta-feira, 27 de maio de 2015 20:59
    segunda-feira, 25 de maio de 2015 20:12
  • Embora bastante gente faça a modelagem do banco a partir do próprio Entity Framework, eu não sigo esta prática. Sempre trabalhei em ambientes nos quais havia a exigência de se executarem scripts por um DBA ou outro profissional designado para esta tarefa; logo, parto sempre da implementação do banco e depois replico isto com o Entity em uma aplicação .NET.

    Já o using é uma construção que força a liberação de recursos de um objeto (o qual normalmente implementa a interface IDisposable) ao término de um bloco de instruções, mesmo que aconteçam erros/exceções durante este processo. Logo, ao se utilizarem conexões de acesso a bancos é recomendável o uso desta estrutura.

    A criação do banco local é uma característica própria do Visual Studio (vc pode estar desenvolvendo em um note, sem acesso a uma rede e precisaria fazer um teste rápido, por exemplo). Para configurar a conexão apontando para um servidor, sugiro vc consultar a seção SQL Server no site ConnectionStrings:

    http://connectionstrings.com/

    • Marcado como Resposta Ranierycg sexta-feira, 29 de maio de 2015 20:44
    quinta-feira, 28 de maio de 2015 11:21

Todas as Respostas

  • Raniery,

    O ADO.NET é a base na qual está construída toda a tecnologia de acesso a bancos de dados relacionais na plataforma .NET. Estudar sobre o mesmo é importante, já que vc terá discernimento sobre como proceder em cada cenário que encontrar no dia-a-dia.

    Atualmente a alternativa para acesso a dados mais utilizada é o Entity Framework (EF), o qual representa um exemplo de solução ORM. O Entity Framework foi projeto utilizando o ADO.NET, sendo que o mesmo possibilita representar registros da tabela de um banco sob a forma de objetos .NET.

    Sugiro a vc dar uma olha nos link abaixo (há no mesmo uma relação de outros artigos que podem ser úteis), caso queria conhecer mais sobre o Entity Framework:

    https://msdn.microsoft.com/pt-br/library/jj128157.aspx
    • Marcado como Resposta Ranierycg segunda-feira, 25 de maio de 2015 18:00
    segunda-feira, 25 de maio de 2015 17:34
  • Deixa eu ver se entendi. O ADO.NET seria o "padrão" de regras para acesso, e o Entity um framework?
    segunda-feira, 25 de maio de 2015 18:00
  • Ambos são frameworks. Na verdade, o Entity Framework foi construído a partir de recursos do ADO.NET.
    • Marcado como Resposta Ranierycg segunda-feira, 25 de maio de 2015 19:59
    segunda-feira, 25 de maio de 2015 18:33
  • Apenas complementando a resposta anterior, existem outras opções de acesso a dados como NHibernate e Enterprise Library. Nestes outros casos, novamente o ADO.NET é a base para que aconteça a interação com bases relacionais como SQL Server, Oracle, Postgre, MySql, Firebird, dentre outros.
    • Marcado como Resposta Ranierycg quarta-feira, 27 de maio de 2015 20:59
    segunda-feira, 25 de maio de 2015 20:12
  • Olá, obrigado pela ajuda. Estou usando o Entity Framework para fazer o Code First. Primeira pergunta. É uma prática usual no mercado fazer a modelagem do Banco com os Models? Porque em PHP estou acostumado a ter um DBA fazendo a modelagem e eu apenas faço a conexão com o usuário e a senha do DB para fazer o CRUD.

    Criei um aplicativo console em C# para fazer minha primeira conexão. Nele contém uma classe chamada Program.cs que contém o método Main, depois criei uma classe Cliente, que contém o model para o DB, e depois eu criei uma classe ClienteContext que herda de DbContext e faz o DbSet da classe Cliente.

    Porém em alguns exemplos na NET vi que tem a seguinte linha de código, já traduzi para minha aplicação.

    using(var db = new ClienteContext()){

        var cliente = new Cliente (Nome = "Primeiro Cliente");

    }

    Minha dúvida é: Porque o uso da palavra using em um scopo? Não estou familiarizado com a utilização dessa palavra nesse contexto.

    E outra coisa. Por padrão o VS cria um banco de dados local... Como faço para alterar o App.config para utilizar o banco de dados que eu quero?

    Desde já agradeço.


    • Editado Ranierycg quarta-feira, 27 de maio de 2015 22:45
    quarta-feira, 27 de maio de 2015 22:16
  • Embora bastante gente faça a modelagem do banco a partir do próprio Entity Framework, eu não sigo esta prática. Sempre trabalhei em ambientes nos quais havia a exigência de se executarem scripts por um DBA ou outro profissional designado para esta tarefa; logo, parto sempre da implementação do banco e depois replico isto com o Entity em uma aplicação .NET.

    Já o using é uma construção que força a liberação de recursos de um objeto (o qual normalmente implementa a interface IDisposable) ao término de um bloco de instruções, mesmo que aconteçam erros/exceções durante este processo. Logo, ao se utilizarem conexões de acesso a bancos é recomendável o uso desta estrutura.

    A criação do banco local é uma característica própria do Visual Studio (vc pode estar desenvolvendo em um note, sem acesso a uma rede e precisaria fazer um teste rápido, por exemplo). Para configurar a conexão apontando para um servidor, sugiro vc consultar a seção SQL Server no site ConnectionStrings:

    http://connectionstrings.com/

    • Marcado como Resposta Ranierycg sexta-feira, 29 de maio de 2015 20:44
    quinta-feira, 28 de maio de 2015 11:21