Usuário com melhor resposta
NHipernate, ja possui suporte para sql 2005?

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
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
-
-
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
-
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 -
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
-
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+ -
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
-
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+ -
-
-
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 -
-
-
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+ -
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
-
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?
}
}
} -
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
-
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