Você está na página 1de 11

ASP.

NET
Michael Schuenck dos Santos
Curso de Sistemas de Informao Centro Universitrio Luterano de Palmas
(CEULP/ULBRA)
Caixa Postal 15.064 91.501-970 Palmas TO Brasil
michael@ulbra-to.br

1. Introduo
ASP.NET (Active Server Pages.NET) compe a forma de se criar pginas da Internet
utilizando-se a plataforma .NET. Esta plataforma prov uma srie de servios, atravs de
classes existentes no Microsoft .NET Framework. Com ele, possvel a construo no
apenas de pginas Web, mas tambm, de aplicativos desktop, aplicativos para dispositivos
mveis, objetos de negcios, web services, etc.
Pode-se dizer que a plataforma .NET similar plataforma Java, que tambm
oferece diversos servios. Dentre suas principais diferenas, destacam-se as seguintes
caractersticas: a plataforma Java utiliza a linguagem de programao Java e seus
aplicativos so hbridos (compilados e interpretados, caracterstica que permite que os
aplicativos sejam multi-plataforma); enquanto que em .NET, pode-se utilizar Visual
Basic.NET, C++, JScript.NET ou C# (que estar sendo utilizada neste curso), e os
aplicativos gerados so compilados em uma linguagem chamada MSIL (Microsoft
Intermediate Language). No caso das pginas ASP.NET, sua compilao realizada no
momento em que elas so chamadas pela primeira vez atravs do browser, que apresenta o
contedo final em HTML (Hypertext Markup Language).
A execuo de pginas ASP.NET requer a utilizao do IIS (Internet Information
Server), alm da instalao do .NET Framework SDK.
As pginas ASP.NET podem ser escritas utilizando-se editores de textos planos, tal
como Bloco de Notas e Vi. Porm, existem vrias ferramentas que auxiliam o
desenvolvimento de pginas ASP.NET. Algumas das ferramentas de maior destaque so:
?? Microsoft ASP.NET We b Matrix - um software especfico para construo de
aplicativos para a Web que utilizam a plataforma .NET. bastante leve (1,3 Mb),
apesar de prover muitos recursos de desenvolvimento. uma ferramenta gratuita,
podendo ser baixada em http://www.asp.net/webmatrix/.
?? Macromedia Dreamweaver MX seguindo a tradio de suas verses anteriores,
este software suporta vrias tecnologias (ASP, ASP.NET, JSP, PHP, CSS, Java,
XML, entre outras). Uma verso para teste pode ser encontrada em
http://www.dreamweaver.com.
?? Microsoft Visual Studio .NET considerado pela Microsoft, o seu principal
ambiente de desenvolvimento, suportando a criao de solues baseadas na
plataforma .NET, incluindo-se aplicativos desktop, ASP.NET, web services,
classes, aplicativos para dispositivos mveis, entre outros. Sua pgina na Internet
http://msdn.microsoft.com/vstudio/.

2. ASP.NET, HTML e C#
As pginas ASP.NET produzem arquivos de extenso .aspx. Normalmente, elas so
divididas em duas sees principais: HTML e, no nosso caso, C# (C Sharp) [Payne 2001].
Assim, o cdigo C# colocado dentro do elemento script , antes do cdigo HTML
propriamente. necessrio ainda, que seja explicitada a linguagem que est sendo
utilizada, o que feito com uso da diretiva Page Language, que adicionada no incio
do cdigo da pgina. Um exemplo simples de uma pgina ASP.NET o seguinte:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

<%@ Page Language="C#" %>


<script runat="server">
void limpar(object sender, EventArgs e) {
Label2.Text = " ";
}
</script>

Cdigo ASP.NET

<html>
<body>
<form runat="server">
<div align="center">
<asp:Label id="Label1" runat="server" font-size="Large" font-bold="True"> Pgina de
Exemplo</asp:Label>
<asp:Label id="Label2" runat="server">Esta uma pgina de exemplo, onde exemplificada
a diviso entre o cdigo HTML e ASP.NET</asp:Label>
Cdigo HTML
<asp:Button id="Button1" onclick="limpar" runat="server" text="Limpar"/>
</div>
</form>
</body>
</html>

Figura 1. Diviso do cdigo de uma pgina ASP.NET

Nota-se, que o elemento script possui um atributo runat , que possui o valor server.
Isto significa que todo o contedo deste elemento estar sendo executado no servidor
[Payne 2001]. Isto necessrio pelo fato de ser o servidor, o lugar onde est instalado o
.NET framework (o cliente no necessariamente o ter instalado).
A linguagem C# possui muitas semelhanas com as linguagens C, C++ e Java.
Assim, o cdigo case-sensitive (existe diferena entre letras maisculas e minsculas), e
declaraes de variveis, operadores e estruturas de controle so utilizados praticamente da
mesma maneira que nestas linguagens. Por exemplo, para se declarar uma varivel do tipo
inteiro, basta escrever o seguinte:
int variavel;

A forma do cdigo ASP.NET se comunicar com o cdigo HTML atravs de


funes que so invocadas por controles de servidor (que sero visto adiante, em detalhes),
por meio do evento onclick. Outra forma desta comunicao acontecer ocorre no momento
em que a pgina carregada, por meio da funo Page_Load.
2.1 Tipos de dados de C#
Os tipos de dados suportados por C# so apresentados na tabela abaixo [Payne 2001]:

Tabela 1: Tipos de dados do C#

Tipo
byte
sbyte
int
uint
long
ulong
short
ushort
decimal
double
float
bool
char
string

Descrio
Inteiro de 1 bit sem sinal (0 a 255).
Inteiro com sinal de 8 bits (-127 a 128).
Inteiro de 32 bits com sinal (-2.147.483.648 a 2.147.483.147).
Inteiro de 32 bits sem sinal (0 a 4.294.967.295).
Inteiro com sinal de 64 bits (-9.223.372.036.854.775.808 a
9.223.372.036.854.775.807).
Inteiro sem sinal de 64 bits (0 a 18.446.744.073.709.551.615).
Inteiro com sinal de 16 bits (-32.768 a 32.767).
Inteiro sem sinal de 16 bits (0 a 65.535).
-45
308
Ponto flutuante decimal de 128 bytes (? 1.5 x 10 a ? 1.7 x 10 ).
Este tipo tem uma preciso de 28 casas decimais.
-45
308
Ponto flutuante binrio de 8 bytes (? 1.5 x 10 a ? 1.7 x 10 ).
Este tipo tem uma preciso de 15 casas decimais.
-45
38
Ponto flutuante binrio de 4 bytes (? 1.5 x 10 a ? 3.4 x 10 ). Este
tipo tem uma preciso de 7 casas decimais.
Tipo de dados booleano, ou seja, pode ser apenas true ou false.
Um nico caractere unicode de 16 bits.
Unicode com at 1 gigabyte de caracteres. Dentre os tipos de dados
nativos do C#, este o nico cuja passagem (a funes ou mtodos)
feita por referncia, ou seja, o que passado no seu valor, mas
um ponteiro indicando o local da memria em que se encontra
aquela varivel.

2.2 Estruturas de controle de C#


As principais estruturas de controle de C# so as seguintes:
?? if ... else if ... else estruturas de deciso simples, em que a clusula if ocorre
apenas uma vez, a clusula else if pode ocorrer nenhuma ou vrias vezes e a
clusula else opcional.
if (condio1) {
instrues1;
} else if (condio2) {
instrues2;
} else {
instrues3;
}

?? switch case - estruturas de deciso caracterizadas pela possibilidade de uma


varivel possuir vrios valores. A clusula switch ocorre uma vez, a clusula case
pode ocorrer de uma a vrias vezes, e default opcional.

switch (varivel) {
case 1 valor que a varivel pode assumir: instrues1; break;
case 2 valor que a varivel pode assumir: instrues2; break;
case 3 valor que a varivel pode assumir: instrues3; break;
default: instrues para condies no previstas explicitamente;
}

?? for - estrutura de repetio caracterizada pela existncia de trs parmetros: um


valor inicial, uma condio para parada das iteraes, e a quantidade de
incrementos ou decrementos a cada iterao.
for (int i=0; i>valor; i++) {
instrues;
}

?? foreach esta estrutura de repetio uma variao do for. Sua diferena est no
fato de ser necessrio apenas especificar uma varivel inteira e a coleo (array)
cujos registros sero percorridos.
foreach (int i in vetor) {
instrues;
}

?? while - estrutura de repetio que realiza as operaes desejadas enquanto a


condio especificada for verdadeira.
while (condio) {
instrues;
}

?? do ... while - estrutura de repetio semelhante anterior, com o diferencial de que


as condies so verificadas no final da execuo, permitindo as operaes
especificadas sejam executadas pelo menos uma vez.
do {
instrues;
} while (condio);

2.3 Operadores de C#
Os principais operadores de C# so apresentados a seguir [Payne 2001]:

Tabela 2: Operadores do C#

Categoria
Aritmticos
Atribuio
Concatenao
Criao de Objetos
Igualdade/Diferena
Incremento/Decremento
Lgicos
Primrios
Relacionais

Operadores
+, -, *, /, %
=, +=, -=, *=, /=, <<=, >>=, &=, ^=, |=
+
New
==, !=
++, -&, ^, |, &&, ||, ~, !
typeof, sizeof, checked, unchecked
<, >, <=, >=, is

Tendo sido apresentada a linguagem C#, sero apresentados adiante, os formulrios


da Web, com os quais, C# interage de forma a ser utilizado em pginas Web.

3. Formulrios da Web
Os formulrios da Web constituem a principal forma de interao entre o usurio e
uma pgina Web. Dentro deles, esto contidos recursos para captao de dados, tais como
caixas de texto, caixas de listas e botes. sobre estes controles que, geralmente, so
realizadas as operaes que caracterizam uma pgina dinmica (aquela que no apenas
exibe informaes estticas, mas permitem interaes e realizam algum processamento).
Com a tecnologia ASP.NET, possvel construir aplicativos Web com facilidades
semelhantes s da construo de aplicativos desktop, com Delphi ou C++ Builder, por
exemplo. Ou seja, possvel acessar o contedo dos componentes dos formulrios e
associar eventos ao cdigo (no nosso caso, em C#). Em se tratando de aplicativos Web,
esta tarefa era permitida apenas por JavaScript, que por outro lado, no constitua,
isoladamente, um recurso para comunicao com um servidor, outra caracterstica tambm
oferecida por ASP.NET.
ASP.NET suporta o uso de elementos HTML, desde que possuam o atributo
passando a serem chamados de controles de servidor HTML. Isto se
deve ao fato de ASP.NET ser baseada no servidor, caso contrrio, ele no poderia enxergar
os controles [Payne 2001]. Os controles normalmente possue m atributos, especficos para
cada um, que permitem sua alterao de vrias formas. Como estes controles so, na
verdade, alguns dos elementos HTML, eles no sero apresentados aqui, mas podem ser
encontrados nas ferramentas de desenvolvimento.
runat= server ,

Existem ainda, os controles de servidor da Web, que so semelhantes aos controles


de servidor HTML. Eles foram criados para serem utilizados especificamente por pginas
ASP.NET e podem representar elementos de interface mais complexos, tal como
calendrios [ASP.NET 2003]. Sua utilizao feita da seguinte maneira:
<asp:NomeDoControle id=nome runat=server>

Eles podem possuir vrios outros atributos, dependendo do tipo de controle e da


necessidade do desenvolvedor. Estes controles so colocados no cdigo entre as tags do
cdigo HTML, dentro de um formulrio (representado pelo controle form). Os principais
controle de servidor da Web so apresentados na tabela a seguir [ASP.NET 2003].

Tabela 3: Controles de servidor da Web

Nome
Button
Calendar
CheckBox
CheckBoxList
DataGrid
DataList
DropDownList
Image
Label
LinkButton
ListBox
RadioButton

RadioButtonList
Repeater

Table
TableCell
TableRow
TextBox

Descrio
Boto
Calendrio grfico que permite a navegao e escolha de datas
Caixa para selecionar ou no um item
Grupo de caixas de seleo que normalmente esto relacionadas
entre si
Mecanismo para exibio de dados em forma de linhas e
colunas, sendo possvel a classificao e edio
Mecanismo parecido com o DataGrid, porm, com menos
recursos
Lista para escolha de uma das opes. Bastante til quando se
quer que as opes sejam extradas de um banco de dados.
Exibio de uma imagem
Texto que no pode ser editado diretamente
Um boto com aparncia de link
Lista para escolha de uma ou mais opes.
Caixa para selecionar ou no um item. Dentre os RadioButtons
pertencentes a um RadioButtonList , apenas um pode ser
selecionado.
Continer de RadioButtons.
Controle para exibio de colees de dados em controles de
servidor HTML. Para cada registro, os dados so exibidos no
controle especificado.
Tabela
Clula de uma linha da tabela
Linha de uma tabela
Caixa para insero de dados pelo usurio

Agora que foram apresentados os formulrios da Web e a linguagem C#, possvel


explicar o cdigo escrito na figura 1. As linhas 2 6 contm o cdigo referente s funes
que sero utilizadas para manipular a pgina, que devem estar dentro das tags script . A
linha 3 contm o cabealho da funo limpar, que no retorna nada de sua execuo (void),
e cujos parmetros so requeridos por vrios mtodos para tratar de eventos (apenas a
funo page_load no os requer). A linha 4 tem a funo de definir um espao como sendo
o texto do controle de servidor da Web do tipo label, cujo id Label2, e definido na
linha 14. Entre as linhas 8 e 19 encontra-se o cdigo HTML, com seus elementos html e
body. Entre as linhas 10 e 17, est o formulrio da Web desta pgina. As linhas 12 e 14
possuem dois controles label, com seus respectivos atributos configurados. Finalmente, na
linha 16 colocado um button, que responsvel por invocar a funo limpar, quando um
usurio clicar nele.

4. Trabalhando com Bancos de Dados


Para acessar e modificar dados, o ASP.NET utiliza ADO.NET (ActiveX Data Objects
.NET), que uma interface de programao para acesso a dados. Esta tecnologia
representa a sucesso de ADO, que era utilizado pelas pginas ASP tradicionais [Payne
2001]. Entre suas principais diferenas, destacam-se o fato de ser compatvel com XML e

o fato de suas comunicaes serem baseadas em XML (texto), fazendo com que no
existam problemas na comunicao sob firewalls (que no bloqueiam arquivos texto).
ASP.NET utiliza algumas classes especficas para manipulao de dados com
ADO.NET [Microsoft 2003]: System.Data, System.Data.OleDb , System.Data.SqlTypes
e System.Data.SqlClient .
A classe System.Data.OleDb contm objetos para prover acesso a SGBDs
(Sistemas Gerenciadores de Bancos de Dados) diversos, tal como Access, SQL Server e
Oracle, dentre outros. Existe ainda, System.Data.SqlClient , que se diferencia por fornecer
objetos para acesso a SQL Server, exclusivamente. Logo, apesar de possuir objetos com
funcionalidades idnticas, suas aes so otimizadas em relao OleDb. Seus principais
objetos so apresentados na tabela a seguir [Microsoft 2003].
Tabela 4: Objetos da classe System.Data.OleDb

Objeto
OleDbCommand
OleDbConnection
OleDbDataAdapter
OleDbDataReader

Funo
Representa uma instruo SQL a ser executada sobre uma fonte
de dados
Representa a conexo com a fonte de dados
Define a conexo e os comandos de dados que sero usados para
manter a comunicao entre o DataSet e o conjunto de dados
Define um conjunto de dados somente leitura e com leitura
somente para frente.

Dois armazenamentos de dados se destacam em ADO.NET: o DataReader


(System.Data.OleDb.DataReader) e DataSet (System.Data.DataSet ). O primeiro pode
ser considerado um objeto leve, permitindo acesso simples a um armazenamento de
dados. Ele coloca somente uma linha na memria por vez, no oferece tantas
funcionalidades quanto o DataSet , de somente leitura, e no permite voltar aos registros
j lidos (o que pode ser feito atravs do mtodo read ). O segundo foi criado para assumir o
lugar do RecordSet do ADO. caracterizado por armazenar todas as linhas de uma
seleo na memria, incluindo restries, relacionamentos e vrias tabelas de uma vez. Isto
proporciona vantagens como a manipulao de dados com mais rapidez, possibilitando a
execuo de leitura, escrita e stored procedures, alm do envio e recebimento de
informaes [Payne 2001]. Por outro lado, este tipo de armazenamento no recomendado
quando se trabalha com grande nmero de acessos simultneos.
O exemplo abaixo mostra a utilizao do DataReader, cujos dados so colocados
em um controle DataGrid.
1
2
3
4
5
6
7
8
9
10
11
12
13

<%@ Page Language="C#" %>


<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">
void Page_Load(Object obj, EventArgs e)
{
OleDbConnection Conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=D:\\Michael\\ASP.NET\\bdNoticia.mdb");
OleDbCommand Comando = new OleDbCommand("select * from tb_noticia", Conexao);
OleDbDataReader DataReader;
Conexao.Open();
DataReader = Comando.ExecuteReader();

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

if (DataReader != null) {
DataGrid.DataSource = DataReader;
DataGrid.DataBind();
DataReader.Close();
}
}
</script>
<html>
<body>
<form runat="server">
<asp:DataGrid id="DataGrid" runat="server"/>
</form>
</body>
</html>

Figura 2. Exemplo da utilizao de DataReader

Da mesma forma do anterior, o exemplo abaixo apresenta um DataGrid, porm,


que utiliza dados de um DataSet .
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

<%@ Page Language="C#" Debug="true" %>


<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">
void Page_Load(Object obj, EventArgs e)
{
OleDbConnection Conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=D:\\Michael\\ASP.NET\\bdNoticia.mdb");
OleDbDataAdapter Adapter = new OleDbDataAdapter("select * from tb_noticia", Conexao);
DataSet Ds= new DataSet();
Conexao.Open();
Adapter.Fill(Ds, "tb_noticia");
if (Ds != null) {
DataGrid.DataSource = Ds;
DataGrid.DataBind();
}
}
</script>
<html>
<body>
<form runat="server">
<asp:DataGrid id="DataGrid" runat="server"/>
</form>
</body>
</html>

Figura 3. Exemplo da utilizao de DataSet

Para ambos os exemplos, a sada a seguinte:

Figura 4. Sada dos exemplos das figuras 2 e 3

Tendo sido apresentados os mecanismos para acesso a dados relacionais, a prxima


seo apresentar a forma de acesso a dados XML (eXtensible Markup Language).

5. Trabalhando com XML


A XML [XML 2003] um padro da W3C (World Wide Web Consortium) para
representao de dados. Possui um formato simples e muito til para o intercmbio de
dados, o que conseguido atravs da caracterstica de marcao da linguagem. Por isto,
ASP.NET agrega meios para manipulao deste tipo de dados. XmlTextReader um
objeto que representa um mecanismo rpido e simples para acesso a documentos XML
[Payne 2001]. Um exemplo simples de sua utilizao apresentado a seguir.
1
2
3
4
5
6
7
8
9
10
11
12
13
14

<%@ Page Language="c#" %>


<%@ import Namespace="System.Xml" %>
<script runat="server">
void page_load(Object o, EventArgs e){
XmlTextReader reader = new XmlTextReader(Server.MapPath("documento.xml"));
while (reader.Read()) {
Response.Write(reader.Value + "<br/>");
}
reader.Close();
}
</script>
<html><body>
</body></html>

Figura 5. Exemplo do acesso a documentos XML utilizando XmlTextReader

Na linha 5 criado um objeto XmlTextReader que carrega o arquivo


Entre as linhas 6 e 8, so exibidos os contedos dos elementos de cada
elemento.
documento.xml .

ASP.NET oferece inmeros outros objetos e mtodos para manipulao de


documentos XML, que podem ser encontrados na documentao do .NET Framework
SDK.

6. Orientao a Objetos
Ao contrrio de ASP, ASP.NET uma linguagem orientada a objetos. Esta
caracterstica j foi observada nas sees anteriores, quando foram utilizados os objetos
das namespaces providas pelo .NET Framework, para acessar dados relacionais e XML.
Porm, possvel ainda, que o desenvolvedor crie as classes que desejar (o que geralmente
contribui para o reuso de cdigo).
Para a criao de classes, pode -se utilizar qualquer uma das linguagens suportadas
por .NET. A sintaxe das classes criadas em uma namespace (mecanismo sob o qual, podese reunir vrias classes) utilizando-se C# do tipo do exemplo apresentado na figura
abaixo.
1
2
3
4
5
6
7
8
9
10
11
12
13

namespace NomeDaNamespace {
using System;
using System.Data;
public class NomeDaClasse {
private int atributo;
public int somar(int valor1, int valor2) {
return valor1 + valor2;
}
}
}

Figura 6. Exemplo da composio de uma namespace

Para que a namespace possa ser utilizada, necessrio compil-la utilizando-se o


compilador de C#, que acompanha a instalao do .NET Framework, com algumas opes
particulares, tal como a necessidade de se gerar um arquivo .dll, que colocado no
diretrio bin abaixo do diretrio que contm as pginas ASP.NET que a utilizaro [Payne
2001]. Supondo que o nome do arquivo contendo a namespace se chame classe.cs, o
comando a ser executado o seguinte:
csc /target:library /out:.\bin\classe.dll classe.cs
csc

significa C Sharp Compiler, (Compilador de C Sharp) e possui vrias opes


que podem ser utilizadas. Alguns exemplos de opes a criao de arquivos executveis
e a opo de poder ser utilizado, ou no, por outros aplicativos.
Quando a namespace criada for utilizada em uma pgina ASP.NET, deve -se
importar a namespace, tal como era feito na com a namespace System.Data, nas figuras 2
e 3, por exemplo.

10

Referncias Bibliogrficas
Payne, Chris. Aprenda em 21 dias ASP.NET. Rio de Janeiro: Campus, 2001.
Microsoft .Net Framework SDK Documentation. Microsoft [2003].
ASP.NET Web: The Official Microsoft ASP.NET Site : Home Page . Disponvel em :
<http://www.asp.net> acesso em: 13 de outubro de 2003.
World Wide Web Consortium. Extensible Markup Language (XML). Disponvel em
<http://www.w3.org/XML/>. Acesso em 10/04/2003.

Você também pode gostar