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

sábado, 31 de julho de 2010

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

O que é ADO .NET

ADO .NET é a nova tecnologia para acesso a dados da plataforma .NET estando integrada ao .NET Framework e oferecendo diversas classes que permitem realizar praticamente todas as tarefas relacionadas com o acesso e
manutenção de dados.

ADO .NET oferece suporte a uma variedade de opções para desenvolvimento
de soluções com acesso a dados que permitem a comunicação com qualquer
fonte de dados, desde os já conhecidos gerenciadores de banco de dados relacionais (SGBD) como : SQL Server, MySQL, FireBird, Oracle, Sybase, Access, XML, arquivos textos, etc.

Os componentes considerados os pilares da ADO.NET são o DataSet e os provedores .NET que são um conjunto de componentes que incluem os objetos:

Connection - responsável por efetuar a conexão com o banco de dados  

Command - responsável por executar comandos contra o banco de dados

DataAdapter - é utilizado para preecher o objeto DataSet;

O ADO.NET pode acessar dados de várias maneiras: OLE DB , ORACLE, SQL, ODBC e driver de terceiros como os do FireBirb.

Cada objeto possui uma versão para cada uma das maneiras aqui mencionadas, assim temos os objetos:

OleDbConnection, OleDbCommand, OleDbDataReader, OleDataAdapter;

SqlConnection, SqlCommand, SqlDataReader, SqlDataAdapter;

OdbcConnection, OdbcCommand,etc.


Arquitetura ADO.NET


A diferença entre DataReader e DataSet

Quando falamos de desempenho, a utilização de um DataReader leva vantagem, pois obtém o acesso aos dados assim que o objecto fica disponível, ao contrário do DataSet, é necessário aguardar para que este fique preenchido, além disso o DataReader é do tipo ForwardOnly, ou seja, dados
que são unicamente de leitura e com o acesso desde o primeiro registro até ao último. Já com o DataSet pode-se “andar” para a frente ou para trás nos dados.

Afinal DataSet ou DataReader ?

Para decidir se você deve usar um DataSet ou um DataReader em sua aplicação de acesso a dados, você deve considerar o nível de funcionalidade que vai precisar usar na sua aplicação.

Você deve usar um DataSet em sua aplicação quando:
  • você precisar trabalhar com mais de uma tabela de dados simultaneamente.
  • Você precisar de navegação entre múltiplas tabelas de resultados.
  • você precisar manipular dados de múltiplas fontes: banco de dados , arquivos XML, arquivos textos, planilhas eletrônicas, etc...
  • você precisar trocar dados entre camadas ou usar um Web Service XML.
  • você precisar reutilizar o mesmo conjunto de linhas para alcançar desempenho através de cache de dados (via ordenação, busca ou filtro de dados)
  • você precisar efetuar uma grande quantidade de processamento por linha.
  • você precisar manipular dados usando operações XML como XLST ou consultas XPath.
Você deve usar um DataReader em sua aplicação quando:
  • Você precisar trabalhar somente com uma tabela de dados por vez
  • você não precisar usar cache de dados
  • você precisar somente exibir os dados de uma tabela
  • você precisar acessar de forma rápida e de uma vez os dados de uma forma somente-leitura e somente-para-frente
  • você precisar processar uma quantidade de dados muito grande para caber na memória
Nota: O DataAdapter usa o DataReader par preencher o DataSet. Desta forma , o desempenho ganho pela utilização do DataReader é que você salva na memória os dados que o DataSet irá consumir.

Em resumo: utilize um DataReader sempre que você puder, deixando a utilização de um DataSet para os casos realmente necessários.


Take care

sábado, 24 de julho de 2010

Ferramentas de Desenvolvimento

Salve, salve amigos,

Abaixo, os nomes e link das ferramentas para desenvolvimento. Faça o download, e bons estudos.


Delphi - RAD Studio 2010 - Desenvolvimento Win32

Delphi Prism for .NET e Mono

Visual Studio 2010 - .NET e Windows Forms

Banco de Dados SQL Server 2008 Express

Banco de Dados Firebird

Take care

Delphi Prism 2011 no Visual Studio 2010



Take care