sexta-feira, maio 23, 2008

XML e WebService

1. o que é XML?
XML (eXtensible Markup Language) é uma linguagem case sensitive de marcação (tag) utilizada para descrever dados e apresenta um conjunto extensível de comandos.

ex.:
<conjuntofamilia>
<família>
<nome>Macedo</nome>
<componentes>4</componentes>
</família>
</conjuntofamilia>

2. Definição dos tipos
Para especificar os tipos de dados temos dois objetos:

  • DTD - Data Type Definition
  • XML Schema - Sucessor do DTD


3. WebService

É um serviço disponível para Internet com o objetivo de transmitir resultados de métodos e assim permitir a intercomunicação entre sistemas através do protocolo SOAP. Os dados trafegam em formato XML independentemente da linguagem usada na aplicação cliente do WebService.

SOAP (Simple Object Access Protocol) é um protocolo que define como as mensagens serão enviadas e recebidas entre dois sistemas. Ele pode ser veiculado pela porta 80 (a mesma porta de uso do protocolo HTTP).

segunda-feira, maio 19, 2008

Objetos ADO.NET

Video-Aula: Não disponível;
Linguagem: Independe de Linguagem.


1. Introdução

Um banco de dados é uma coleção de informações. Nestes sistemas são contidas diferentes estratégias para a rápida manipulação e consistência de dados. Com esse tipo de sistema, o programador não precisa se preocupar com o modo em que os dados estão organizados internamente na base de dados.

Como exemplo de sistemas de Banco de Dados de nível coorporativo, podemos citar o Microsoft SQL Server, Oracle, Informix, MySql, HSQL e DB2.

O ADO.NET (ActiveX Data Objects)é a mais recente solução à acesso a camada de persistência da Microsoft. Através deste objeto uma linguagem de programação .NET é capaz de interagir com um banco de dados relacional. Conforme vimos, o ADO clássico sofreu muitas mudanças desde correção de vulnerabilidade até questões de agilidade.

2. NET Providers

Fig01: Modelo do ADO.NET


Providers são classes especiais que implementam a interface de acesso à dados do Banco. No Framework existem várias classes de acesso ao banco. São elas:

  • SQL Provider : Acesso à base de dados SQL Server;

  • Oracle Provider : Provê acesso à bases Oracle

  • OleDB Provider: Provê acesso à bases de dados com Driver OleDB
  • ODBC Provider: Acesso à banco de Dados com Driver ODBC

3. Namespaces

O Namespace System.Data contém todas as classes que implementam a arquitetura ADO.NET. Usualmente, o Namespace System.Data é importado para evitar a necessidade de descrevermos sua origem. Vamos estudar agora os Namespaces do System.Data.

  • System.Data.Common : Este namespace contém classes que são compartilhadas em toda arquitetura ADO.NET.

  • System.Data.OleDB : Contém objetos que permitem acessar provedores OLE-DB. Trata-se de classes flexíveis e são capazes de acessar muitas fontes de dados. O namespace foi testado pela Microsoft nos bancos SQL Server, Oracle e Access
  • .
  • System.Data.SqlClient: Este namespace herda do System.Data.Common anteriormente dito, contudo, ele é específico para o Microsoft SQL Server devido ao uso do protocolo TDS.

  • (Em Construção)

Fazendo uma aplicação acessar o Banco de Dados

Video-Aula: Não disponível;
Linguagem: C#.


Neste artigo, irei demonstrar como uma conexão com banco de dados pode ser feita.Não irei entrar em muitos detalhes sobre o .NET Provider pois em breve, teremos um artigo que será estudado a fundo todos os atributos de conexão.

1. Primeira Parte
Inicie o Visual Studio. Nós teremos dois projetos. Um do tipo Windows Application, e o outroteremos uma Class Library. O projeto Windows Application será a Interface com o usuárioenquanto o segundo será o que chamaremos de DAL (Data Access Layer), a nossa base de Persistência.



2. Sobre os objetos que iremos usar:


  • DataGridView - Trata-se de uma grid que usamos para mostrar dados ao usuário final.



3. Design Pattner


Pois bem. Vamos lá. Primeiro, criamos dois projetos que estão associados a uma Solução (Solution). O nosso projeto Windows Form irá usar os métodos de acesso ao Banco através do AccessDAL, isso torna o nosso Class Library o que chamamos de camada de Persistência. Ela irá acessar os dados do Banco e irá retornar apenas estas informações, com as quais a aplicação Windows irá organizar. Também é conhecido como MVC (Model-View-Controler).

4. No Windows Form


Em Toolbox, instancie o componente DataGridView para o Form.
(Em Construção)

5. No Class Library
Crie um código parecido com o que há abaixo:





using System;
using System.Collections.Generic;
using System.Text;
using System.Data.OleDb;
using System.Data;

namespace AccessDAL
{
public class Access
{
private OleDbConnection _conexaoAberta;

public Access()
{
}

public void AbrirConexao()
{
String endBanco = "C:\\BDados1.mdb";
String ConAccess = "provider=Microsoft.Jet.OLEDB.4.0;data source=" + endBanco;
OleDbConnection Conn = new OleDbConnection(ConAccess);
_conexaoAberta = Conn;
}

public DataTable ExibirDados()
{
String Consulta = "Select * From Alunos";
DataTable DT = new DataTable();
OleDbDataAdapter DA = new OleDbDataAdapter(Consulta, _conexaoAberta);
DataSet DSet1 = new DataSet();

DA.Fill(DSet1, "Alunos");
DT = DSet1.Tables["Alunos"];

return DT;
}

public void FecharConexao()
{

_conexaoAberta.Close();

}
}
}

(Em construção...)

sábado, maio 17, 2008

Microsoft Surface

Microsoft Surface é um produto similar ao que seria a uma superfície inteligente. Contém funções multi-touch
e interage de acordo com os movimentos.




Site Oficial: http://www.microsoft.com/surface/

Introdução ao ASP.NET

Vamos falar um pouco sobre ASP.NET e sua colaboração com a construção da Web. Um pouco da tragetória até chegarmos a solução atual da Microsoft.

1. Arquitetura Cliente/Servidor
Definimos arquitetura Cliente/Servidor como um sistema com o qual contamos com dois componentes essenciais:

  • Uma máquina do tipo Cliente - A máquina receptora

  • Uma máquina Servidora - A máquina que transmite informações para o computador de um cliente


2. O que é ASP.NET?

Trata-se de uma solução vinda do ASP (Active Server Pages). Possui alguns bons atributos do ASP clássico porém com diferenças significativas. Por exemplo, no ASP, programa-se juntamente com VBScript, sem qualquer recurso de orientação a objetos e forçados a escrever tags HTML, JavaScript e scripts do lado do servidor em um mesmo módulo, sem qualquer suporte para depuração. Com o ASP.NET, temos o código do client e do server separados, que facilita a vida de programadores e de designers.

Outra característica é que podemos escrever em qualquer linguagem disponível para o framework, ou seja, podemos escrever nossas aplicações tanto C#, tanto em Visual Basic, tanto em Cobol.Net.
Para desenvolver em ASP.NET, pode-se começar usando o simples Notepad e um compilador .NET. Contudo, há ambientes de desenvolvimento com recursos interessantes, entre outros.

sexta-feira, maio 16, 2008

Criando sua Primeira Aplicação em .NET

Video-Aula: Não disponível;
Linguagem: VB.NET.


Vamos criar uma pequena calculadora somente para fins de estudo. Faremos a mesma passo-a-passo e exploraremos um pouco mais sobre os recursos e vantagens do Windows Form.

1. Primeiros Passos





Inicie o Visual Studio. Estou usando a versão 2005, usando o framework 2.0. Neste exemplo, escreverei em VB.NET. Portanto, Vá em File -> New -> Project. No campo Name, devemos escrever o nome do nosso projeto. Colocarei RMCalculadora. Em Location, que é o endereço físico onde a aplicação estará, normalmente como padrão é a pasta Projects, e finalmente a Solution Name é o nome da solução, propriamente dita, neste Campo coloque Calculadora. Em Templates, selecione o Item Windows Application. Clique em 'Ok' para iniciar o Template.

Neste momento, o Visual Studio fará todas as referências e importará todas as classes para que seja possivel nossa programação. Teremos a seguinte janela abaixo:





Vamos para uma parte um pouco mais interessante. Vamos falar sobre alguns controles do menu ToolBox:

  • Label - Nos permite escrever textos em aplicações. O valor desses textos podem ser mudados de acordo com a programação feita. Por definição, os usuários do sistema não serão capazes de alterar seu valor.

  • Textbox - Trata-se de um verdadeiro canal de entrada de informações por parte do usuário. Por definição apenas o usuário pode preencher valores.

  • Button - Trata-se de um botão, algo que poderá gerar um evento no sistema.



Faremos nossa pequena calculadora com apenas estes três controles. Para você que conhece sobre Delphi, não terá dificuldade em realizar a próxima etapa.

2. Organizando seu Windows Form

Em cada controle, existe uma propriedade chamada Name. Essa propriedade nos permite chamar estes objetos e assim programa-los. Para acessar, selecione o objeto (por exemplo, a Textbox) e vá em Properties. Por definição, ele está localizado abaixo do Solution Explorer. Organize os objetos e modifique suas propriedades de acordo com a imagem explicativa abaixo:



3. Vamos com a Programação!
Vamos fazer a parte um pouco mais interessante neste exemplo e vamos às facilidares do framework. Clique duas vezes sobre o objeto btnCalcular, ele irá criar um método e associá-lo ao evento Click do botão. O código gerado é similar abaixo:

Private Sub txtCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtCalcular.Click
End Sub

Temos aqui algumas palavras-reservadas da linguagem.

  • Private - Garante que o método só possa ser invocado dentro da Classe que pertence

  • Sub - Refere-se a um método que não retorna valor algum.

  • End Sub - Significa o fim do método



O que precisamos entender é que este método no momento é que este método é referenciado pelo evento click apartir da palavra reservada handles. Para fins academicos, criaremos um método chamado Somar, que receberá dois valores do tipo Inteiro. Teremos o seguinte método:

Private Function Calcular(ByVal numeroUm, ByVal numeroDois) as Integer

Dim Resultado As Integer
Resultado = numeroUm + numeroDois
Return Resultado
End Function

Então, no momento temos dois métodos em nossa Classe. Neste último, temos a declaração da variável Resultado, e dos parâmetros numeroUm e numeroDois. Parâmetros são valores que passaremos para o nosso método Calcular, e como veremos posteriormente, é o que chamamos de encapsulamento na Programação Orientada a Objetos (OO).

Agora, vamos usar este método. Lembram-se do método que o Visual Studio criou automaticamente? Pois bem, veja o código do uso do método abaixo:

Private Sub txtCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtCalcular.Click


Dim intResultado As Integer
intResultado = Calcular(txtValor1.Text, txtValor2.Text)

MessageBox.Show("Valor" + intResultado.ToString(), "Resultado")
End Sub

Este método declara uma variável do tipo inteiro, e atribui o valor da nossa função Calcular a esta variável. Nós usamos o método Show do Objeto MessageBox para mostrar uma mensagem do tipo Alert do Windows, informando o resultado.

Um bom exercício para se praticar é acrescentar os métodos Subtrair/Multiplicar e Dividir.

Introdução ao .NET Framework

Video-Aula: Não disponível;
Linguagem: Independe de Linguagem.


Trata-se de um novo paradigma que provê benefícios e vantagens para quem se dedica no estudo dessa técnica. Antes de iniciarmos os estudos, vejamos como funcionava a programação antes do uso de Máquinas Virtuais.

1. Conceitos


Figura 01 : Esta é a visão geral de como funciona o .NET Framework.


Antigamente, programavamos diretamente no hardware das máquinas, com linguagens tipo Assembly. Mas havia um crucial problema: Era difícil manter a operatividade entre diversas máquinas, ou seja, programava-se para apenas um tipo de hardware.

Com o avanço da Tecnologia, surgiu a possibilidade de programar diretamente para o Sistema Operacional, ao invés de programar diretamente no hardware. Logo, todas as máquinas que rodavam determinado sistema operacional poderiam rodar os aplicativos criados. Pois era o Sistema Operacional que controlava o Hardware, não mais o programador. Algumas das linguagens que controlam o sistema operacional: Delphi, Visual Basic 6.0, C, C++ e Lazarus.

Com o passar dos tempos, ainda permanecemos com o problema de incompatibilidade entre sistemas operacionais. por exemplo: Um sistema feito para Windows, dificilmente funcionaria em uma plataforma diferente como Unix ou Linux. Daí surge o conceito de Máquina Virtual. O novo paradigma é programar em cima de uma máquina Virtual conforme pode-se observar na figura 01. Com isso, nós ganhamos Portabilidade.

2. O que é .NET FrameWork?

.NET Framework é um software gratuito tipo máquina virtual, necessário para rodar aplicações escritas em .NET. Provê a CLR (Common Language Runtime) que é uma enorme biblioteca nativa do .NET, presente em todas as linguagens.NET.

Ao contrário que muitos imaginam, .NET não é uma linguagem de programação. Trata-se de uma plataforma de desenvolvimento de última geração e em constante aprimoramento. A partir desta plataforma, temos aproximadamente 96 linguagens para programação neste framework, inclusive uma desenvolvida por brasileiros chamada Lunar. As linguagens mais conhecidas em .NET são: VB.NET (Totalmente orientada a Objetos, como veremos nos próximos artigos), C# (Linguagem nascida apartir do glorioso c++) e F#.

3. Qual a melhor linguagem?
Não existe melhor linguagem para a plataforma. Isso pode ser explicado ao analisarmos o processo de compilação.

Figura 01 : Esta é a visão geral de como funciona o .NET Framework.


Na imagem acima, vemos o primeiro estágio do nosso programa, o código-fonte. Ao iniciarmos o processo de compilação, tudo o que escrevemos passa pelo compilador, e traduzirá todo o nosso código para uma espécie de código pré-pronto da plataforma.

Todo solicitação de seu aplicativo irá acontecer graças ao segundo compilador, o JIT, levando à máquina virtual apenas o que foi pedido pelo usuário, isso em tempo de execução. Resumindo: Todo código que criamos é convertido ao que chamamos de MSIL (Microsoft Intermediate Language), portanto acabou o chororô dos VBmaniacs =)

4. Comparação entre as Linguagens
Apenas para analisarmos o quão fácil e limpa são as linguagens .Net, acompanhe abaixo a comparação entre as linguagens C# e VB.NET.