ASP.NET Tutorial 3
Olá a todos, estou de volta com mais um tutorial, quero novamente agradecer o apoio de todos os que acompanham estes tutoriais.
Hoje vamos falar dos ficheiros mais importantes do ASP.NET.
Web.Config:
Este é o ficheiro mais importante de uma aplicação ASP.NET.
Tem o formato XML para fácil entendimento, e serve para guardar todas as configurações da nossa aplicação e variáveis que sejam comuns a toda a aplicação, tais como a cultura, strings de conexão, controlo de acessos, etc.
Só pode existir um Web.Config por aplicação.
Utilização: Para utilizar o Web.Config temos de adicionar Keys e o respectivo valor:
Como podem ver adicionei uma Key e um Value e temos criada uma variável que persiste por toda a nossa aplicação. A tag connectionStrings é indicada para guardar as strings de conexão porque podemos codificar os valores e oferece mais funções que o appsettings.
Para utilizar estes campos no código:
Utilizando a classe System.Configuration.ConfigurationManager podemos aceder aos valores do Web.Config e depois utiliza-los no nosso código em todas as páginas do nosso projecto.
Global Application Class (.asax):
É um ficheiro opcional, apenas podendo existir um, mas de muita importância. Permite declarar objectos que persistem pela aplicação e por todos os utilizadores e apanhar eventos a nível da sessão e aplicação.
Os métodos mais utilizados são:
- Application_Start: Acontece quando a aplicação inicia.
- Session_Start: Acontece quando a sessão do utilizador inicia.
- Application_BeginRequest: Acontece cada vez que é feito um request
- Session_End: Acontece quando a sessão termina ou faz time out
- Application_End: Acontece quando a aplicação termina ou faz time out
Utilização:
Como podem ver declaramos objectos do tipo Application e atribuímos-lhe um valor. Neste exemplo criei um contador para mostrar quantos utilizadores estão online na aplicação. Cada vez que entra um novo utilizador é incrementado o valor da variável. Estou a contabilizar também o número de requests.
Utilização no código:
Tal como referi o objecto Application encontra-se por toda a aplicação, assim basta utilizar Application[“nome da Key”] para aceder aos valores.
Generic Handler (.ashx)
É um Handler HTTP genérico que funciona como uma página ASPX normal mas sem a sequência de eventos tão ampla que são necessários para o render de uma página, ou seja, é como trabalhar em baixo nível.
Testes comprovam também que têm uma performance melhor que as páginas “normais”. Os valores têm de ser passados por QueryString.
Uma boa utilização para este objecto é a apresentação de imagens.
Utilização:
Depois de adicionar o objecto ao nosso projecto vemos que ele implemeta o interface IHttpHandler . Adicionamos código ao método ProcessRequest que nos irá devolver a soma de dois valores passados por QueryString.
Utilização no código:
Para já ignorem a função createXMLHttpRequest, falaremos dela depois. O que interessa ver é a forma como chamamos o nosso handler.
var campo1 = document.getElementById("campo1").value; var campo2 = document.getElementById("campo2").value;
Estas duas linhas de código servem para podermos aceder aos valores das caixas de texto do lado do cliente, passando esse valor para variáveis.
xmlHttpReq.open("GET", "Handler1.ashx?campo1=" + campo1 +"&campo2=" + campo2, false);
Depois passamos essas duas variávies por QueryString para o nosso Handler.
O Handler vai devolver a soma e escreve-la na nossa página.
document.getElementById("Resultado").innerHTML += " " + xmlHttpReq.responseText;
Depois deste código todo o resultado da aplicação:
Como podem ver tenho duas janelas abertas e a aplicação mostra que realmente estão 2 utilizadores. As somas funcionam na perfeição. E tudo isto feito sem refrescar a página.
Esse será um dos meus principais objectivos destes tutoriais usar e abusar de AJAX e CALLBACKS.
Download: ASP.NET - Tutorial 03 [20.41KB]
Espero que tenham gostado, qualquer questão não hesitem. Para a semana vamos falar de passagem de parametros e persistência de dados.
Este artigo tem mais de um ano
É bom relembrar os velhos tempos de .NET 🙂
Ah, uma questão, as imagens de anterior e próximo do Lightbox não deixam ver parte dos códigos… elas não saem mesmo se tirar o mouse de cima da imagem…
Tens razão. Para contornar, botão direito do rato e abrir num novo separador. Peço desculpa… este definitivamente é um plugin difícil de encontrar o ideal.
Já agora, os atalhos ‘N’ e ‘P’ também não funcionam.
Viva Henrique,
Obrigado por mais um bom artigo. Queria perguntar, e os restantes leitores também podem opinar, quais os riscos (se é que existem) em ter a password da connection string no web.config?
Nenhuma, porque o IIS restringe o acesso remoto ao ficheiro.
Boa noite,
Como mencionou o @JoniD, remotamente é muito difícil aceder ao Web.config.
Agora se o teu problema for interno, podes sempre utilizar “integrated security=true” em vez de username e password para bases de dados SQL, ou então, usar dois métodos de encriptação disponíveis na Framework:
RSAProtectedConfigurationProvider
DataProtectionConfigurationProvider
Estes métodos escondem os valores da connectionstring.
Falarei disso num tutorial mais para a frente.
Cumprimentos,
Henrique Graça
Eu só quero dar força ao Henrique Graça pelos excelentes tutoriais.
Não tenho tido tempo para acompanhar, mas vou guardando para ler mais tarde.
Continuem e mais uma vez obrigado
Boa noite,
muito obrigado pela força e continua atento aos tutoriais 🙂
Cumprimentos,
Henrique Graça
Viva Henrique,
Desde já te felicito pelo excelente trabalho nestes tutoriais.
Gostaria de perguntar se conheces algum cms (Content management system) ou frameworks opensource alem do DotNetNuke em c#.
abraço.
Ricardo Santos
Boa tarde Ricardo,
Existem mais alguns, não sei se melhores, mas até a Telerik tem um (Pago e Free).
Um bom truque para veres todos é instalares o Web Platform Installer da Microsoft
http://www.microsoft.com/Web/
Ou ir directamente aqui:
http://www.microsoft.com/web/gallery/Categories.aspx?category=ContentMgmt
Aqui encontras todos os programas e plugins necessários.
Cumprimentos,
Henrique Graça
Fui a esta página http://www.microsoft.com/exPress/download/ mas não sei qual o visual studio adequado… Alguém me ajuda?
Cumprimentos.
Olá,
De facto asp.net é mesmo muito dificil de aprender
Pior ainda que o PHP
Um abraço
César Oliveira
Primeiro queria dar os parabéns pelos fantásticos tutoriais. Já me encontro a trabalhar com ASP.Net profissionalmente a quase um ano e mesmo assim encontro aspectos que ainda desconhecia.
Queria também dar uma dica, se calhar mais avançada, sobre os eventos da sessão. Por defeito estes são despoletados pois se nada for definido a sessionState esta em modo “InProc”. Se o modo for diferente os eventos já não são despoletados.
Para mais informação sobre os modos da sessão podem visitar este site:
http://msdn.microsoft.com/en-us/library/ms178586.aspx