Olá a todos, para quem não me conhece chamo-me Henrique Graça e há uns meses atrás fui responsável por trazer até ao nosso PPLWARE tutorias de C# em Windows Forms, neste meu regresso vou falar novamente de c# mas para Web Forms, é claro que estou a falar de ASP.NET.
O que é? Feliz ou infelizmente cada vez mais nos estamos a virar para o “mundo” da WEB e para a CLOUD. A prever isso a Microsoft lançou já há alguns anos o ASP.NET (Active Server Pages), que ao contrário do que se diz não é uma linguagem de programação mas sim uma Framework para desenvolvimento WEB. Como é uma Framework assente na Framework .NET podemos usar para programar as linguagens C# e VB.NET. Em ASP.NET criamos páginas (WEB Forms) dinâmicas em que o código é corrido no servidor como é o caso de outras tecnologias (PHP, JSP).
Pressupostos: Não que seja imperativo mas para sermos bons programadores de WEB, antes de sequer abrir o Visual Studio, temos de entender o mundo que vai por trás do browser. Temos de entender o protocolo HTTP, Request / Response, ciclos de vida de uma página, diferença entre cliente e servidor, State Management, PostBack, JavaScript, CSS e claro HTML. Não irei falar sobre tudo isto, apenas do que está relacionado com o ASP.NET, mas é bom sabermos o que está por detrás de cada acção que fazemos no browser
Cliente VS Servidor: Como já referi uma Web Form ASP.NET é executada do lado do servidor, o que significa que cada vez que pedimos (Request) essa página ela é executada no servidor e posteriormente devolvida (Response) para o browser em HTML, esta operação ocupa largura de banda e tempo, logo se o podermos evitar ou então não enviar a página toda melhor (Partial PostBack (AJAX)), podermos concretizar isso usando JavaScript, que é uma linguagem que corre directamente no Browser (Cliente) ou AJAX (Javascript assíncrono e XML). Não significa que no cliente é melhor ou que no servidor é mais seguro, o grande desafio das WebForms é a fusão entre código do lado do cliente e servidor, tornando assim a página rápida e menos pesada.
PostBack: O PostBack é o nome que se dá à operação de Request e Response, ou seja, quando uma página inteira e o seu conteúdo são enviados para o servidor, processados e devolvidos para o browser. Sabem quando fazem refresh a uma página ou carregam num botão e o browser fica branco e depois aparecem os conteúdos? É isso um PostBack. Mais tarde falaremos da propriedade Page.IsPostBack do ASP.NET. Felizmente existem formas de contornar isso graças ao AJAX que permite que sejam só enviados pedaços da página e de modo assíncrono o que permite continuar a trabalhar sem o browser bloquear.
Ciclos de vida de uma página: Falaremos aqui do mais importante e utilizado o Load. É a melhor altura para fazer acções devido ao facto de que os controlos já estão todos carregados, o viewstate disponível e ainda não é tarde para fazer alterações pois não chegou ao Render que é quando o HTML da página já está todo desenhado. Para mais informações podem seguir este link: http://msdn.microsoft.com/en-us/library/ms178472.aspx
State Management: Entende-se por State Management a capacidade do ASP.NET poder guardar informação entre PostBacks da mesma ou de outras (várias) páginas. Existem várias opções relacionadas com desempenho e capacidade, cliente ou servidor:
Do lado do cliente:
View State: o view state “vive” nas páginas, se por curiosidade virem um source code de um aspx (extensão das páginas ASP.NET) vão reparar numa data de “gatafunhos” contidos num Hidden Field chamado viewstate. O viewstate é criado a partir de cada controlo que adicionamos á nossa página para, entre postbacks, poder manter o seu valor.
Ex: Temos uma caixa de texto na página e ao carregar num botão a página faz postback mas o valor permanece na caixa de texto. Vantagens: Simples, não requer implementação Desvantagens: Não é recomendado para guardar muita informação pois a página ficará lenta.
Hidden Fields: Uma espécie de variável global na própria página Vantagens: Fácil implementação Desvantagens: Pouco seguro (ao ver o source da página está lá o valor) e claro pesa na página
Cookies: Todos já ouvimos este termo, são pequenos ficheiros guardados no lado do cliente para poupar viagens desnecessárias ao servidor. Vantagens: Pode ser configurado o tempo de expiração e simples implementação Desvantagens: Pouca capacidade de armazenamento, cliente tem de aceitar cookies, pouco seguro pois o cliente pode alterar as informações.
Do lado do Servidor:
Application State: Informação guardada no servidor disponível em todas as páginas e utilizadores até que o processo da aplicação termine. Vantagens: Variáveis globais, fácil implementação. Desvantagens: Ocupa memória no servidor.
Session State: Informação guardada no servidor disponível em todas as páginas enquanto a sessão do utilizador estiver disponível (mesmo Browser), tem limite de tempo de inactividade. Vantagens: Variáveis globais, fácil implementação. Desvantagens: Ocupa memória no servidor.
Ferramentas úteis para ajudar no desenvolvimento e debug: Firebug: http://getfirebug.com/ Fiddler: http://www.fiddler2.com/fiddler2/ Debugger do Internet Explorer 8
Por hoje dou por terminado o tutorial, até ao final desta época de tutoriais teremos concluído um site para um clube de vídeo. Vamos usar Master Pages, Ajax e várias técnicas para construir o site.
Como sabem estou aberto a sugestões e espero que gostem deste nosso novo desafio. Cumprimentos a todos.