You are on page 1of 27

Manuais e recursos para desenvolvimento web www.criarweb.

com

Manual sobre a plataforma .Net

Autores do manual Este manual foi criado pelos seguintes colaboradores de Criarweb.com: Francisco Recio e David Provencio
(13 captulos)

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

Net Framework
A nova tecnologia de Microsoft oferece solues aos problemas de programao atuais, como so a administrao de cdigo ou a programao para Internet. Para aproveitar ao mximo as caractersticas de .Net necessrio entender a arquitetura bsica na que est implementada esta tecnologia e assim se beneficiar de todas as caractersticas que oferece esta nova plataforma. O Framework de .Net uma infra-estrutura sobre a que se rene todo um conjunto de linguagens e servios que simplificam enormemente o desenvolvimento de aplicaes. Mediante esta ferramenta se oferece um ambiente de execuo altamente distribudo, que permite criar aplicaes robustas e escalveis. Os principais componentes deste ambiente so: Linguagens de compilao Biblioteca de classes de .Net CLR (Common Language Runtime)

Atualmente, o Framework de .Net uma plataforma no includa nos diferentes sistemas operacionais distribudos por Microsoft, pelo qual necessria sua instalao prvia execuo de programas criados mediante .Net. O Framework se pode baixar gratuitamente atravs da web oficial de Microsoft (ver link de download nos recursos do final). .Net Framework suporta mltiplas linguagens de programao e embora cada linguagem tenha sua caractersticas prprias, possvel desenvolver qualquer tipo de aplicao com qualquer destas linguagens. Existem mais de 30 linguagens adaptadas a .Net, desde as mais conhecidas como C# (C Sharp), Visual Basic ou C++ at outras linguagens menos conhecidas como Perl ou Cobol. Common Language Runtime (CLR) O CLR o verdadeiro ncleo do Framework de .Net, j que o ambiente de execuo no qual se encarregam as aplicaes desenvolvidas nas distintas linguagens, ampliando o conjunto de servios que oferece o sistema operacional padro Win32. A ferramenta de desenvolvimento compila o cdigo fonte de qualquer uma das linguagens suportadas por .Net em um mesmo cdigo, denominado cdigo intermedirio (MSIL, Microsoft
Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 2

Manuais e recursos para desenvolvimento web www.criarweb.com

Intermediate Lenguaje). Para gerar tal cdigo o compilador se baseia no Common Language Specification (CLS) que determina as regras necessrias para criar cdigo MSIL compatvel com o CLR. Desta forma, indistintamente da ferramenta de desenvolvimento utilizada e da linguagem escolhida, o cdigo gerado sempre o mesmo, j que o MSIL a nica linguagem que entende diretamente o CLR. Este cdigo transparente ao desenvolvimento da aplicao j que o gera automaticamente o compilador. Entretanto, o cdigo gerado em MSIL no cdigo mquina e portanto, no pode se executar diretamente. Necessita-se um segundo passo no qual uma ferramenta denominada compilador JIT (Just-In-Time) gera o cdigo mquina real que se executa na plataforma que tenha o computador. Desta forma se consegue com .Net certa independncia da plataforma, j que cada plataforma pode ter seu compilador JIT e criar seu prprio cdigo mquina a partir do cdigo MSIL. A compilao JIT realiza o CLR medida que se invocam os mtodos no programa e, o cdigo executvel obtido, se armazena na memria cache do computador, sendo recompilado s quando se produz alguma mudana no cdigo fonte. Biblioteca de classes de .Net Quando se est programando uma aplicao muitas vezes se necessitam realizar aes como manipulao de arquivos, acesso a dados, conhecer o estado do sistema, implementar segurana, etc. O Framework organiza toda a funcionalidade do sistema operacional em um espao de nomes hierrquico de forma que na hora de programar resulta bastante simples encontrar o que se necessita. Para isso, o Framework possui um sistema de tipo universal, denominado Common Type System (CTS). Este sistema permite que o programador possa interagir os tipos que se incluem no prprio Framework (biblioteca de classes de .Net) com os criados por ele mesmo (classes). Desta forma se aproveitam as vantagens prprias da programao orientada a objetos, como a herana de classes pr-definidas para criar novas classes, ou o polimorfismo de classes para modificar ou ampliar funcionalidades de classes j existentes.

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

A biblioteca de classes de .Net Framework inclui, entre outros, trs componentes chave: ASP.NET para construir aplicaes e servios Web. Windows Forms para desenvolver interfaces de usurio. ADO.NET para conectar as aplicaes a bancos de dados.

A forma de organizar a biblioteca de classes de .Net dentro do cdigo atravs dos espaos de nomes (namespaces), onde cada classe est organizada em espaos de nomes segundo sua funcionalidade. Por exemplo, para manejar arquivos se utiliza o espao de nomes System.IO e se o que se quer obter informao de uma fonte de dados se utilizar o espao de nomes System.Data. A principal vantagem dos espaos de nomes de .Net que desta forma se tem toda a biblioteca de classes de .Net centralizada sob o mesmo espao de nomes (System). Ademais, atravs de qualquer linguagem se usa a mesma sintaxe de invocao, j que a todas as linguagens se aplica a mesma biblioteca de classes. Ensamblados Um dos maiores problemas das aplicaes atuais que em muitos casos tm que tratar com diferentes arquivos binrios (DLLs), elementos de registro, conectividade aberta a bancos de dados (ODBC), etc. Para solucionar o Framework de .Net maneja um novo conceito denominado ensamblado. Os ensamblados so arquivos com forma de EXE ou DLL que contm toda a funcionalidade da aplicao de forma encapsulada. Portanto a soluo ao problema pode ser to fcil como copiar todos os ensamblados no diretrio da aplicao. Com os ensamblados j no necessrio registrar os componentes da aplicao. Isto se deve a que os ensamblados armazenam dentro de si mesmos toda a informao necessria no que se denomina o manifesto do ensamblado. O manifesto percorre todos os mtodos e

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

propriedades em forma de meta-dados junto com outra informao descritiva, como permisses, dependncias, etc. Para gerenciar o uso que fazem das aplicaes dos ensamblados .Net utiliza o chamado cache global de ensamblados (GAC, Global Assembly Cache). Assim, .Net Framework pode hospedar no GAC os ensamblados que possam ser usados por vrias aplicaes e inclusive distintas verses de um mesmo ensamblado, algo que no era possvel com o anterior modelo COM. Recursos: Pgina oficial de .Net Framework http://msdn.microsoft.com/netframework/ Download de .Net Framework http://msdn.microsoft.com/netframework/howtoget/default.aspx Artigo por Francisco Recio e David Provencio

Vantagens de .Net
A seguir se resumem as vantagens mais importantes que proporciona .Net Framework: Cdigo administrado: O CLR realiza um controle automtico do cdigo para que este seja seguro, ou seja, controla os recursos do sistema para que a aplicao se execute corretamente. Interoperabilidade multilinguagem: O cdigo pode ser escrito em qualquer linguagem compatvel com .Net j que sempre se compila em cdigo intermedirio (MSIL). Compilao just-in-time: O compilador JIT includo no Framework compila o cdigo intermedirio (MSIL) gerando o cdigo mquina prprio da plataforma. Aumenta-se assim o rendimento da aplicao ao ser especfico para cada plataforma. Garbage collector: O CLR proporciona um sistema automtico de administrao de memria denominado recolhedor de lixo (garbage collector). O CLR detecta quando o programa deixa de utilizar a memria e a libera automaticamente. Desta forma o programador no tem porque liberar a memria de forma explcita embora tambm seja possvel faz-lo manualmente (mediante o mtodo disponse() liberamos o objeto para que o recolhedor de lixo o elimine da memria). Segurana de acesso ao cdigo: Pode-se especificar que uma pea de cdigo tenha permisses de leitura de arquivos, porm no de escritura. possvel aplicar distintos nveis de segurana ao cdigo, de forma que se pode executar cdigo procedente do Web sem ter que se preocupar se isto vai estragar o sistema. Desdobramento: Por meio dos ensamblados resulta muito mais fcil o desenvolvimento de aplicaes distribudas e a manuteno das mesmas. O Framework realiza esta tarefa de forma automtica melhorando o rendimento e assegurando o funcionamento correto de todas as aplicaes.

So tudo vantagens? Processos como o recolhimento de lixo de .Net ou a administrao de cdigo introduzem fatores de sobrecarga que repercutem na demanda de mais requisitos do sistema.

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

O cdigo administrado proporciona uma maior velocidade de desenvolvimento e maior segurana de que o cdigo seja bom. Em contrapartida o consumo de recursos durante a execuo muito maior, embora com os processadores atuais isto seja cada vez menos inconveniente. O nvel de administrao do cdigo depender em grande medida da linguagem que utilizemos para programar. Por exemplo, enquanto que Visual Basic .Net uma linguagem totalmente administrada, C Sharp permite a administrao de cdigo de forma manual, sendo por padro tambm uma linguagem administrada. Enquanto que C++ uma linguagem no administrada na qual se tem um controle muito maior do uso da memria que faz a aplicao. Artigo por Francisco Recio e David Provencio

Programao orientada a objetos, introduo


A programao orientada a objetos uma evoluo da programao procedural baseada em funes. A POO nos permite agrupar sees de cdigo com funcionalidades comuns. Uma das principais desvantagens da programao procedural baseada em funes a sua construo, quando uma aplicao sob este tipo de programao cresce, a modificao do cdigo se torna muito trabalhosa e difcil devido a que a mudana de uma s linha em uma funo, pode acarrear a modificao de muitas outras linhas de cdigo pertencentes a outras funes que estejam relacionadas. Com a programao orientada a objetos se pretende agrupar o cdigo encapsulando-o e tornando-o independente, de maneira que uma modificao devida ao crescimento da aplicao s afete a poucas linhas. A organizao de uma aplicao em POO se realiza mediante estruturas de cdigo, tambm chamados objetos. Estes objetos contem uma srie de procedimentos e informao destinados a resolver um grupo de tarefas com um denominador comum. Um procedimento que esteja situado em um objeto no poder ser usado por outro procedimento pertencente a outro objeto, se no for sob uma srie de regras. Os dados que mantiver o objeto, permanecero isolados do exterior e s se poder acess-los seguindo certas normas. O objetivo de POO catalogar e diferenciar o cdigo, em base a estruturas hierrquicas dependentes, ao estilo de uma rvore genealgica. Os objetos se criam a partir de uma srie de especificaes ou normas que definem como vai ser o objeto, isto o que em POO se conhece como uma classe. As classes definem a estrutura que vo ter os objetos que se criarem a partir dela, indicando que propriedades e mtodos tero os objetos. As propriedades definem os dados ou informao do objeto, permitindo modificar ou consultar seu estado, enquanto que os mtodos so as rotinas que definem o comportamento do objeto. necessrio ter muito claro qual a diferena entre um objeto e uma classe, a este respeito podemos dizer que uma classe constitui a representao abstrata de algo enquanto que um objeto constitui a representao concreta do que a classe define. Imaginemos os planos de uma casa desenhados por um arquiteto, neles encontramos o

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

esquema da casa, as medidas, os materiais, etc... Uma vez construda a casa poderemos comprovar que cumpre tudo o que os planos determinavam, desta maneira podemos comparar os planos da casa com as classes em POO, e a casa em si com um objeto criado a partir de uma classe. Deve-se destacar tambm que com os mesmos planos se podem criar muitas casas iguais, o mesmo ocorre em POO, a partir de uma classe se podem criar muitos objetos iguais. A criao de um objeto a partir de uma classe se conhece como instanciao de um objeto. Artigo por Francisco Recio e David Provencio

Tipos de dados em .NET


Todos as linguagens de programao que cumprem as normas de .NET tm muitas coisas em comum, uma delas o conjunto de tipos de dados. H que destacar que estes tipos de dados esto implementados como classes, de maneira que uma varivel declarada de um tipo determinado, ter a capacidade de usar tanto os mtodos como as propriedades que pertenam classe do tipo de dado. VB.NET
Dim Cadeia As String Dim Longitude As Integer Cadeia = "Dados" Longitude = Cadeia.Length()

C#
String Cadeia; Int Longitude; Cadeia = "Dados"; Longitude = Cadeia.Length();

No exemplo anterior declaramos uma varivel de tipo String (Cadeia de caracteres), e podemos ver como esta varivel possui uma srie de propriedades e mtodos que podem ser invocados, neste caso usamos a propriedade Length() para obter o nmero de caracteres da varivel Cadeia e atribu-lo varivel Longitude, que passaria a ter o valor 5. Na seguinte tabela se mostra uma relao dos tipos de dados de .NET Framework e sua correspondncia em VB.NET e C#.
Nome da classe Byte Sbyte Tipo de dado em VB.NET Byte Sbyte (No Tipo de dado en C# Byte sbyte Inteiro sem signo de 8 bit. Inteiro sem signo de 8bit (Tipo no conforme com o CLS) Descrio

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

nativo) Int16 Int32 Int64 Uint16 Short Integer Long UInt16 (No nativo) Uint32 (No nativo) Uint64 (No nativo) Single Double Boolean Char Decimal IntPtr (No nativo) short int long ushort Inteiro com signo de 16 bit. Inteiro com signo de 32 bit. Inteiro com signo de 64 bit. Inteiro sem signo de 16 bit. (Tipo no conforme com o CLS)

Uint32

uint

Inteiro sem signo de 32 bit. (Tipo no conforme com o CLS)

Uint64

ulong

Inteiro sem signo de 64 bit. (Tipo no conforme com o CLS)

Single Double Boolean Char Decimal IntPtr

float double bool char decimal --

Nmero com vrgula flutuante de preciso simples, de 32 bit. Nmero com vrgula flutuante de preciso dupla, de 64 bit. Valor lgico Caractere unicode de 16 bit. Valor decimal de 96 bit. Inteiro com signo cujo tamanho depende da plataforma: 32 bit em plataformas de 32 bit e 64 bit em plataformas de 64 bit. (Tipo no conforme com o CLS) Inteiro sem signo cujo tamanho depende da plataforma: 32 bit em plataformas de 32 bit e 64 bit em plataformas de 64 bit. (Tipo no conforme com o CLS) Cadeia de caracteres.

UintPtr

UintPtr (No nativo)

--

String

String

string

Segundo o modo no qual se armazenam e manipulam estes tipos de dados se podem dividir em duas categorias. Artigo por Francisco Recio e David Provencio

Tipos de dados por valor e por referncia


Tipos por valor: os tipos por valor armazenam dados aos que se pode acessar de forma direta, por sua vez dentro desta categoria encontramos mais subcategorias como os tipos
Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 8

Manuais e recursos para desenvolvimento web www.criarweb.com

nativos de .NET, os tipos de dados criados pelo programador e os enumerados. Os tipos por valor no podem ter valores nulos. Tipos por referncia: Os tipos criados por referncia armazenam o endereo de memria em que se encontra um dado determinado de maneira que usaremos esse endereo de memria para acessar de forma indireta ao dado. Os tipos por referncia se dividem em vrios subgrupos como so as classes prprias da plataforma, interfaces, classes criadas pelo programador, etc.

Quando executamos uma aplicao necessrio que os dados se situem na memria do computador, a qual est divida em duas partes, uma chamada Stack, de pequeno tamanho, porm de acesso muito rpido e outra chamada Heap que conta com um maior tamanho, mas como uma velocidade de acesso inferior. Quando criamos tipos por valor, o valor da varivel deste tipo se armazena no Stack, se atribumos uma varivel destas caractersticas a outra, se cria uma cpia no Stack. Ao destruir um tipo por valor, se destri tambm o valor que se salvou no Stack. Quando criamos um tipo por referncia, na verdade o que salvamos no Heap um endereo de memria que aponta a um valor, porm no ao valor em si mesmo. Se atribumos uma varivel que contm um tipo por referncia a outra varivel, se diz que ambas se referem ao mesmo valor. Os tipos por referncia podem conter valores nulos. Artigo por Francisco Recio e David Provencio

Criao de classes em VB.Net e C#


Para explicar a criao de classes usaremos um exemplo simples baseado em uma classe principal "bicicleta". Para criar uma classe devemos definir suas propriedades e seus mtodos, neste exemplo se usam os seguintes termos como propriedades da classe bicicleta: Modelo, Preo,

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

NumeroDeVelocidades e Velocidade; como mtodos da classe se usam: Acelerar(km) , Frear() e ConsultarVelocidade(). VB.NET
Public Class Bicicleta Public Modelo as String Public Preco as Double Public NumeroDeVelocidades as Integer Private Velocidade as Integer Public Sub Acelerar(ByVal km As Integer) Velocidade = Velocidade + km End Sub Public Sub Frear() If Velocidade > 0 Then Velocidade = Velocidade -1 End If End Sub Public Function ConsutarVelocidade() As Integer Return Velocidade End Function End Class

C#
Class Bicicleta { public string Modelo; public double Preco; public int NumeroDeVelocidades private int Velocidade public void Acelerar(int km) { Velocidade = Velocidade + km; } public void Frear() { if (Velocidade > 0) { Velocidade = Velocidade - 1; } } public int ConsultarVelocidade() { return Velocidade; } }

Nossa classe bicicleta consta de vrias propriedades e mtodos, as palavras Private e Public definem a possibilidade das propriedades, funes ou sub-rotinas. A definio de uma
Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 10

Manuais e recursos para desenvolvimento web www.criarweb.com

propriedade ou mtodo de tipo privado indica que s poder ser usada dentro do cdigo da mesma classe, se crissemos um objeto de tipo bicicleta, as especificaes da classe no nos permitiriam acessar propriedade velocidade para consult-la ou modific-la, j que est definida como privada. Em troca se podem usar as sub-rotinas Acelerar() e Frear() j que so de tipo Public, e desde dentro delas se interage com as propriedades privadas, com isto conseguimos encapsular o cdigo e tornar acessvel s aquele que quisermos. Uma vez construda a classe j se podem instanciar objetos da mesma. VB.NET
Dim objBicicleta as Bicicleta = New Bicicleta Dim VelocidadeAtual as Integer objBicileta.Modelo = "Montanha" objBicicleta.Preco = 200 objBicicleta.NumeroDeVelocidades = 21 objBicicleta.Acelerar(5) objBicicleta.Frear() VelocidadeAtual = objBicicleta.ConsultarVelocidade

C#
Bicicleta objBicicleta = new Bicicleta(); int VelocidadeAtual; objBicicleta.Modelo = "Montanha"; objBicicleta.Preco = 200; objBicicleta.NumeroDeVelocidades = 21; objBicicleta.Acelerar(5); objBicicleta.Frear(); VelocidadeAtual = objBicicleta.ConsultarVelocidade();

Aps a criao do objeto objBicicleta a partir da classe, se podem modificar os valores das propriedades de tipo Public, e chamar aos mtodos de tipo Public. No exemplo se chama aos mtodos Acelerar(5), passando-lhe o nmero de km que queremos acelerar atravs do parmetro "km" que est definido na sub-rotina. Logo, se chama ao mtodo Frear() que decresce em uma unidade o valor da propriedade Velocidade. Por ltimo se usa a funo ConsultarVelocidade(), que retorna o valor da propriedade Velocidade para introduzi-lo na varivel VelocidadeAtual.

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

11

Manuais e recursos para desenvolvimento web www.criarweb.com

Artigo por Francisco Recio e David Provencio

Aplicaes de Console
Pode-se definir uma aplicao de console como aquela que se executa em uma janela de MSDOS, ou seja, em linha de comandos. O mais comum dentro do desenvolvimento sob a plataforma .Net a criao de aplicaes Web ou aplicaes Windows, entretanto a melhor forma de sentar umas bases firmes sob a programao orientada a objetos comear construindo aplicaes simples de console. Nota: Para os exemplos descritos neste artigo usaremos o ambiente de desenvolvimento facilitado por Microsoft, Visual Studio.Net. O primeiro exemplo de aplicao de console um simples programa que pede ao usurio 2 nmeros e lhe pergunta se deseja som-los ou subtra-los. Antes de comear a desenvolver a aplicao h que conhecer a classe principal que interage com o console de MS-DOS, a classe Console. Mediante esta classe se consegue mostrar informao na tela assim como capturar a informao que introduza o usurio, cabe destacar que os mtodos da classe Console so de tipo Shared, isto significa que no necessrio criar um objeto a partir da classe para invocar a seus mtodos, possvel faz-lo indicando o nome da classe seguido de um ponto e o nome do mtodo. O mtodo WriteLine() Este mtodo o que se usa para mostrar texto no console, o mtodo escreve na tela o valor que lhe passemos como parmetro. O parmetro que recebe o mtodo pode ser de vrios tipos, j seja uma cadeia de caracteres, um nmero inteiro, uma linha em branco, etc... VB.NET

Module Module1 Sub Main() 'Escrevemos uma cadeia de caracteres. Console.WriteLine("Escrevendo uma linha no console") 'Escrevemos um nmero inteiro Console.WriteLine(23) 'Escrevemos uma comparao lgica Console.WriteLine(3 > 1) Console.ReadLine() End Sub End Module

C#

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

12

Manuais e recursos para desenvolvimento web www.criarweb.com

using System; namespace ConsoleApplication2 { class Class1 { [STAThread] static void Main(string[] args) { //Escrevemos uma cadeia de caracteres. Console.WriteLine("Escrevendo uma linha no console"); //Escrevemos um nmero inteiro Console.WriteLine(23); //Escrevemos uma comparao lgica Console.WriteLine(3 > 1); Console.ReadLine(); } } }

importante destacar que este mtodo adiciona automaticamente o enter no final da linha, isto significa que a seguinte chamada a Console.WriteLine() escreve na seguinte linha. A ltima linha na que realizamos uma chamada ao mtodo ReadLine() se utiliza para evitar que a tela se feche automaticamente.

Fig1: Exemplo do mtodo WriteLine()

O mtodo ReadLine() Este mtodo se usa para recolher a informao que o usurio introduz quando a aplicao assim o requeira. Quando invocamos ao mtodo Console.ReadLine() o sistema fica em espera at que o usurio clique a tecla Intro. Se se atribui a chamada ao Console.ReadLine() a uma varivel se consegue capturar o dado introduzido pelo usurio, para depois poder operar com ele.

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

13

Manuais e recursos para desenvolvimento web www.criarweb.com

VB.NET

'Declaramos uma varivel de tipo cadeia de caracteres Dim cadeia As String 'Mostramos uma mensagem ao usurio Console.WriteLine("Por favor, introduza seu nome:") 'Capturamos o dado introduzido pelo usurio cadeia = Console.ReadLine() 'Operamos com o dado cadeia = "O nome introduzido : " & cadeia 'Mostramos a cadeia Console.WriteLine(cadeia) Console.ReadLine()

C#

//Declaramos uma varivel de tipo cadeia de caracteres string cadeia; //Mostramos uma mensagem ao usurio Console.WriteLine("Por favor, introduza seu nome:"); //Capturamos o dado introduzido pelo usurio cadeia = Console.ReadLine(); //Operamos com o dado cadeia = "O nome introduzido : " + cadeia; //Mostramos a cadeia Console.WriteLine(cadeia); Console.ReadLine();

Fig2: WriteLine() e ReadLine()

O mtodo Read() Este outro mtodo que permite capturar informao que provm do usurio. A diferena com o anterior que Read() no espera a que o usurio clique intro para capturar o dado introduzido, e sim que o faz aps o clique de qualquer tecla, capturando o valor da tecla clicada em cdigo ASCII. Artigo por Francisco Recio e David Provencio

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

14

Manuais e recursos para desenvolvimento web www.criarweb.com

Exemplo de aplicao de console


Agora que se conhece um pouco melhor a classe Console, se dar comeo aplicao, as linguagens usadas para este exemplo so Visual Basic.Net e C#. O primeiro que se deve fazer depois de arrancar Visual Studio.Net, escolher a opo "Aplicao de console" (Fig1), aps este passo Visual Studio gera as seguintes linhas:

Fig3: Criao de uma aplicao de console.

VB.NET
Module Module1 Sub Main() End Sub End Module

C#
using System; namespace ConsoleApplication3 { class Class1 { [STAThread] static void Main(string[] args) { // // TODO: Add code to start application here // } }

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

15

Manuais e recursos para desenvolvimento web www.criarweb.com

Dentro do procedimento Main(), se introduz o cdigo que se quer executar. O primeiro que h que fazer declarar as variveis que sero usadas, para este exemplo se usam 2 variveis de tipo inteiro para recolher os valores dos nmeros que introduzir o usurio: VB.NET
Module Module1 Sub Main() Dim Numero1 As Integer Dim NUmero2 As Integer End Sub End Module

C#
using System; namespace ConsoleApplication3 { class Class1 { [STAThread] static void Main(string[] args) { int Numero1; int Numero2; } } }

Uma vez estando declaradas as variveis, se solicitam ambos nmeros ao usurio e se introduzem seus valores nas duas variveis, a seguir se pede que se selecione uma das opes possveis, somar ou diminuir. VB.NET
Module Module1 Sub Main() Dim Numero1 As Integer Dim Numero2 As Integer Console.WriteLine("Introduza o primeiro nmero") Numero1 = Console.ReadLine() Console.WriteLine("Introduza o segundo nmero") Numero2 = Console.ReadLine() Console.WriteLine("Escolha uma opo: 1 - Somar / 2 - Diminuir") If (Console.ReadLine = 1) Then Console.WriteLine("O resultado da soma : " & Numero1 + Numero2) Console.ReadLine() ElseIf (Console.ReadLine = 2) Then

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

16

Manuais e recursos para desenvolvimento web www.criarweb.com

Console.WriteLine("O resultado da subtrao : " & Numero1 - Numero2) Console.ReadLine() Else Console.WriteLine("Opo Incorreta") End If End Sub End Module

C#
using System; namespace ConsoleApplication2 { class Class1 { [STAThread] static void Main(string[] args) { int Numero1; int Numero2; int opcion; Console.WriteLine("Introduza o primeiro nmero"); Numero1 = Int32.Parse(Console.ReadLine()); Console.WriteLine("Introduza o segundo nmero"); Numero2 =Int32.Parse(Console.ReadLine()); Console.WriteLine("Escolha uma opo: 1 - Somar / 2 - Subtrair"); opcao = Int32.Parse(Console.ReadLine()); if (opcao == 1) { Console.WriteLine("O resultado da soma : " + (Numero1 + Numero2)); } else if (opcao == 2) { Console.WriteLine("O resultado da subtrao : " + (Numero1 - Numero2)); } else { Console.WriteLine("Opo Incorreta"); } Console.ReadLine(); } } }

Seguindo o fluxo da aplicao se pode ver depois que o usurio seleciona uma das 2 opes, se mostra o resultado da operao por tela. Se o que se deseja encapsular o cdigo na medida do possvel se podem construir 2 funes que realizem as operaes de somar e subtrair e que escrevem o resultado na tela, o cdigo ficaria da seguinte maneira:

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

17

Manuais e recursos para desenvolvimento web www.criarweb.com

VB.NET
Module Module1 Sub Main() Dim Numero1 As Integer Dim Numero2 As Integer Console.WriteLine("Introduza o primeiro nmero") Numero1 = Console.ReadLine() Console.WriteLine("Introduza o segundo nmero") Numero2 = Console.ReadLine() Console.WriteLine("Escolha uma opo: 1 - Somar / 2 - Subtrair") If (Console.Readline = 1) Then Somar(Numero1, Numero2) ElseIf (Console.ReadLine = 2) Then Subtrair(Numero1, Numero2) Else Console.WriteLine("Opo Incorreta") End If End Sub Sub Somar(ByVal Numero1, ByVal Numero2) Console.WriteLine("O resultado da soma : " & Numero1 + Numero2) Console.ReadLine() End Sub Sub Subtrair(ByVal Numero1, ByVal Numero2) Console.WriteLine("O resultado da subtrao : " & Numero1 - Numero2) Console.ReadLine() End Sub End Module

C#
using System; namespace ConsoleApplication2 { class Class1 { [STAThread] static void Main(string[] args) { int Numero1; int Numero2; int opcion; Console.WriteLine("Introduza o primeiro nmero"); Numero1 = Int32.Parse(Console.ReadLine()); Console.WriteLine("Introduza ol segundo nmero"); Numero2 =Int32.Parse(Console.ReadLine()); Console.WriteLine("Escolha uma opo: 1 - Somar / 2 - Subtrair"); opcao = Int32.Parse(Console.ReadLine()); if (opcao == 1) {

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

18

Manuais e recursos para desenvolvimento web www.criarweb.com

Somar(Numero1, Numero2); } else if (opcao == 2) { Subtrair(Numero1, Numero2); } else { Console.WriteLine("Opo Incorreta"); } Console.ReadLine(); } static void Sumar (int Numero1, int Numero2) { Console.WriteLine("O resultado da soma : " + (Numero1 + Numero2)); Console.ReadLine(); } static void Restar (int Numero1, int Numero2) { Console.WriteLine("O resultado da subtrao : " + (Numero1 - Numero2)); Console.ReadLine(); } } }

Desta maneira, consegue-se encapsular funcionalidades dentro da aplicao, atribuindo as tarefas de Somar e Subtrair a duas sub-rotinas, a principal vantagem que uma vez que tivermos assegurado que ambas sub-rotinas funcionam, poderemos nos esquecer delas e continuar com o desenvolvimento da aplicao. O resultado da execuo de qualquer dos 2 cdigos anteriores o seguinte:

Fig4: Resultado do exemplo.

Artigo por Francisco Recio e David Provencio

Criao de uma aplicao Windows


A criao de aplicaes Windows sempre foi uma tarefa complexa devido dificuldade de ter que criar uma interface grfica que interaja com o usurio. Os Formulrios de Windows (Windows Forms) de .Net permitem a criao de aplicaes de interface grfica de forma simples. .Net proporciona um amplo conjunto de controles como botes, caixas de texto, etiquetas, etc. que, unidos completa biblioteca de classes de .Net, torna possvel o desenvolvimento de aplicaes em pouco tempo.

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

19

Manuais e recursos para desenvolvimento web www.criarweb.com

Nos seguintes exemplos se usou Visual Studio.Net, no obstante, possvel criar aplicaes Windows com um simples editor de texto e uma ferramenta de compilao compatvel com o CLR de .Net Framework. Visual Studio.Net admite desenhar a aplicao de forma visual, permitindo em cada momento acessar ao cdigo gerado e servindo ademais como ferramenta de compilao e depurao. Para comear uma nova aplicao, se executa Visual Studio e se seleciona Novo Projeto, onde aparecem os diferentes tipos de aplicaes que se podem realizar com cada linguagem, selecionando neste caso Aplicao para Windows. Uma vez introduzido o nome da aplicao e a rota onde se localizar se clica Aceitar.

Fig 1. Janela de criao de novo projeto.

Nos seguintes exemplos se mostra como criar uma aplicao baseada em formulrios nas duas linguagens mais comuns, tanto para Visual Basic .Net como para C#, deixando ao leitor a escolha da linguagem que lhe parea mais prxima. Depois de ter criado o projeto, se dispe de uma aplicao completa que pode ser executada. Isto pode ser realizado no menu Depurar pulsando no elemento Iniciar (Tecla F5) o que executar diretamente a aplicao dentro de Visual Studio.Net. Veja o cdigo criado at agora: VB.NET
Public Class Form1 nbsp; Inherits System.Windows.Forms.Form + " Cdigo gerado pelo designer de Windows Forms " Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'escreva aqui seu cdigo.

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

20

Manuais e recursos para desenvolvimento web www.criarweb.com

End Sub End Class

Se se optou por C# pode-se comprovar que o cdigo muito parecido, embora seja algo mais extenso j que a iniciao por padro est situada fora da regio do cdigo que o designer vai gerando automaticamente. No cdigo gerado, o formulrio 'Form1' uma classe que provm mediante a palavra chave inherits (heredar) do espao de nomes System.Windows.Forms.Form pertencente biblioteca de classes de .Net. As aplicaes desenvolvidas com .Net utilizam a biblioteca de classes includa no Framework de .Net que proporcionam um conjunto de funcionalidades prfabricadas que facilitam o desenvolvimento. Esta biblioteca de classes est organizada em espaos de nomes dependendo de sua funcionalidade. Todas as linguagens includas em .Net esto orientadas a objetos, seguindo esta metodologia o formulrio 'Form1' se declara como uma classe. Como se ver mais adiante, isto facilita o acesso aos mtodos e propriedades do formulrio e dos controles que se incluam ao tratar a cada elemento como objetos independentes. Artigo por Francisco Recio e David Provencio

Insero de controles
Os controles simplificam a criao da interface facilitando ademais a interao ordenada do usurio com a aplicao e a visualizao dos resultados. Dentro da regio denominada "Cdigo gerado pelo Designer de Windows Forms", o designer cria automaticamente o cdigo correspondente a cada controle segundo vo se adicionando estes atravs da tela de designer visual. Portanto, para inserir um novo controle basta arrast-lo atravs do quadro de ferramentas ao formulrio da aplicao. Arrastando um controle de tipo boto ao nosso formulrio e analisando o cdigo gerado se observa o seguinte: VB.NET
Me.Button1 = New System.Windows.Forms.Button() ' 'Button1 ' Me.Button1.Location = New System.Drawing.Point(184, 64) Me.Button1.Name = "Button1" Me.Button1.TabIndex = 0 Me.Button1.Text = "Button1"

C#
this.button1 = new System.Windows.Forms.Button(); //

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

21

Manuais e recursos para desenvolvimento web www.criarweb.com

// button1 // this.button1.Location = new System.Drawing.Point(184, 88); this.button1.Name = "button1"; this.button1.TabIndex = 0; this.button1.Text = "button1";

Ao introduzir um controle de tipo boto se gera no cdigo um objeto chamado 'button1' pertencente classe System.Windows.Forms.Button e se estabelecem as propriedades por padro para esse objeto. Estas propriedades se podem modificar atravs da vista de desenho clicando sobre o controle 'button1' e selecionado o painel de propriedades (Tecla F4). Outra forma de mudar as propriedades de um controle modificando o cdigo gerado automaticamente pelo designer. A seguir se mostra um simples exemplo onde se modifica o literal de texto que aparece sobre o boto 'button1': VB.NET
'load da classe Form1 Button1.Text = "Clique aqui"

C#
//load da classe Form1 button1.Text="Clique aqui";

Artigo por Francisco Recio e David Provencio

Uso de eventos em .Net


Os eventos so chamados ao cdigo que se produzem quando o usurio realiza uma ao como, por exemplo, clicar um boto ou selecionar um elemento de uma lista. Os eventos respondem ao do usurio sobre um controle executando uma funo situada no cdigo. A seguir se mostra um simples exemplo no qual se introduzem uma srie de controles na vista de desenho modificando as propriedades tal como aparecem na imagem.

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

22

Manuais e recursos para desenvolvimento web www.criarweb.com

Ao clicar duas vezes sobre o boto 'btnBoton' se cria automaticamente no cdigo do formulrio o evento que se corresponde com o clique do boto. A funo criada se denomina por padro 'btnBoton_Click' e responde ao evento btnBoton.Click que se indica por meio da palavra-chave handles (manejador). Seguidamente se mostra o cdigo no evento que interage com o resto de controles: VB.NET
Private Sub btnBoton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBoton.Click lblResultado.Text = "Ola " & txtNome.Text End Sub

C#
private void btnBoton_Click(object sender, System.EventArgs e) { lblResultado.Text = "Ola " + txtNome.Text; }

Cada controle tem sua prpria coleo de eventos. Para criar um novo evento se utiliza o menu select de classes e seu correspondente menu de mtodos situados na parte superior do cdigo.

Artigo por Francisco Recio e David Provencio

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

23

Manuais e recursos para desenvolvimento web www.criarweb.com

Interao entre objetos e controles


A programao orientada a objetos proporciona um melhor ordenamento e clareza do cdigo. A forma de programar consiste em dividir o cdigo em classes de objetos que posteriormente podem ser reutilizados. Para mais informao se recomenda ler o artigo de 'Programao orientada a objetos, introduo' includo nesta seo. Ao iniciar a aplicao, o ponto de incio do cdigo se situa por padro no evento 'Load' da classe 'Form1', se bem que se pode mudar dentro das propriedades do projeto atravs do explorador de solues. O evento 'Load' uma sub-rotina que no devolve nenhum valor. Nela se podem instanciar objetos de outras classes para ser utilizados posteriormente. O seguinte exemplo mostra como criar uma classe prpria e a instanciao de um objeto de tal classe: VB.NET
Public Class MinhaClasseSomar Public resultado As Integer Public Function somar(ByVal NumSoma1 As Integer, ByVal NumSoma2 As Integer) As Integer Return NumSoma1 + NumSoma2 End Function End Class

C#
public class MinhaClasseSomar { public int resultado; public int somar(int NumSoma1, int NumSoma2) { return NumSoma1 + NumSoma2; } }

No evento load de Form1 se cria um objeto da classe e se chama ao mtodo somar. VB.NET
'load da classe Form1 Me.Text = " Minha primeira Aplicao com Windows Forms" Dim objetoSoma As New MinhaClasseSomar() objetoSoma.resultado = objetoSoma.somar (10, 5) 'resultado = 15 lblResultado.Text = objetoSoma.resultado

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

24

Manuais e recursos para desenvolvimento web www.criarweb.com

C#
//load da classe Form1 this.Text = " Minha primeira Aplicao com Windows Forms"; MinhaClasseSomar objetoSoma = new WindowsApplication2.MinhaClasseSomar(); objetoSoma.resultado = objetoSoma.somar(10,5); //resultado = 15 lblResultado.Text = objetoSoma.resultado.ToString();

Pode-se observar como em C# necessrio converter previamente o resultado. Isto se deve a que o resultado da soma de tipo numrico e no se pode atribuir diretamente ao texto da etiqueta, por isso que se deve converter previamente a tipo texto. Isto no necessrio em Visual Basic .Net, onde a converso de tipos no obrigatria, embora seja recomendvel para obter um cdigo melhor. Com a programao orientada a objetos resulta mais fcil programar aplicaes j que o cdigo est melhor estruturado e se torna mais simples de ler e modificar. Ademais, Visual Studio .Net facilita em grande medida a criao de aplicaes com interface grfica ao gerar automaticamente o cdigo encarregado de visualizar formulrios e controles. Recursos: 101 Visual Basic and C# Code Samples http://www.microsoft.com/downloads/details.aspx?FamilyID=08e3d5f8-033d-420b-a3b13074505c03f3&DisplayLang=en Artigo por Francisco Recio e David Provencio

Configurao de uma aplicao de ASP.NET


Existem diversos elementos de configurao e administrao em uma aplicao Web de ASP.Net. Este tipo de aplicao se compe de um conjunto de arquivos armazenados em uma pasta dentro do servidor Web. Para executar uma aplicao Web de ASP.Net se necessita que o servidor Web seja compatvel com ASP.Net. Neste caso se utilizar IIS 5.0 (Internet Information Server) como servidor Web. O IIS um componente de Windows includo nas verses profissionais de Windows 2000 e XP. Se no se tem este componente, se deve proceder a sua instalao mediante o cone de 'Adicionar ou remover programas' no painel de controle e selecionando 'Adicionar ou remover componentes de Windows' onde aparecer o IIS para sua instalao. O acesso ao IIS se realiza mediante o cone de 'Servios de Internet Information Server' situado nas 'Ferramentas administrativas' dentro do painel de controle. O servidor Web IIS permite administrar as aplicaes Web e se comunicar com os navegadores cliente mediante protocolo http (protocolo de transferncia de hipertexto). O IIS tambm oferece outros servios de protocolo, como transferncia de arquivos (FTP), servio de correio eletrnico (SMTP) e servio de notcias (NNTP).

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

25

Manuais e recursos para desenvolvimento web www.criarweb.com

Com o clssico ASP 3.0 era suficiente com ter o IIS instalado no servidor Web, j que era o IIS o que diretamente interpretava o cdigo ASP e enviava a resposta ao cliente. Entretanto, em ASP.Net se necessita que o servidor Web tenha instalado .Net Framework para poder processar cdigo de ASP.Net, como ocorre com qualquer outra aplicao de .Net. importante dizer que os navegadores cliente que acessam aplicao Web no necessitam ter instalado IIS nem tampouco .Net Framework j que o servidor Web o que tem que saber interpretar o cdigo de ASP.Net. Quando se solicita uma pgina de tipo .aspx (pgina de ASP.Net) o servidor Web de IIS envia a solicitude a .Net Framework que quem realmente processa a petio da pgina. Desta forma, as aplicaes Web de ASP.Net se beneficiam de todas a vantagens de execuo de cdigo em .Net Framework, j que o cdigo compilado e executado por .Net Framework e devolvido ao IIS para que este por sua o envie ao cliente. Com ASP.Net tambm possvel ter cdigo de ASP 3.0 dentro de pginas de ASP.Net, com a vantagem de que o cdigo de ASP 3.0 tambm se compila junto com o cdigo de ASP.Net aumentando o rendimento do servidor Web. A seguir, se mostra um exemplo dos distintos arquivos que podem existir em uma aplicao Web de ASP.Net.

Fig. Aplicao Web de ASP.Net

Uma vez criada a aplicao, o cdigo de servidor se acopla em um arquivo .dll situado na pasta Bin da aplicao Web. Portanto, uma vez realizada a compilao, os arquivos de cdigo (.vb ou .cs) j no so necessrios para a execuo da aplicao j que esto acoplados na dll e aconselhvel tir-los do servidor para que no se possa acessar desde o exterior ao seu contedo. Resumindo, para que funcione uma aplicao Web de ASP.Net se deve ter no Servidor Web o seguinte: Ter instalado IIS 5.0 ou superior no servidor Web e configurar um diretrio virtual associado aplicao Web. Ter instalado no servidor Web .Net Framework. Os arquivos .aspx correspondentes s pginas Web. Um arquivo acoplado (DLL) situado na pasta Bin da aplicao Web, que contm o cdigo de servidor que necessitam as pginas aspx. Um arquivo chamado Global.asax que serve para o controle geral da aplicao durante sua execuo. Um arquivo chamado Web.config onde se estabelece a configurao da aplicao. Apesar deste arquivo ser opcional, se necessita quando se quer estabelecer parmetros de configurao que no sejam os por padro. De maneira adicional tambm pode aparecer na pasta Web outro tipo de arquivos como: Arquivos .ascx (controles personalizados de usurio de ASP.Net) Arquivos .asmx (servios Web XML de ASP.Net).

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

26

Manuais e recursos para desenvolvimento web www.criarweb.com

Pginas .htm ou .html (pginas Web estticas) Pginas .asp (pginas ativas de servidor) Arquivos .css (folhas de estilo CSS, Cascade Style Sheet). Documentos, imagnes, etc... Para terminar, se criar uma aplicao Web do tipo ASP.Net e se instalar em um servidor Web com IIS. O primeiro passo criar a aplicao Web, para isso se entra em Visual Studio .Net e no menu 'Arquivo' se seleciona 'Novo projeto'. Aqui se deve escolher uma das linguagens disponveis e selecionar 'Aplicao Web ASP.Net'.

Fig. Criao de uma aplicao Web de ASP.Net

De forma automtica, ao criar um novo projeto Web, Visual Studio .Net cria um diretrio virtual no IIS e o associa com a aplicao Web. Se se instalou IIS com a configurao por padro, o web site pr-determinado (localhost) ser 'c:inetpubwwwroot'. No caso de que se tenha uma aplicao Web de ASP.Net j criada e se deseje instalar em um servidor Web, se deve copiar a pasta com a aplicao no servidor Web e associ-la manualmente a um diretrio virtual. Para isso, dentro de IIS se seleciona o elemento de 'Web site pr-determinado' e clicando com o boto direito se seleciona a opo: 'Novo' > 'Diretrio virtual' onde mediante um assistente se associa a pasta da aplicao Web a um diretrio virtual no servidor.

Fig. Criao de um diretrio virtual em IIS

Para provar que a aplicao Web funciona corretamente se deve compilar primeiro em Visual Studio .Net e posteriormente acessar aplicao mediante o navegador: http://[Nome_do_servidor]/[diretorio_virtual]/[pgina] Por exemplo, http://localhost/MinhaWeb/webform1.aspx Artigo por Francisco Recio e David Provencio

Manual sobre a plataforma .Net: http://www.criarweb.com/plataforma-net/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

27

You might also like