Introdução ao ASP.NET

O que é?

ASP.NET é uma tecnologia da Microsoft para a criação de aplicações dinâmicas para a Web. Com ele pode ser feito desde websites dinâmicos até aplicações complexas; além Web Services.

ASP.NET não é uma linguagem de programação, como o ASP, e sim uma plataforma de desenvolvimento. Nele pode-se utilizar linguagens como C#, VB.NET, J# e Python para a construção das aplicações. Isso devido a ele utilizar o Common Language Runtime (CLR) da plataforma .NET da Microsoft. Com o CLR o desenvolvedor terá, além da possibilidade de ter várias linguagens a sua disposição, recursos como garbage collection e o debugger funcionando com qualquer uma dessas linguagens.

Controles

Um dos recursos do ASP.NET são os controles. Com eles o programador consegue ter acesso aos elementos HTML diretamente na linguagem de programação. Podendo acessar, por exemplo, um TextBox de um formulário e alterar suas propriedades. Uma vantagem evidente nesse recurso é facilidade de criar uma aplicação web, pois o desenvolvedor precisa apenas ter uma boa familiaridade com uma linguagem de programação, como o C#, para poder fazer aplicações ricas e interessantes.

Alguns tipos de controle

Nos guiando pelos exemplos que foram dados em aula da célula CIN.NET, onde falamos um pouco sobre controles que são freqüentemente usados, vejamos um exemplo de uso:
Um dos mais simples é o button:

Localização do Button no VS
Fica do lado esquerdo do visual web developer, na caixa Toolbox. Para utiliza-lo basta clicar nele e arrastar. Pronto. já está disponível para uso. E para ter acesso a ele basta especificar um ID na caixa de propriedades. Com esse ID você já poderá acessa-lo na linguagem de programação, como no exemplo abaixo:
(eu coloquei o ID do Button como sendo testeButton)

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page
{
/**
* sempre que essa página for carregada no navegador do usuário
* esse evento será chamado.
*/
protected void Page_Load(object sender, EventArgs e)
{
//O texto que aparecerá no Button ao inciar a página
testeButton.Text = “Testando os elementos html do ASP.NET”;
}
/**
* Quando o testeButton for clicado, esse evento será chamado
*/
protected void testeButton_Click(object sender, EventArgs e)
{
// muda o texto do botão para “Teste feito, funciona?”
testeButton.Text = “Teste feito, funciona?”;
}
}

o resultado desse pequeno teste deve ser esse:
Exemplo com o button

Abaixo está uma tabela com alguns controles:

Função Nome
Mostrar texto Label
Edição de texto TextBox
Selecionar de uma lista DropDownList
ListBox
Exibir elemento gráfico Image
AdRotator
Seleção de valores em um formulário CheckBox
RadioButton
Seleção de data Calendar
Botões Button
LinkButton
ImageButton
Controle de navegação HyperLink
Controles para tabelas Table
TableCell
TableRow
Controles para fazer o agrupamento de outros controles CheckBoxList
Panel
RadioButtonList
Controles para fazer listagens Repeater
DataList
DataGrid

Além desses controles que servem HTML, há outros controles como os de validação de formulário; que são utilizados para informar ao usuário quando um elemento do formulário é de preenchimento obrigatório. Para informações mais elaboradas como um email, pode-se usar expressões regulares para definir como é o formato da informação que será válida.

Master Pages

Controles são muito interessantes, mas além desse tipo de recurso, o ASP.NET provê também ferramentas para o aumento da produtividade e reuso de código; Como as master pages, utilizadas quando tem-se uma parte do site que é repetida em várias vezes, como um menu estático ou um cabeçalho ou rodapé.
Para criar uma master page cliqua-se em “File >> New File >> Master Page”.
Ela vem, basicamente, em branco e com um campo chamado ContentPlaceHolder. Esse campo será onde o conteúdo que muda em cada página vai ficar. Todo o resto da página vai ser mantido para todas as páginas que utilizam essa master page. Então, para criar um cabeçalho, por exemplo, basta cria-lo em cima do ContentPlaceHolder, como abaixo

Exemplo com master page

Web.Config

O web.config é um arquivo XML usado para definir preferências e configurações de cada aplicação ASP.NET. Há uma interface gráfica para manipular esse arquivo e ele é acessível também para ser alterado em qualquer editor de texto. configurações de autenticação, acesso, compilação, erros, conexão, email… E é estruturado de forma hierárquica, possibilitando ao desenvolvedor aplicar também configurações a um subdiretório específico.

Para acessar a interface gráfica para essas configurações clique em “Website >> ASP.NET Configuration”, e abrirá uma página que nela você pode navegar e editar suas preferências.

Anúncios

Usando System.Drawing no ASP.NET

Olá Pessoal,

Na nossa lista de discussão foi gerada uma pergunta sobre como se usa System.Drawing no ASP.NET. Como a explicação desse assunto envolve vários conceitos interessantes, Daniel me incentivou a publicar este post para responder com mais detalhes.

Existem algumas diferenças básicas na utilização do System.Drawing com Windows Forms e com ASP.NET. A principal delas é que no Windows Forms a plataforma .NET pode fazer chamadas ao sistema para acessar a placa de vídeo do usuário, então você pode desenha diretamente na tela do cliente. Enquanto que no ASP.NET sua aplicação estará rodando em um servidor e o cliente estará mandando requisições e recebendo respostas da sua aplicação possivelmente a quilômetros de distância.

1º Conceito interessante: Requisições

Sabemos que quando um usuário digita o endereço de uma página HTML, o seu browser irá requisitar esta página para o servidor de destino. O que não vemos são as reuisições subsequentes: por exemplo, se nessa página tem uma tag do tipo <img src="imagem.jpg" /> o browser irá enviar uma nova solicitação ao servidor para receber esta imagem. As respostas do servidor contém em seus cabeçalhos informações inerentes à resposta que está enviando, entre elas o tipo da resposta. No caso onde o browser requisitou um documento HTML, o servidor enviou uma resposta que havia em seu cabeçalho a informaçao “content-type: text/html” enquanto que na requisição da imagem, o servidor responde informações com “content-type: image/jpeg”

2º Conceito interessante: No ASP.NET, nem tudo é HTML

No ASP.NET temos a idéia natural de que trabalhamos apenas com páginas web e HTML. Isso é verdade em 99,9% dos casos, mas é bom termos em mente o seguinte: O ASP.NET é feito para gerenciar requisições feitas ao servidor. Essas requisições podem gerar todo tipo de resposta para o cliente (arquivos de imagem, arquivos zip, arquivos pdf, arquivos XAML) e não apenas HTML. Cabe ao programador informar que tipo de resposta será gerada.

Exemplo prático

Para exemplificar o que foi dito acima vamos fazer uma pequena demonstração prática. A idéia é fazer um arquivo Drawing.aspx que, quando for enviada uma requisição a ele, irá devolver uma imagem jpg com um texto passado por parâmetros, como pode ser visto na imagem abaixo:

OlaMundo

Vale ressaltar que neste exemplo, o texto Ola Mundo não é um texto em HTML e sim uma imagem JPEG gerada dinamicamente, à partir do texto informado na barra de endereços. Pode parecer complicado, mas na verdade não é. O primeiro passo, logo após criar o arquivo Drawing.aspx é limpar todo o conteúdo HTML que é gerado automaticamente pelo visual studio, deixando apenas a primeira linha de cabeçalho:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Drawing.aspx.cs" Inherits="Drawing" %>

Depois disso, basta que adicionemos o seguinte código ao Page_Load de Drawing.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
string msg = Request.QueryString["msg"];

//Nesta parte redefinimos o tipo de resposta do servidor
Response.ContentType = "image/jpeg";

if (msg != null)
{
Font fonte = new Font("Calibri", 16, FontStyle.Bold);
Brush pincelAzul = new SolidBrush(Color.Blue);
Brush pincelBranco = new SolidBrush(Color.White);


Bitmap bmp = new Bitmap(300, 30);
Graphics graf = Graphics.FromImage(bmp);
graf.FillRectangle(pincelBranco, 0, 0, 300, 30);
graf.DrawString(msg, fonte, pincelAzul, 0, 0);

//Esta é a parte que salva o Bitmap na OutputStream
//A OutputStream é justamente um objeto que guarda tudo
//o que vai ser enviado ao usuário. No caso de requisições
//feitas para este arquivo .aspx, o que será retornado
//ao usuário será uma imagem em formato jpeg em vez de um
//documento HTML

bmp.Save(Response.OutputStream, ImageFormat.Jpeg);
}
}

O projeto pode ser baixado aqui

Espero que tenha conseguido passar um pouco dos aspectos interessantes de se usar System.Drawing no ASP.NET. Apesar do exemplo construído aqui não ter muita utilidade em si, podemos imaginar várias situações onde este conhecimento pode vir a ser útil.

Abraços a todos!

Publicado em ASP.NET, C#. 1 Comment »

Começando no ASP.NET

Olá amigos!

Como nossa célula está dando um restarting com novo foco em desenvolvimento web, resolvi garimpar alguns links muito bons para auxiliar quem ainda não conhece ASP.NET e já quer começar a botar a mão na massa. Vale a pena conferir: