none
NHipernate, ja possui suporte para sql 2005? RRS feed

  • Pergunta

  • Ola pessoal
    estava vendo alguns exemplos de acesso a bando de dados, e encontrei um som nHipernate,
    porem, no artigo, estava dizendo que nao existe suporte a sql 2005(o artigo é de uma revista de uns 4 meses atras).
    1)queria saber se ja existe, e como eu faco o download e o acesso ao SQL 2005?
    2)se alguem puder me indicar outros tipos de acesso a bando de dados, porem, eu nao quero utilizar o arraste e solte do visual studio 2005, ele deixa o codigo sujo, e o software em si nao fica um exemplo de performance e manutencao.
    acho que é so
    T+
    falow

    sábado, 31 de março de 2007 17:11

Respostas

  •  

    Oi !

     

    A Microsoft está prestes a lançar o .NET 3.5 que vai trazer o Linq e o Ado vNext, por isso o NHIBERNATE sem sombra de dúvida não é uma boa opção de projeto no momento.

     

    Quanto a questão 2 você precisa tomar cuidado porque muito do que você está dizendo é na verdade devido ao estigma com relação aos problemas com VB 6. O .NET mudou por completo as técnicas de RAD, não existe isso de código sujo e perda de manutenção e a diferença de performance (Se ainda houver na versão 2, pq todos os testes foram na 1.1) é insignificante com relação ao ganho de produtividade.

     

    Veja o artigo que está em http://www.microsoft.com/brasil/msdn/tecnologias/adonet/camadaDados.mspx , leia-o com carinho e também o outro artigo para o qual ele tem um link e cuidado para não se deixar levar por pré-conceitos de eras passadas.

     

    []'s

     

    Dennes

    sábado, 31 de março de 2007 17:37
  • Oi !

     

    Provavelmente pode ter faltado só um rebuild solution antes de tentar enxergar o objeto pelo objectdatasource.

     

    Depois do rebuild ele copia a dll para a pasta bin, ai vai funcionar.

     

    []'s

     

    Dennes

    sábado, 31 de março de 2007 19:26
  • Oi !

     

    O gridview pode estar com a propriedade datakeynames vazia. Preencha com a chave primária.

     

    []'s

     

    Dennes

    sábado, 31 de março de 2007 20:37

Todas as Respostas

  •  

    Oi !

     

    A Microsoft está prestes a lançar o .NET 3.5 que vai trazer o Linq e o Ado vNext, por isso o NHIBERNATE sem sombra de dúvida não é uma boa opção de projeto no momento.

     

    Quanto a questão 2 você precisa tomar cuidado porque muito do que você está dizendo é na verdade devido ao estigma com relação aos problemas com VB 6. O .NET mudou por completo as técnicas de RAD, não existe isso de código sujo e perda de manutenção e a diferença de performance (Se ainda houver na versão 2, pq todos os testes foram na 1.1) é insignificante com relação ao ganho de produtividade.

     

    Veja o artigo que está em http://www.microsoft.com/brasil/msdn/tecnologias/adonet/camadaDados.mspx , leia-o com carinho e também o outro artigo para o qual ele tem um link e cuidado para não se deixar levar por pré-conceitos de eras passadas.

     

    []'s

     

    Dennes

    sábado, 31 de março de 2007 17:37
  • Ola Dennes
    obrigado pelas dicas, vou dar uma olhada no artigo.


    Quando disse sobre performance e manutencao, talvez tenha me expressado errado, o que nao gosto é, fica tudo na camada de apresentação (ASP.net)

    ele criar o grip por exemplo, e fica tudo la na "tela"
    O que eu queria era, que ao arrastar, eu apenas faria a referencia a "funcao" que faz o insert, updat, delete por exemplo.
    E esse tipo de exemplo eu nao tenho encontrado, seria mais ou menos aquela divisao em camadas (n-tier).

    Me desculpe, mais estou comecando agora em ASP.Net, programa atualmente em ASP e sql server 2000/2005, e quero dar uma atualizada na liguagem , entao tenho ido pro ASP.net

    Porem estou tengo algumas dificuldades pro nao conhecer direito como funciona.

    por enqto é so Dennes
    T+
    e obrigado novamente

    sábado, 31 de março de 2007 17:59
  • Oi !

     

    Você está absolutamente certo em não querer que tudo fique na camada de apresentação, dividir o sistema em n-tiers é fundamental para a boa manutenção.

     

    A novidade é que a criação do sistema em camadas pode ser feita em grande nível com o RAD do .NET. O artigo explica isso, você vai gostar.

     

    []'s

     

    Dennes

    sábado, 31 de março de 2007 18:01
  • Estou vendo o artigo agora e ja vou fazer os teste.

    so mais uma curiosidade, para o uso de procedures, tenho que fazer algo a mais no codigo?
    nao exemplo o que vi é codigo SQL direto, e eu uso VIEW e procedures, existe alguma diferença nesses casos, ou funciona da mesma forma?

    Obrigado
    T+

    sábado, 31 de março de 2007 18:14
  • Oi !

     

    Da mesma forma, o tableAdapter, no momento da criação, pergunta se você deseja usar sql, criar procedures ou usar procedures existentes.

     

    Se escolher criar procedures, você passa um select para ele e ele cria as procedure de CRUD automaticamente.

     

    []'s

     

    Dennes

    sábado, 31 de março de 2007 18:20
  • Dennes,

    Seguindo seu exemplo, quando crio o objetoDataSource ele nao reconhece o que criei no table adapter.
    E existe a referença, porem, eu nao criei, qdo fui faze-la ela ja existia, e tenho o erro dizendo que ele ja esta referenciado.
    Porem, criei o tableAdapter no WEB, e funcionou.
    1)eu fiz algo errado, qual foi a caquinha que fiz?
    2)Tem algum problema eu fazer desse modo como te disse, direto no WEB?
    3)quando compilo e click em Edit, os campos aumentam, ocupando praticamente a tela inteira, e quando dou o update eles volta ao tamanho norrmal,tem como eu controlar isso, o tamanho que fica na tanela e no update?

    Obrigado novamente
    T+

    sábado, 31 de março de 2007 19:12
  • Oi !

     

    Provavelmente pode ter faltado só um rebuild solution antes de tentar enxergar o objeto pelo objectdatasource.

     

    Depois do rebuild ele copia a dll para a pasta bin, ai vai funcionar.

     

    []'s

     

    Dennes

    sábado, 31 de março de 2007 19:26
  • Era isso meso Dennes
    logo mais retorno com mais duvidas...rs
    obrigado
    T+
    sábado, 31 de março de 2007 19:30
  • Dennes
    fazendo o seu artigo, consegui fazer a parte da atualização da porcentagem, porem, na primeira parte, onde vc monta o dataGrid, quando eu dou o edit e mando atualizar, ele nao atualiza dos dados, porem, se faco o comando Update sem a clausa WHERE ele funciona, pelo que pude entender, ele nao ta pegando o ID para fazer a atualização,  o que eu posso ter feito de errado?
    T+
    e obrigado pela paciencia
    sábado, 31 de março de 2007 20:29
  • Oi !

     

    O gridview pode estar com a propriedade datakeynames vazia. Preencha com a chave primária.

     

    []'s

     

    Dennes

    sábado, 31 de março de 2007 20:37
  • Obrigado Dennes
    consegui fazer boa parte das coisas que queria com o exemplo
    T+
    falow
    domingo, 1 de abril de 2007 17:55
  • Dennes mais uma duvida
    Criei uma store procedure no bando, adicionei ela no DataSet, porem, qdo vou acessa-la no ObjectDataSource ela nao aparece no Insert, apenas no Delete, e mesmo que eu faça na mao a referença, ela nao funciona, eu tenho um errro no "OBSPessInsert2.Insert();" que faz com que seja executada a inserção.

    O que estou fazendo de errado?

    Segue o erro na hora em que mando fazer a inserção

    ObjectDataSource 'OBSPessInsert2' could not find a non-generic method 'SPAgendaInsere' that has parameters: PessNome, PessCPF, PessCidID, PessTel1.


    OBS.: se eu colocar no DELETE ele funciona!
    obrigado
    T+
    domingo, 1 de abril de 2007 22:35
  •  

    Oi !

     

    O nome ou a quantidade de parâmetros da stored procedure pode não estar adequada, fazendo com que ele não a reconheça corretamente.

     

    Você não deveria precisar fazer isso, mas :

     

    Você pode criar um método na partial class que chame o método que dispara a procedure

    Utilize o atributo

    DataObjectMethodAttribute

    para definir que o método é do tipo insert.

     

    []'s

     

    domingo, 1 de abril de 2007 22:56
  • mais por qual motivo estaria a fazer isso?

    Veja o codigo da SP
    ALTER PROCEDURE [dbo].[SPAgendaInsere]
    @PessNome varchar(50),
    @PessCPF varchar(20),
    @PessNascDT smalldatetime,
    @PessCidID int,
    @PessTel1 varchar(15),
    @PessTel2 varchar(15),
    @PessCel varchar(15),
    @PessTelCom1 varchar(15)
    AS

    SET NOCOUNT ON

    INSERT INTO DBAgenda.dbo.TBPess
               (PessNome
               ,PessCPF
               ,PessNascDT
               ,PessCidID
               ,PessTel1
               ,PessTel2
               ,PessCel
               ,PessTelCom1)
         VALUES
               (@PessNome
               ,@PessCPF
               ,@PessNascDT
               ,@PessCidID
               ,@PessTel1
               ,@PessTel2
               ,@PessCel
               ,@PessTelCom1)


    esse metodo que vc me diz para criar, seria dentro do DataSet?

    o dsAgenda.cs do DataSet

    namespace Teste {


        partial class dsAgenda
        {
            partial class TBPessDataTable
            {

           //CRIARIA O CODIGO AQUI?
            }
        }
    }

    domingo, 1 de abril de 2007 23:21
  • Oi !

     

    O arquivo .cs tem que ser um arquivo separado, não pode ser um dos arquivos gerados por ele.

     

    O namespace precisa ser dsAgendaTableAdapters

     

    Quanto ao porque, posso dar um chute, vc testa :

     

    Em Inserts, ele faz um select em seguida para buscar os dados atualizados (vai que tinha trigger, valor default no banco, etc). Como sua procedure não faz isso e você deve ter marcado como tal, ele não marcou como método de Insert.

     

    Experimenta deixar ele auto-criar para uma tabela e compara.

     

    []'s

    segunda-feira, 2 de abril de 2007 00:08
  • Blz Dennes
    vou fazer o teste aqui sobre o .cs separado.

    E sobre a procesure, fiz isso e ele fico meio perdido, porem, eu esclui e fiz o rebuind, e criei um novo e rebuind (tive que fazer os 2, se nao ele deixa esses metodos "fantasmas") e ai funcinou blz.

    Obrigado
    T+ cara
    segunda-feira, 2 de abril de 2007 02:58