domingo, 8 de agosto de 2010

Mini-Curso C# - Parte #13 - LINQ

O que é o LINQ?

É um conjunto de recursos introduzidos no .NET Framework 3.5 que permitem a realização de consultas diretamente em base de dados , documentos XML , estrutura de dados , coleção de objetos ,etc. Usando uma sintaxe parecida com a linguagem SQL.

Existem cinco formas nas quais poderemos utilizar o LINQ.
  • LINQ to SQL
  • LINQ to XML
  • LINQ to Objects
  • LINQ to DataSet
  • LINQ to Entities

Arquitetura do LINQ


http://msdn.microsoft.com/en-us/netframework/aa904594.aspx


LINQ significa Language Integrated Query, ou seja, linguagem de consulta integrada que podemos utilizar para manipular qualquer tipo de coleção, arrays, dados, objetos e demais itens. O LINQ dispõe de todos os recursos integrados ao Visual Studio 2008 e no VS 2010, tanto nos templates quanto em nível de linguagem.

Neste artigo, estaremos tratando do LINQ to SQL

LINQ to SQL é uma implementação específica to LINQ para o SQL Server que converte consultas escritas em C# ou Visual Basic em SQL dinâmico , provendo uma interface que permite mapear os objetos do banco de dados gerando as classes para realizar as operações usando a sintaxe LINQ; também permite realizar alterações nos objetos e atualizar o banco de dados.


E por que não posso usar o LINQ com outros providers como Oracle, FireBird, DB2 etc.? A resposta é que temos Entity Framework o qual poderá trabalhar o LINQ com qualquer provider que o mercado criar, independente do banco de dados. Isto cabe aos fabricantes providenciarem.


Como eu uso LINQ no meu código ?

1- Você deve usar o Visual Studio 2008 ou 2010 (.NET Framework 3.5 ou superior)
2- Incluir a seguinte declaração no topo da sua classe: using System.Data.Linq 
3- Referenciar o LINQ no seu projeto através do template - LINQ To SQL classes

O que eu ganho usando LINQ ?

Você pode programar o código de acesso a dados diretamente no Visual Basic ou C#;
Verificação de sintaxe e de esquema em tempo de compilação;
Suporte a ferramentas para criar consultas (IntelliSense);
Você não tem que esperar até executar para saber se a consulta esta correta, verificação em tempo de compilação;

No próximo artigo, um exemplo prático de utilização de LINQ to Object e LINQ to SQL.
Até a proxima.

Take care

Mini-Curso C# - Parte #12 - ADO.NET - Exemplo 4 - DataSet

Salve, salve amigos,

Neste exemplo, vou mostrar como fazer para popular uma componente GridView com informações de um banco de dados SQL Server através de um DataSet. Agora, você pode trabalhar com as informações em memoria ou seja, desconectado do banco de dados. Este recurso, é conhecido como Dataset desconectado.














Layout do Default.aspx.


No evento click do componente Button1, digite o seguinte código.

Clique na image para uma melhor visualização do código. 


















Take care

Mini-Curso C# - Parte #11 - ADO.NET - Exemplo 3 - DataReader


Salve, salve amigos,

Neste exemplo, vou mostrar como fazer para popular uma componente GridView com informações de um banco de dados SQL Server através de um DataReader.



Layout do Default.aspx.

No evento click do cmponente Button1, digite o seguinte código.

Clique na image para uma melhor visualização do código.

Clique na image para uma melhor visualização do código.


All the best!

domingo, 1 de agosto de 2010

Um pouco sobre Aplicações WPF


Salve, salve amigos,

O WPF (Windows Presentation Foundation) foi uma das grandes novidades do lançamento das versões 3.0 e 3.5 da plataforma .NET Framework. Na versão 2008 do Visual Studio já podemos desenvolver aplicações WPF com recursos nativos, possibilitando o desenvolvimento de uma camada de apresentação de altíssima qualidade para as nossas aplicações.


Uma aplicação WPF, será composta de um conjunto de páginas ou janelas XAML (eXtensible Application Markup Language) e o código gerenciado relacionado (code-behind).

As funcionalidades que um conjunto de páginas oferece são bem limitadas. É os conhecidos problemas que temos em aplicações Web, como a preservação do estado da página entre os posts, a passagem de dados entre as páginas da mesma aplicação, o gerenciamento de variáveis de nível global, entre outros problemas que assombram os programadores Web há algum tempo.


WPF vai um pouco, além disso, com ele podemos criar o nosso conjunto de páginas em uma aplicação de uma maneira mais tradicional, como é o caso das aplicações Windows Forms.

Pensando dessa forma, uma página XAML é como se fosse um Form de um Windows Application. Sendo assim, enquanto uma aplicação Windows Forms coloca em um executável um conjunto de Forms, uma aplicação WPF coloca em um mesmo executável um conjunto de páginas/janelas XAML.


Também não podemos esquecer que é possível criar três tipos de aplicações possíveis com o uso do WPF / XAML. Temos as aplicações Standalone, que são como aplicações Windows Forms que rodam em janelas do Windows.


Temos as aplicações XBAPs (XAML Browser Applications) que rodam no browser, porém apenas dentro da plataforma Microsoft. Para as aplicações XBAPs o usuário precisa ter o .NET Framework  instalado em seu computador.


E por fim temos o Silverlight, que também são aplicações desenvolvidas com XAML, porém rodam em outras plataformas que não a da Microsoft, e em um número maior de browsers. Os usuários destas aplicações precisam apenas instalar o Silverlight em seus computadores.

Take care

Mini-Curso C# - Parte #10 - ADO.NET - Exemplo 2

Novo exemplo.

Inicie uma nova aplicação Web Site, insera os seguintes componentes (TextBox - Button - Label) e siga o layout abaixo.










No click do evento do Button1, faça.
















No click do evento do Button2, faça. 









Compile e teste a aplicação.
Take care

Mini-Curso C# - Parte #9 - ADO.NET - Exemplo 1

Olá amigos,
Neste exemplo, vou demonstrar como criar uma conexão em ADO.NET utilizando um DataReader. 
Este exemplo será desenvolvido em WebForms com Banco de Dados SQL Server 2008.
Após criar uma aplicação ASP Net WebSite, você deve configurar sua connection string da seguinte forma:
Faça a configuração no seu arquivo WebConfig conforme image abaixo.







Voce pode alterar diretamentente no arquivo webConfig conforme acima ou arrastar uma tabela do seu banco de dados atraves de uma conexao via solution explorer.  Veja a figura abaixo.  














Desta forma, sua connection String do seu arquivo Web.Config, será configurada automaticamente.
Neste exemplo, eu criei uma funcão chamada GetConexaoString(), resposanvel por  esta tarefa. Em outros exemplos, estarei realizando uma outra forma.
Dica: Mantmor-PC é minha máquina ou seja, meu servidor.  Você deve colocar o seu servidor e instancia do SQL Server.
Initial Catalog é o nome do seu Banco de Dados.
Integrated Security é a segurança integrada via Windows(logon) ou via Sql Server. No meu caso via Windows. 
No evento do Page_Load, digite conforme imagem abaixo.





















Agora, compile e veja o resultado.
Um forte abraço.
Take care

Mini-Curso C# - Parte #8 - ADO.NET

Dicas para utilizar melhor o DataReader
By - Marcoratti
 
  • O DataReader deve ser fechado antes de acessar qualquer parâmetro de saida para um Command associado.
  • Sempre feche o DataReader quando você terminou de ler os dados. Se a conexão que você esta usando é usada somente para retornar o DataReader feche a conexão imediatamente depois de fechar o DataReader.
  • Somente um DataReader pode ser aberto de cada vez.
  • Ao acessar os dados de uma coluna use os conectores tipados como GetString, GetInt32 ao invés de GetValue.
  • Se você estiver terminando de ler dados de um DataAdapter mas ainda tem uma grande quantidade de dados não lidos pendentes, use o comando Cancel no Command antes de efetuar o Close no DataReader. Se você dar um close no DataReader isto provocará o retorno dos dados pendentes antes de fechar o cursor. Ao usar o Cancel no Command você estará descartando os dados pendentes que o DataReader ainda não leu quando ele foi fechado.

Boas práticas  para acesso a dados com ADO.NET

  • Abra conexões o mais tarde possível e Feche as conexões o mais cedo possível;
  • Em operações que envolvam alterações de dados (UPDATE, INSERT, DELETE) em mais de uma tabela simultaneamente sempre utilize Transações;
  • De forma geral todas as tabelas devem possuir uma chave primária
  • Ao montar instruções SQL dê preferência a utilização de parâmetros nas strings SQL e evite a concatenação de strings. Desta forma evita-se erros e ataques de injeção SQL. A utilização de parâmetros permite que o SGBD compile o código SQL apenas uma vez;
  • Ao utilizar o operador LIKE em instruções SQL a string usada na cláusula é o símbolo % e não o *. O correto é : SELECT nome FROM tabela where nome like 'Mac%'
  • Procure construir filtros e ordenações diretamente na instrução SQL , usando as cláusulas WHERE, ORDER e GROUP e não via código;
  • Procure evitar o uso do coringa (*) em instruções SQL com SELECT procurando nomear os campos que deseja obter da base de dados e sempre usando uma condição para evitar que todos os registros sejam selecionados. Evite : SELECT * from Tabela.
   
Take care