curso asp .net basico

Upload: leandro-amarilha

Post on 10-Jul-2015

1.171 views

Category:

Documents


3 download

TRANSCRIPT

ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual;

Este documento de distribuio gratuita para uso pessoal. vedada qualquer outra forma de utilizao, divulgao, publicao, distribuio etc. sem autorizao do autor.

Sobre o Autor Fernando Amaral trabalha a mais de 10 anos com o desenvolvimento de software. certificado Microsoft MCP, MCAD, MCSD, MCDBA e MCT, Comptia CDIA+, Project Managment Institute PMP. Ps Graduado em Gesto de Sistemas de Informao pela Uniderp e em Melhoria de Processo de Software pela UFLA. Alm disso tudo Ateu. Atualmente reside em Campo Grande MS.

Sobre www.fernandoamaral.com.br Eu mantenho um site com alguns artigos e tutoriais de tecnologia no endereo www.fernandoamaral.com.br. Atravs do site existe um formulrio onde posso ser contatado.

Sobre ASP.NET 3.5 em VB.NET e C# Existe muito contedo para quem quer aprender ASP.NET. Existem centenas de bons livros. Porm este curso em formato digital traz algumas caractersticas que talvez voc no encontre em nenhum lugar:

completo no sentido que abrange todos os principais temas relacionados ao ASP.NET 3.5; Segue uma seqncia lgica. Voc no precisar ficar garimpando informaes em lugares diferentes; em portugus.

Porque no um Livro? Este curso foi criado dentro de minhas possibilidades, de maneira que no precisei assumir nenhum compromisso.

ASP.NET 3.5 em VB.NET e C# 1. Introduo ao ASP.NET.................................................... 7 2. Visual Studio 2008: O ambiente e as linguagens............. 13 3. Web Forms....................................................................... 31 4. Controle............................................................................ 33 5. Master Page...................................................................... 44 6. Themes e Skins................................................................. 53 7. Navigation........................................................................ 59 8. WebParts.......................................................................... 71 10 LINQ .............................................................................. 116 11. MemberShip e Roles ..................................................... 119 12 .Manuteno de Estado................................................... 153 13 . ASP.NET AJAX ........................................................... 167 14. Criando e Consumindo WebServices ............................ 179 15. Criando uma pgina de erros personalizada................... 188 16. Eventos da aplicao...................................................... 191 17. Distribuindo sua Aplicao ........................................... 193 18. Relatrios com Crystal Report ...................................... 202

1. Introduo ao ASP.NETDesenvolver aplicaes nunca foi to fcil. Ambientes RAD cada vez mais modernos e amigveis tem tornado o trabalho dos arquitetos de software cada vez mais simples. Com o verso 3.5 do ASP.NET, conseguiu-se atingir nveis de produtividade nunca antes imaginados.

Este curso tem por objetivo introduzir o desenvolvedor no mundo do desenvolvimento de aplicaes Web utilizando o ASP.NET 3.5. No um curso introdutrio de lgica de programao.

Os exemplos ao longo do curso sero todos demonstrados em VB.NET e C#.

Blocos de cdigo sero precedidos pelo cone da linguagem utilizada: para cdigo em VB para cdigo em C# O que o Microsoft .NET FrameWork? Tradicionalmente o desenvolvedor escreve Software para um sistema Operacional ou dispositivo especifico. Por exemplo, ao criar um programa no Delphi 7 ou no Visual Basic 6, ele esta criado um Software para rodar em Sistemas Operacionais Windows sobre a plataforma Intel.

Ao desenvolver um software para o .NET, o desenvolvedor ao invs disto esta fazendo um software para rodar em qualquer dispositivo ou plataforma que tenha o .NET Framework instalado.

Existem dezenas de linguagem que podem ser usadas para criar um programa .NET, a Microsoft desenvolveu o VB.NET, uma verso Orientada a Objetos do clssico VB e o C#, que herdou sua sintaxe do C++. Outras empresas desenvolveram outras: COBOL, Delphi, Fortran etc. s para citar algumas. Voc mesmo pode criar sua prpria linguagem. A escolha entre uma linguagem ou outra apenas uma questo de sintaxe.

6ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual. www.fernandoamaral.com.br

Isto possvel porque um programa escrito para .NET compilado em uma linguagem intermediaria chamada MSIL (Microsoft Intermediate Language). No importa qual linguagem em que voc codificou, o resultado, em termos de performance, qualidade, tamanho dos binrios etc. ser o mesmo. O arquivo compilado em MSIL normalmente resulta um uma DLL, denominada assembly.

Quando o programa for executado pela primeira vez, entre em cena o JIT (Just In Time Compiler), que vai fazer uma nova compilao do programa, desta vez de acordo com as especificaes do sistema operacional e do dispositivo em que o .NET Framework se encontra.

Desenvolver um sistema para o plataforma .NET, traz mais alugmas vantagens alm de das ficaram bvias nesta introduo. A mais importante que o seu programa vai rodar em um ambiente protegido e especifico, sem ter que se preocupar com as especificaes ou problemas do sistema operacinal. Toda a interao com este, como por exemplo, o gerencimento de memria, feita pelo .NET. ASP.NET 1.X Nos ultimos anos surgiram fantsticas IDEs para desenvolvimento de aplicaes Windows. Algumas permitiam que voc abrisse uma tabela qualquer, permitindo ainda a sua edio, sem sequer escrever uma linha de cdigo. Outras atravs de assistentes automatizavam tarefas poupando tempo e muitas dores de cabea. Surgiram ainda diversas ferramentas que prometiam a criao de aplicativos inteiros sem a necessidade de escrever uma linha de cdigo qualquer.

Porem no podemos dizer o mesmo para as aplicaes Web. Alm algumas frustadas tentativas, no existiu nenhum ambiente de alta produtividade como existiam para aplicaes convencionais. As linguagens, principalmente o ASP classico, semelhante ao Visual Basic, era limitada sem os recusos de linguagens OO.

Ao planejar o .NET, a Microsoft vislumbrou um ambiente para aplicaes Web onde se pudesse desenvolver aplicaes no mesmo ambiente e com as mesmas facilidades de aplicaes convencionais, utilizando a mesma linguagem. 7ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual. www.fernandoamaral.com.br

O ASP.NET foi o primeiro ambiente que permitiu que se desenvolvessem aplicaes convencionais ou para Web em uma mesma IDE, utilizando a mesma linguagem. Promessa cumprida: O .NET 1.x junto com o Visual Studio 2002 / 2003 proporcionou um ambiente para aplicaes WEB, totalmente integrado, com as facilidades s antes vistas em ambientes de aplicaes convencionais: WYSIWYG, Drag and Drop,

Intellisense, recursos de depurao avanados etc. J era possivel exibir uma tabela numa aplicao WEB com duas linhas de cdigo, e sem escrever uma Tag HTML sequer! Normalmente voc no precisa ser um profundo conhecedor de HTML para desenvover uma aplicao Web no VS 2005. Porm um conhecimento bsico recomandado: sempre h necessidade de algum ajuste manual. ASP.NET 2.0 No h duvidas que a plataforma .NET 1.x e o ASP.NET 1.x mudaram a maneira como as aplies Web so desenvolvidas. Porm a equipe de desenvolvimento da plataforma percebeu que muito ainda poderia ser feito, principalmente no que diz respeito a produtividade, e esse foi o objetivo principal da equipe de durante seu

desenvolvimento. Como resultado, houve uma melhora de produtividade em at 70% ! Vejamos algumas das melhorias do ASP.NET 2.0 em relao ao seu antecessor: Mais de 50 novos Server Controls Novas ferramentas adiminstrativas Nova IDE do Visual Studio 2005 Site Navigation: Controles que facilitam a navegao em Web Sites Master Pages: Agora possvel utilizar herana visual em aplicaes Web, o que na verso 1.x s era possivel com aplicaes Windows Forms. Themes: Tornam mais facil o gerenciamento do visual de sua aplicao Acesso a Dados: O ADO.NET embora extramente eficiente, era

demasiadamente complexo. O Acesso a dados foi reformulado e simplificado. Snippets: Partes de cdigos especificas que podem ser armazenadas para utilizao futura.

8ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual. www.fernandoamaral.com.br

ASP.NET 3.5 As mudanas do ASP.NET 2.0 e 3.5 foram poucas, porm significativas. Na verdade o core engine das duas verses continua o mesmo. Para projetos em ASP.NET 3.5 o ASP.NET AJAX Extensions passou a estar integrado a IDE do Visual Studio, no mais necessrio baixar e instalar separadamente. encontrado no assemblie System.Web.Extensions.dll.

Outra grande novidade, j h bastante esperada o LINQ. A Gap que existe entre dados relacionais e objetos j no um assunto novo, j recebendo inclusive artigos meus. J postei tambm alguns artigos tcnicos sobre LLBLGen e NHibernate. Agora o .NET avana nesse sentido com o LINQ. O LINQ no nenhuma novidade, porm agora integrado ao Visual Studio. A idia do LINQ tambm no nova, com esta tecnologia voc pode operar o banco de dados em uma linguagem nativa, como se tivesse gerando cdigo VB.NET ou C#. encontrado nos assemblies System.Core.dll,

System.Data.Linq.dll, System.Xml.Linq.dll e System.Data.DataSetExtensions.dll.

Tambm h controles novos. Alm dos controles Ajax Extensions que na verso anterior deviam ser instalados separadamente, existem mais trs novos controles: ListView, DataPager e LinqDataSource. O Listview um controle de exibio de dados tabulares, semelhante ao Datagrid e GridView, porm com novas funcionalidades e maior controle sobre o resultado produzido. DataPager um controle que prove paginao de dados ao Listview. LinqDataSource mais um controle de acesso a dados, como ObjectDataSource e o SQLDataSource, porm utilizando o modelo LINQ descrito em sesso anterior. Estrutura de uma aplicao ASP.NET 2.0 e 3.5 Nesta sesso apresento algumas consideraes sobre o estrutura de aplicaes ASP.NET 2.0 e 3.5, que como dito em seo anterior, permaneceram inalterados.

Voc j percebeu que muita coisa mudou entre o ASP.NET 1.x e seu predecessor. Uma das grandes propagandas no lanamento da primeira verso do ASP.NET era o modelo code-behind, onde apresentao e cdigo de servidor ficam armazenados em arquivos 9ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual. www.fernandoamaral.com.br

fisicamente separados, tornando o cdigo mais limpo e intuitivo tanto para o designer quanto para o programador. Trabalhar com tudo em um nico arquivo at era possvel, porm desvantajoso.

No ASP.NET 3.5, embora o padro seja um arquivo nico, pode-se facilmente optar em trabalhar com arquivos separados, basta desmarcar a opo place code in separated file na caixa de dialogo de criao de um novo Web Form:

Este novo modelo denominado code-inline. Se voc optar por trabalhar com este modelo, seu cdigo de servidor vai estar separado entre tags Script. O grande problema na verso 1.x era que trabalhando com um nico arquivo perdamos alguns recursos poderosos de programao, como o Intellisense. Na verso 2.0 e 3.5 no h qualquer problema: tudo que funciona no modelo code-behind funciona tambm no code-inline. Post-Back entre pginas At o.NET 1.x um controle s poderia causar um post back para a prpria pgina. Agora esta limitao acabou, atravs da propriedade PostBackUrl, presente no boto de comando e similares, que permite que seja executa um postback para outra pagina Asp. Este novo recurso conhecido como Cross-Page Posting. 10ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual. www.fernandoamaral.com.br

Agora possvel inclusive ler valores de controles ou propriedades de pginas que deram origem ao postback. Esta fantstica inovao surgida no ASP.NET 2.0 permite tornar o cdigo mais limpo, mas otimizado, alm de reduzir a necessidade de utilizao de variveis de sesso, querystring e outros. Pastas A partir da verso 2.0 o ASP.NET uma aplicao Web deixou de ser orientada a projeto e passou a ser orientada a arquivos. Em conseqncia foram definidas uma srie de pastas com funes especificas, vamos ver as principais: App_Code: Para armazenamento de classes App_data: Armazena fontes de dados App_Themes: Armazena um tema. Estudaremos temas mais adiante. App_LocalResources: Armazena arquivos de recursos Arquivos Nesta sesso vamos ver os principais tipos de arquivos que uma aplicao ASP.NET pode conter:

Web.config: um arquivo contendo as configuraes da aplicao, formatado com XML. .aspx: arquivo contendo a apresentao de uma pgina. .vb ou .cs: arquivo com cdigo de servidor relacionado a uma pgina Global.aspx: Arquivo contendo os eventos globais da aplicao. .master: Arquivo contendo uma MasterPage. .ascx: Arquivo contendo um WebUserControl .css: Arquivo css .resx: Arquivo de recursos .sitemap: Arquivo contendo um mapa do site .skin: Arquivo contendo um skin

11ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual. www.fernandoamaral.com.br

2. Visual Studio 2008: O ambiente e as linguagensNesta seo vamos ver os principais compontentes da IDE do VS 2008.

A esquerda, por padro oculta, existe a Barra de Ferramentas, onde ficam agrupados por categoria os compontes padro do VS ou de terceiros instalados no ambiente. Para instalar um novo componente, basta clicar com o boto direito sobre a barra e selecionar Choose Itens. Voc pode tambm personalizar a sua barra de ferramentas da maneira que achar melhor.

A direita temos o Solution Explorer, que permite uma navegao rpida entre os arquivos de um projeto ou soluo.

Abaixo, a janela de propriedades, permite configurar as propriedades de um controle ou de um formulrio, bem como acessar eventos.

Entre as principais novidades do ambiente temos as notificaes de status da linha atravs de cores: Uma nova linha de cdigo ou cdigo alterado marcado como amarelo. Se a linha j foi salva sua cor muda para verde.

12ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual. www.fernandoamaral.com.br

Outra novidade so os Snippets: pedaos de cdigo pr fabricados para executar uma tarefa especifica. Tudo bem que isso no uma grande novidade e j foi utilizada em outras IDEs por a a fora, mas com certeza o recurso esta melhor do que nunca e poder lhe ajudar a poupar bastante trabalho. Para inserir um Snippet basta chama-lo no menu rpido sobre a rea de cdigo. Obviamente que voc tambm poder criar seus proprios snippets. SINTAXE: VISUAL BASIC .NET e C# Vamos introduzir os principais aspectos d a sintaxe de programao do VB.NET e do C#. Este no ser um estudo completo ou abrangente, para tal procure bibliografia especfica. Lembre-se sempre que o C# diferencia entre caracteres maisculos e minusculos, o VB.NET no. Voc j deve ter encontrado discusses ardentes na internet sobre C# ser melhor que VB.NET e vice-versa. A verdade que conhecendo os fundamentos da plataforma sabemos que o resultado exatamente igual. Comentrios No C# comentrio de linha so feitos com duas barras. Comentrios em bloco so aberto com \* e fechados com *\.

No VB.NET Comentrios so inseridos com aspas simples no inicio da linha. O VB.NET no permite o comentrio de blocos de cdigo, a soluo comentar linha a linha. Porm o Visual Studio possui em sua barra de ferramentas padro o comando Comment out the selected lines que comenta um bloco de cdigo selecionado e Uncomment the selected lines que remove os comentrios, a utilizao simples e intuitiva, e funcina em ambas as linguagenseste um comentrio vlido Dim i as Integer esta tambm um comentrio vlido

//este um comentrio vlido int x = 3; /* este tambm um comentrio vlido */

13ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual. www.fernandoamaral.com.br

Voc ainda pode criar comentrios no VB.NET utilizando Rem. No Visual Studio 2008 tambm possvel documentas seu cdigo sem a necessidade de instalar qualquer plug-in, basta adcionar trs aspas (vb.net) ou tres barras (C#) antes do procedimento. O VS automaticamente preenche o esqueleto do documento. Observe o exemplo abaixo:

''' ''' Funo para somar dois nmeros ''' ''' Primeiro nmero a somar ''' Segundo nmero a somar ''' Resultado da soma ''' By Fulano Public Function Somar(ByVal x As Integer, ByVal y As Integer) _ As Integer Dim z As Integer z = x + y Return z End Function

/// /// /// /// /// /// int {

Funo para somar dois nmeros Primeiro nmero a somar Segundo nmero a somar Resultado da soma Somar(int x, int y) int z; z = x + y; return z;

}

O VS ainda pode gerar um diagrama de sua classe, basta clicar com o boto direito sobre o arquivo, e selecionar View Class Diagram Tipos de Dados Sendo o .NET um framework, no existem tipos de dados desta ou daquela linguagem. Os tipos so todos do .NET. Obviamente que existem diferenas de sintaxe na declarao e manipulao destas variaveis. Abaixo segue uma relao dos principais tipos de dados, para uma relao completa consulte a documentao do VS 2008:

14ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual. www.fernandoamaral.com.br

Boolean Verdadeiro ou falso Char - caractere unicode de 16 bit String - String Byte inteiro de 8 bit, sem sinal UInt16 - inteiro de 16 bit, sem sinal UInt32 - inteiro de 32 bit, sem sinal UInt64 - inteiro de 64 bit, sem sinal Int16 inteiro de 16 bit, com sinal Int32 - inteiro de 32 bit, com sinal Int64 - inteiro de 64 bit, com sinal SByte - - inteiro de 8 bit, com sinal DateTime data e hora

Decimal nmero decimal Double nmero de ponto flutuante com 64 bit

Single - nmero de ponto flutuante com 32 bit

Um valor nulo em VB.NET representado por NOTHING, em C# por null.

O tipo Int32 pode ser representado no VB.NET por Integer e int no C#.

Operadores VB.NET And Or XOr Not Is Nothing & \ \= Mod = C# & | ^ ! == null != + / /= % ==

15ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual. www.fernandoamaral.com.br

Variaveis e Constantes No VB.NET para declarar uma varivel usamos a palavra DIM, seguido pelo nome da varivel e tipo:

Dim i as Integer

A sintaxe do C# semelhante ao do C++:

int z;

Podemos ainda declara diversas variaveis de um mesmo tipo numa unica declarao:

Dim i,j,k as Integer

int x, y, z;

Ou ainda variaveis de diferentes tipos:

Dim i,m as Integer, j,k as Single

int i, m; Double j,k;

Obviamente i e m sero do tipo inteiro, e j e K do tipo single.

possvel ainda incializar a varivel na sua declarao:

Dim i as Integer = 1

int z = 1;

Para declarar uma constante utilizamos a declarao Const:

Const x as integer = 1

16ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual. www.fernandoamaral.com.br

const int x = 1;

Enumeradores Para declarar um enumerador usamos a declarao Enum

Public Enum Semana Domingo Segunda Tera Quarta Quinta Sexta Sabado End Enum

enum Semana { Domingo, Segunda, Tera, Quarta, Quinta, Sexta, Sabado };

Voc opcionalmente pode inicializar cada menbro, se voc no o fizer, o primeiro menbro ser inicializado com zero e assim sucessimvamente.

Enum Semana Domingo = 1 Segunda = 2 Tera = 3 Quarta = 4 Quinta = 5 Sexta = 6 Sabado = 7 End Enum

enum Semana { Domingo = 1, Segunda =2, Tera =3, Quarta =4, Quinta =5, Sexta =6, Sabado =7 };

Colees Poderamos dedicar um longo captulo ao estudo de coleo, sendo nosso objetivo fazer uma introduo a parte de sintaxe, veremos apenas arrays:

Dim MeuArray(1) As String MeuArray(0) = "Um" MeuArray(1) = "Dois"

17ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual. www.fernandoamaral.com.br

string[] MeuArray = new string[1]; arr[0] = "Um"; arr[1] = "Dois";

Ao contrrio do legado VB, um array possui sempre ndice iniciado em zero, portanto um array declarado com (1), ter duas posies. Estruturas de deciso O classico if no poderia faltar. A sintaxe semelhante as suas linguagens legadas:

Dim Nome As String = "ASP.NET" If Nome = "VB.NET" Then MessageBox.Show("Certo!") Else MessageBox.Show("Errado!") End If

string Nome = "ASP.NET"; if (Nome == "C#") { MessageBox.Show("Certo!"); } else { MessageBox.Show("Errado!"); }

Obviamente que a intruo else opcional.

Outra forma de controle de fluxo conhecido o Select (VB.NET) ou Switch (C#):

Dim Nome As String = "VB.NET" Select Case Nome Case "VB.NET" MessageBox.Show("Certo!") Case "C#" MessageBox.Show("Errado!") Case Else MessageBox.Show("?") End Select

string Nome = "C#";

18ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual. www.fernandoamaral.com.br

switch (Nome){ case "VB.NET": MessageBox.Show("Certo!"); break; case "C#": MessageBox.Show("Errado!"); break; default: MessageBox.Show("?"); break; }

Note que no C# devemos usar a palavra break para quebrar o fluxo Laos Vamos estudar trs estruturas de laos: For, while e laos em colees. O lao for tem a sintaxe semelhante em qualquer linguagem:Dim i As Integer For i = 1 To 10 MessageBox.Show(CStr(i)) Next i

for (int i = 0; i < 10; i++) MessageBox.Show(Convert.ToString(i));

A sintaxe do C# nos permite facilmente fazer um loop regressivo, basta alterarmos o ltimo argumento de i++ para i--, e obviamente mudarmos a condio:

for (int i = 0; i < 10; i++) MessageBox.Show(Convert.ToString(i));

No VB.NET podemos conseguir o mesmo efeito utilizando a palavra chave Step:

Dim i As Integer = 0 For i = 10 To 1 Step -1 MessageBox.Show(CStr(i)) Next i

Existem laos While com teste de condio no inicio da sentena ou no final, neste ltimo o lao executa sempre uma primeira vez, independente do resultado da avaliao. Vamos ver exemplos do primeiro caso:

19ASP.NET 3.5 em VB.NET e C# Copyright2008, Fernando Amaral. Todos os direitos reservados. Este documento protegidos por direitos autorais e outros direitos de propriedade intelectual. www.fernandoamaral.com.br

Dim i As Integer = 0 Do While i < 5 MessageBox.Show(CStr(i)) i += 1 Loop

int i = 0; while (i