Tải bản đầy đủ (.pdf) (212 trang)

ASP.NET 3.5 em VB.NET e C# doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.48 MB, 212 trang )

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

Este documento é de distribuição gratuita para uso pessoal. É veda
da
qualquer outra
forma de utilização, divulgação, publicação, distribuição

etc
.
sem
autorização 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. É Pós Graduado em Gestão de Sistemas de
Informação pela Uniderp e em Melhoria de Processo de Software pela UFLA.
Além
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 endereço
www.fernandoamaral.com.br


. Através do site existe um formulário onde posso ser
contatado.
Sobre ASP.NET 3.5 em VB.NET e C#

Exis
te muito conteúdo para quem quer aprender ASP.NET. Existem centenas de bons
livros. Porém este curso em formato digital traz algumas características que
talvez

você
não encontre em nenhum lugar:


É completo no sentido que abrange todos os principais temas relacionados ao
ASP.NET 3.5;


Segue uma seqüência lógica. Você não precisará ficar garimpando informações
em lugares diferentes;


É em português.

Porque não um Livro?

Est
e curso foi criado dentro de minhas possibilidades, de maneira que não precisei
assu
mir nenhum compromisso
.

ASP.NET 3.5 em VB.NET e C#

1. Introdução ao
ASP.NET


7
2. Vis
ual Studio 200
8
: 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 .Manutenção de Estado



153

13 . ASP.NET AJAX



167

14. Criando e Consumindo WebServices


179

15. Criando uma página de erros personalizada



188

16. Eventos da aplicação


191

17. Distribuindo sua Aplicação


193


18. Relatórios com Crystal Report

202

6
ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e
outros direitos de propriedade intelectual
.
www
.
fernandoamaral.com.br

1. Introdução ao
ASP.NET

Desenvolver aplicações nunca foi tão fácil. Ambientes
RA
D cada vez mais modernos e
amigáveis tem tornado o trabalho dos arquitetos de software cada vez mais
simples
.
Com o v
ersão
3.5
do ASP.NET, conseguiu-
se

atingir
níveis de produtividade nunca
antes imaginados.

Este curso tem por objetivo introduzir o desenvolvedor no mundo do desenvolvimento
de aplicações Web utilizando o ASP.NET
3.5.
Não é um curso introdutório de
lógi
ca de
programação.

Os exemplos ao longo do curso serão todos demonstrados em VB.NET e C#.

Blocos de código serão precedidos pelo ícone da linguagem utilizada:


para código em VB


para código em C#

O que é o Microsoft .NET FrameWork?
Tradicionalmen
te
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 S
istemas
Operacionais Windows
sobre a plataforma Intel.

Ao desenvolver um software para o .NET, o desenvolvedor ao invés 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 versão Orientada a Objetos do clássico 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 própria
ling
uagem
. A escolha entre uma linguagem ou outra é apenas uma questão de sintaxe.
7
ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e
outros direitos de propriedade intelectual
.
www
.
fernandoamaral.com.br

Isto é possível porque um programa escrito para .NET é compilado em uma linguagem
intermediaria chamada MSIL (Microsoft Intermediate Language). Não importa qual

linguagem
em
qu
e você
codificou
, o resultado, em termos de performance, qualidade,
tamanho dos binários 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 compilação do programa, desta vez de acordo com
as especificações do sistema operacional e do dispositivo em que o .NET Framework se
encontra.

Desenvolver um sistema para o plataforma .NET, traz mais alugmas vantagens além de
das ficaram óbvias nesta introdução. A mais importante é que o seu programa vai rodar
em um ambiente protegido e especifico, sem ter que se preocupar com as especificações
ou problemas do sistema operacinal. Toda a interação com
es
te
, como por exemplo, o
gerencimento de memória, é feita pel
o
.NET.

ASP.NET

1.X

Nos ultimos anos surgiram fantásticas IDEs para desenvolvimento de aplicações
Windows. Algumas permitiam que você abrisse uma tabela qualquer, permitindo ainda

a sua edição, sem sequer escrever uma linha de código. Outras através de assistentes
automatizavam tarefas poupando tempo e
muitas
dores de cabeça. Surgiram ainda
diversas ferramentas que prometiam a criação de aplicativos inteiros sem a necessidade
de escreve
r uma linh
a de código qualquer.

Porem
não podemos dizer o mesmo
para
as
aplicações Web.
Além
algumas frustadas
tentativas, não existiu nenhum ambiente de alta produtividade como existiam para
aplicações 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 aplicações Web onde se
pudesse desenvolver aplicações no mesmo ambiente e com as mesmas facilidades de
aplicações conve
ncionais, utilizando a mesma linguagem.

8
ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e

outros direitos de propriedade intelectual
.
www
.
fernandoamaral.com.br

Promessa cumprida: O .NET 1.x junto com o Visual Studio 2002 / 2003 proporcionou
um ambiente para aplicações WEB, totalmente integrado, com as facilidades só antes
vistas em ambientes de aplicações convencionais: WYSIWYG, Drag and Drop,
Intellisense
, recursos de depuração avançados etc. Já era
possivel
exibir uma tabela
numa aplicação WEB com duas linhas de código, e sem escrever uma Tag HTML
sequer!

ASP.NET 2.0

Não há duvidas que a plataforma .NET
1.
x e o ASP.NET
1.
x mudaram a maneira como
as aplições Web são desenvolvidas. Porém 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 relação ao

seu antecessor:



Mais de 50 novos Server Controls


Novas ferramentas adiminstrativas


Nova IDE do Visual Studio 2005


Site Navigation: Controles que facilitam a navegação em Web Sites


Master Pages: Agora é possível utilizar herança visual em aplicações Web,
o que
na versão 1.
x
só era possivel com aplicações Windows Forms.

Themes: Tornam mais facil o gerenciamento do visual de sua aplicação


Acesso a Dados: O ADO.NET embora extramente eficiente, era
demasiadamente complexo. O Acesso a dados foi reformulado e si
mplificado.


Snippets: Partes de códigos especificas que podem ser armazenadas para
utilização futura.



O ASP.NET foi o primeiro ambiente que permitiu que se desenvolv
essem
aplicações convencionais ou para

Web em uma mesma IDE, utilizando a
mesma

linguagem
.


Normalmente você não precisa ser um profundo conhecedor de HTML para
desenvover uma aplicação Web no VS 2005. Porém um conhecimento básico
é recomandado: sempre

há necessidade de algum ajuste manual.

9
ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

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 mudanças do ASP.NET 2.0 e 3.5 foram poucas, porém significativas. Na verdade o
core engine das duas versões continua o mesmo. Para projetos em ASP.NET 3.5 o
ASP.NET AJAX Extensions passou a estar integrado a IDE do Visual Studio, não é
mais necessário baixar e instalar separadamente. É encontrado no assemblie
System.Web.Extensions.dll
.
Outra grande novidade, já há bastante esperada é o L
INQ.
A
Gap
que existe entre dados
relacionais e objetos já não é um assunto novo, já recebendo inclusive artigos meus. Já
postei também alguns artigos técnicos sobre LLBLGen e NHibernate. Agora o .NET
avança nesse sentido com o LINQ. O LINQ não é nenhuma novidade, porém agora é
integrado ao Visual Studio. A idéia do LINQ também não é nova, com esta tecnologia
você pode operar o banco de dados em uma linguagem nativa, como se tivesse gerando
código VB.NET ou C#. É encontrado nos assemblies System.Core.dll,
S
ystem.Data.Linq.dll, System.Xml.Linq.dll e System.Data.DataSetExtensions.dll.

Também há controles novos. Além dos controles Ajax Extensions que na versão
anterior deviam ser instalados separadamente, existem mais três novos controles:
ListView, DataPager e LinqDataSource. O Listview é um controle de exibição de dados
tabulares, semelhante ao Datagrid e GridView, porém com novas funcionalidades e
maior controle sobre o resultado produzido. DataPager é um controle que prove
paginação de dados ao Listview. Li
nqDataSource é mais um controle de acesso a dados,

como ObjectDataSource e o SQLDataSource, porém utilizando o modelo LINQ descrito
em sessão anterior.

Estrutura de uma aplicação ASP.NET 2.0

e 3.5

Nesta sessão apresento algumas considerações sobre o estr
utura de aplicações ASP.NET
2.0 e 3.5, que como dito em seção anterior, permaneceram inalterados.

Você já percebeu que muita coisa mudou entre o ASP.NET 1.x e seu predecessor. Uma
das grandes propagandas no lançamento da primeira versão do ASP.NET era o m
odelo
code
-behind, onde apresentação e código de servidor ficam armazenados em arquivos
10

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

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 código mais limpo e intuitivo tanto para o designer

quanto para o programador. Trabalhar com tudo em um único arquivo até era possíve
l,
porém
desvantajoso
.

No ASP.NET 3.5, embora o padrão seja um arquivo único, pode-se facilmente optar em
trabalhar com arquivos separados, basta desmarcar a opção place code in separated file
na caixa de dialogo de criação de um novo
W
eb
F
orm:


Este
novo modelo é denominado code-inline. Se você optar por trabalhar com este
modelo, seu código de servidor vai estar separado entre tags
Script.
O grande problema
na versão 1.x era que trabalhando com um único arquivo perdíamos alguns recursos
poderosos de programação, como o
Intellisense
. Na versão 2.0 e 3.5 não há qualquer
problema: tudo que funciona
no modelo code
-
behind funciona também no code
-
inline

.
Post
-
Back entre páginas

Até o.NET 1.
x
um con
trole só poderia causar um post

back para a própria págin
a. Agora
esta limitação acabou, através da propriedade PostBackUrl, presente no botão de
comando e similares,
que
permite que seja executa um postback para outra pagina A
sp.
Este novo recurso é conhecido como
Cross
-
Page Posting.

11

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e
outros direitos de propriedade intelectual

.
www
.
fernandoamaral.com.br

Agora é possível inclusive ler valores de controles ou propriedades de páginas que
deram origem ao postback. Esta fantástica inovação surgida no ASP.NET 2.0 permite
tornar o código mais limpo, mas otimizado, além de reduzir a necessidade de utilização
de variáveis de sessão, querys
tring e outros.

Pastas

A partir da
versão 2.0 o ASP.NET uma aplicação Web deixou de ser orientada a projeto
e passou a ser orientada a arquivos. Em conseqüência foram definidas uma série de
pastas com funções especificas, vamos ver as principais:


App_Co
de: 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 sessão vamos ver os principais tipos de arquivos que uma aplicação ASP.NET
pode conter:


Web.config: è um arquivo contendo as configurações da aplicação, formatado
com XML.


.aspx: arquivo contendo a apresentação de uma página.


.vb ou .cs: arquivo com código de servidor relacionado a uma página


Global.aspx: Arquivo contendo os eventos globais da aplicação.


.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

12

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e
outros direitos de propriedade intelectual
.
www
.
fernandoamaral.com.br

2. Vis
ual Studio 200
8
: O ambiente e as linguagens

Nesta seção vamos ver os principais compontentes da IDE do VS 200
8.

A esquerda, por padrão oculta, existe a Barra de Ferramentas, onde ficam agrupados por
categoria os compontes padrão do VS ou de terceiros instalados no ambiente. Para
instalar um novo componente, basta clicar com o botão direito sobre a barra e selecionar
Choose Itens. Você pode também personalizar a sua barra de ferramentas da maneira

que achar melhor.

A direita temos o Solution Explorer, que permite uma navegação rápida entre os
arquivos de um projeto ou solução.

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

Entre as principais novidades do ambiente temos as notificações de status da linha
através de cores: Uma nova linha de código ou código alterado é marcado como
amarelo. Se a linha já foi salva sua cor muda para verde.

13

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e
outros direitos de propriedade intelectual
.
www
.
fernandoamaral.com.br

Outra novidade são os Snippets: pedaços de código pré fabricados para executar um
a
tarefa especifica. Tudo bem que isso não é 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 m
enu
rápido sobre a área de código. Obviamente que você também poderá criar seus proprios
snippets.

SINTAXE:
VISUAL BASIC .NET

e C#

Vamos introduzir os principais aspectos d a sintaxe de programação
do
VB.NET
e do
C#
. Este não será um estudo completo ou abrangente, para tal procure bibliografia
específica.

Comentários

No C# comentário de linha são feitos com duas barras. Comentários em bloco são
aberto com
\
* e fechados com *
\.
No VB.NET Comentários são inseridos com aspas simples no inicio da linha. O
VB.NET não permite o comentário de blocos de código, a solução é comentar linha a
linha. Porém o Visual Studio possui em sua barra de ferramentas padrão o comando


Comment out the selected lines que comenta um bloco de código selecionado e

Uncomment the selected lines que remove os comentários, a utilização é simples e
intuitiva, e funcina em ambas as linguagens


este é um comentário válido
Dim i as Integer
esta também é um co
mentário válido


//este é um comentário válido

int

x = 3;

/* este também é

um comentário válido */


Lembre
-
se sempre que o C# diferencia entre caracteres maisculos e
minusculos, o VB.NET não.


Você já deve ter encontrado discussões 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.

14

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e
outros direitos de propriedade intelectual
.
www
.
fernandoamaral.com.br

No Visual Studio 200
8 também é possível documentas seu código sem a necessidade de
inst
alar qualquer plug-in, basta adcionar três aspas (vb.net) ou tres barras (C#) antes do
procedimento. O VS automaticamente preenche o esqueleto do documento. Observe o
exemplo abaixo:


'''
<summary>


''' Função para somar dois números

'''
</summary>

''' <p
aram name="x">
Primeiro número a somar
</param>

'''
<param name="y">
Segundo número a somar
</param>

'''
<returns>
Resultado da soma
</returns>

'''
<remarks>By Fulano
</remarks>

Public Function Somar(ByVal x As Integer, ByVal y As Integer) _


As Integer



Dim z

As Integer


z = x + y


Return
z
End Function


///

<summary>

///

Função para somar dois números

///

</summary>

///

<param name="x">
Primeiro número a somar

</param>

///

<param name="y">
Segundo número a somar
</param>

///

<returns>
Resultado da soma
</returns>

int

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 botão direito
sobre o arquivo, e selecionar View Class Diagram

Tipos de Dados
Sendo o .NET um framework, não existem tipos de dados desta ou daquela linguagem.
Os tipos são todos do .NET. Obviamente que existem diferenças de sintaxe na
declaraç
ão e manipulação destas variaveis. Abaixo segue uma relação dos principais
tipos de dados, para uma relação completa consulte a d
ocumentação do VS 200
8:

Você ainda pode criar comentários no VB.NET utilizando Rem.

15

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

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

número decimal


Double

número de ponto flutuante com 64 bit


Single
-
número de ponto flutuante com 32 bit
Operadores

VB.NET

C#

And
&
Or
|
XOr
^
Not
!
Is Nothing


== null

<>

!=

& +
\ /
\=
/=

Mod
%
=
==



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#.

16

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,


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 variável usamos a palavra DIM, seguido pelo nome da
variável e tipo:


Dim i as Integer

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

int z;

Podemos ainda de
clara
diversas

variaveis de um mesmo tipo numa unica declaração:


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 serão do tipo inteiro, e
j e K do tipo single.

É possíve
l ainda incializar a variável na

sua declaração:


int

z = 1;


Para declarar uma constante utilizamos a declaração Const
:

Dim i as Integer = 1

Const x as integer = 1

17

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e
outros direitos de propriedade intelectual
.
www
.
fernandoamaral.com.br

Enumeradores

Para declara
r um enumerador usamos a declaração Enum


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



Coleções

Poderíamos dedicar um longo capítulo ao estudo de coleção, sendo nosso objetivo fazer
uma introdução a p
arte de

sintaxe, veremos apenas arrays:


const

int

x = 1;

Public Enum Semana


Domingo


Segunda


Terça


Quarta



Quinta


Sexta


Sabado

End Enum

enum

Semana

{ Domingo, Segunda, Terça, Quarta, Quinta, Sexta, Sabado
};

Enum

Semana


Domingo = 1


Segunda = 2


Terça = 3



Quarta = 4


Quinta = 5



Sexta = 6


Sabado = 7

End Enum

enum

Semana

{ Domingo = 1, Segunda =2, Terça =3, Quarta =4, Quinta =5,
Sexta =6, Sabado =7 };

Dim

MeuArray(1)
As

String


MeuArray(0) =
"Um"

MeuArray(1) =
"Dois"

18

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e
outros direitos de propriedade intelectual
.
www
.
fernandoamaral.com.br

Ao contrário do legado VB, um array possui sempre índice iniciado em zero, portanto
um array declarado com (1), terá duas posições.
Estruturas de decisão

O classico
if
não poderia faltar. A sintaxe é semelhante as suas linguagens legadas:


Obviamente que a intrução
else

é opcional.

Outra forma de controle de fluxo conhecid
o é o Select

(VB.NET)
ou Switch (C#):

string
[] MeuArray =
new

string
[1];

arr[0] =
"Um"
;
arr[1] =
"Dois"
;

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!"
);

}
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#"
;
19

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e
outros direitos de propriedade intelectual
.
www
.
fernandoamaral.com.br

Note que no C# devemos usar a palavra
break
para quebrar o fluxo
Laços


Vamos estudar tr
ês estrutu
ras de laços: For,
while e laços em coleções.

O laço 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 condição:


for
(
int

i = 0; i < 10; i++)


MessageBox
.Show(Convert
.ToString(i));

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


Dim i As Integer = 0

For

i = 10
To

1
Step
-1

MessageBox.Show(
CStr(i))

Next i


Existem laços
While
com teste de condição no inicio da sentença ou no final, neste
último o laço executa sempre uma primeira vez, indep
endente do resultado da avaliação.
Vamos ver exemplos do primeiro caso:

switch

(Nome){




case "VB.NET"
:

MessageBox.Show(
"Certo!");


break;


case "C#"
:

MessageBox.Show(
"Errado!");


break;


default:


MessageBox.Show(
"?");


break;


}
20

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

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<5) {


MessageBox
.Show(Convert
.ToString(i));


i += 1;

}
Finalmente, o que pode ser novidade para quem ainda não conhece a
plataforma
.
NET
são os laços em coleções, que permitem percorrer um a um os membros de uma coleção
qualquer.


Dim

numbers() = {4, 5, 6, 1, 2, 3,

-
2,
-
1, 0}


Dim i As Integer


For

Each

i
In

numbers


MessageBox.Show(Convert.ToString(i))


Next


int
[] numbers = { 4, 5, 6, 1, 2, 3,
-
2,
-

1, 0 };

foreach
(
int

i in

numbers)

{

MessageBox
.Show(Convert
.ToString(i));

}
Neste exemplo a titulo de simplicidade nossa coleção é um array, porém a estrutura
funciona da mesma forma para qualquer tipo de coleção.

Convertendo valores

Para a conversão entre tipos de dados utilize a classe
convert
, seguida do método
apropriado ao tipo que ser converter:


Dim i As Integer, s As String


s = Convert.ToString(i)


int

i;

string s;

s =
Convert
.ToString(i);


21

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e
outros direitos de propriedade intelectual
.
www
.
fernandoamaral.com.br

Procedimentos e funções

Em VB.NET uma função começa com a palavra reservada function e termina com o

tipo do dado de retorno. Já no C# inicia com o tipo do dado de retorno:

Function Somar( x A
s Integer, y As Integer) _


As Integer


Dim z As Integer


z = x + y


Return
z
End Function


int

Somar(
int

x,
int

y)


{

int z;


z = x + y;


return z;

}
O retorno é inidicado pela palavra
-
chave return ou pelo próprio nome da função.

Um procedimento que não retorna valor em VB.NET inicia com a palavra chave Sub, e
em C# com v
oid:


Sub Somar( x As Integer, y As Integer) _


As Integer


Dim z As Integer


z = x + y


End Function


void

Somar(
int

x,
int

y)

{

int z;


z = x + y;

}
Visibilidade ou Scopo


A pass
agem de parametros por padrão
ocorre

por valor. Para indicar um

parametro a ser passado por referencia, utilize ByRef no VB.BET e ref no
C#.

22

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e
outros direitos de propriedade intelectual
.
www
.
fernandoamaral.com.br

A visibilidade de um procedimento, classe, inferface etc. é definada através das palavra
s
reservadas a seguir:

Public / public: acessível de qualquer lugar do projeto ou de instancias da classe

Private / private: Acessível apenas dentro do mesmo contexto;

Friend / internal: Acessivel apenas dentro do projeto;

Protected / protected: Acessivel

apenas dentro da classe ou de uma classe derivada;


Protected Friend / Protected Internal: Acessivel apenas dentro da classe derivada ou do
mesmo projeto;

Tratamento de exceções

O tratamento de exceções será surpresa apenas para quem esta começando agora a
conhecer o VB.NET, que com o lançamento do linguagem ganhou uma forma
estruturada de tratamento de erro semelhante as demais linguagens OO. È o adeus ao
On error go to
.
O tratamento de e
rro é formando por uma estrutura
Try Catch Finally.

Entre o
Try

e o
Catch
deve ser colocado o código que você quer proteger de uma exceção. Entre
Catch
e
Finnally
o código a ser executado no caso de ocorrer uma exceção, e finalmente após
Finnally
algum
código que você queira que obrigatóriamente seja executado, ocorrendo
ou não uma exceção, geralmente usado para liberar algum recurso alocado
.
Vale

lembrar que você pode usar apenas parte da funcionalidade do bloco, por exemplo, se
você que apenas tratar uma exceção, pode contruir um bloco contendo apenas os
comando
try catch.
Por outro lado se você quer apenas garantir que um recurso seja
liberado, como uma conexão com o banco de dados pro exemplo, você pode fazer us
o
apenas do

bloco
try finally
.
Out
ra caracteristica importante é que as classes de exceção são executadas da mais
especifica para a menos especifica, isto permite um tratamento de erros mais robusto e
eficaz. Normalmente você deve terminar seu tratamento com a classe
Exception,
que é
menos

específica e que da origem a todas as demais.

Ao declarar algo sem a visibilidade, por padrão será private.

23

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,


Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e
outros direitos de propriedade intelectual
.
www
.
fernandoamaral.com.br

Try


My
.Computer.FileSystem.CopyFile(
"Aspnet.pdf"
,
"Aspnet.bkp"
)
Catch

ex As

System.IO.IOException


MessageBox.Show
("Ocorreu um erro na cópia do arquivo")

Catch

ex2 As


Exception


MessageBox.Show("Ocorreu um

Erro desconhecido")

End Try


try

{

string s = null;

}
catch
(
ArgumentNullException

s)

{

MessageBox.Show(
"Ocorreu um erro na string"
);

}

catch
(
Exception

r)

{

MessageBox.Show(
"Ocorreu um Erro desconhecido"
);

}
With

O with, que não tem equivalente no C#, permite omitir o nome de um objeto quando o
mesmo é utilizado em diversas linhas.


With

GridView1


.Caption =
"GridView"


.EditIndex = 0



.Enabled =
False

End With

Orientação a Objetos

Vamos também apresentar alguns aspectos da sintaxe da criação de classes no VB.NET
e no C#.
Porém antes é preciso conhecer o conceito de NameSpaces.
NameSpaces é uma estrutura simples, porém muito eficiente de organizar seu código.
Por exemplo, uma suposta empresa GoodSoftware pode definir que todas suas classes
terão como NameSpace raiz GoodSoftware. Abaixo deste existirão os NameSpaces
ERP, CRM e Global. O NameSpace ERP abrigaria as classes de seus novo
sistema
ERP, o CRM idem, e o Global classes que para serem utilizadas em ambos os projetos.
Dentro de cada um destes NameSpaces é possível criar n outros. Outra importante
24

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e
outros direitos de propriedade intelectual
.
www
.
fernandoamaral.com.br


vantagem do seu uso é redução de problemas com conflitos com nomes repetidos de
classes ou métodos.

Abaixo vemos a declaração básica de uma classe de Nome Class1, dentro de um
NameSpace


Nam
espace

GoodSoftware


Public Class ERP


'


End Class

End Namespace


namespace

GoodSoftware

{


public class
ERP


{

//


}
}
Um construtor de uma classe em VB.NET se define com a palavra chave New,
já em
C#

deve ter no mome

da classe


Public Sub New()




End Sub


public


Class1 ()

{

//

}
Obviamente que você pode criar um construtor com passagem de parametros.

Já as propriedades
são ba
stante singular em cada linguagem:



Você não é obrigado a criar uma classe dentro de um NameSpace.


Não é preciso existir relaçã
o entre nomes de classes e namespaces com o
nome fisico do arquivo. Você pode inclusive colocar diversas classes ou
namespaces dentro de um mesmo arquivo.
25

ASP.NET 3.5 em VB.NET e C#

Copyright©2008,

Fernando Amaral. Todos os direitos reservados. Este documento é protegidos por direitos autorais e

outros direitos de propriedade intelectual
.
www
.
fernandoamaral.com.br

Public Property Nome() As String


Get


Return Pnome


End Get


Set(ByVal value As String)


Pnome = value


End Set

End Property


public


String

Nome

{

get

{ return

Pnome; }


set

{ Pnome =
value
; }

}
Caso você deseje criar um método que por algum motivo não precise ou não deva ter
sua classe instanciada, basta você acrescentar a palavra chave shared no VB.NET ou
static no C#, sempre após a declaração de visibilidade do método
:

Public Shared Function Somar(ByVal x As Integer, ByVal y As Integer) _
As Integer



Dim z As Integer


z = x + y


Return z

End Function


public static int Somar(int x, int y)

{

in
t z;


z = x + y;


return z;

}
A herança de uma classe é definida pela palavra chave inherits em VB.NET e em C#
através da notação : classe pai

Public Class Class2



Inherits

Class1

End Class


Uma propridade pode ser apenas leitura ou apenas escrita.

Além de inicar
estas caracteris
tica na declaração da propriedade, você deverá omitir as
sentenças get e set, respectivamente.


Lembre
-
se que um método definido com shared / static, não pode usar
qualquer recurso da classe, como por exemplo uma variavel privada ou
mesmo, uma propriedade ou um outro método.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×