O documento descreve os conceitos fundamentais de programação ASP, incluindo: (1) Páginas ASP possuem conteúdo dinâmico gerado por scripts executados no servidor; (2) Existem scripts de lado do cliente e scripts de lado do servidor; (3) VBScript é a linguagem padrão para scripts do lado do servidor em ASP.
O documento descreve os conceitos fundamentais de programação ASP, incluindo: (1) Páginas ASP possuem conteúdo dinâmico gerado por scripts executados no servidor; (2) Existem scripts de lado do cliente e scripts de lado do servidor; (3) VBScript é a linguagem padrão para scripts do lado do servidor em ASP.
O documento descreve os conceitos fundamentais de programação ASP, incluindo: (1) Páginas ASP possuem conteúdo dinâmico gerado por scripts executados no servidor; (2) Existem scripts de lado do cliente e scripts de lado do servidor; (3) VBScript é a linguagem padrão para scripts do lado do servidor em ASP.
Active Server Pages so pginas web que possuem contedo dinmico. Tais pginas consistem em arquivos de extenso .asp que contm combinaes de Server-Side scripts e tags HTML. Todo o cdigo de programao existente em pginas Asp executado no servidor, e este retorna ao cliente somente respostas em HTML padro Definio ASP Script uma sequncia de comandos que deve ser colocada em uma posio determinada na pgina ou como um arquivo anexado. Este script pode ser executado ou no lado do servidor (Server side) ou no lado do cliente (client-side). O que um script ? So cdigos de programa que so processados pela estao cliente. Geralmente em aplicaes voltadas Internet, o cdigo que executado no cliente cuida apenas de pequenas consistncias de telas e validaes de entrada de dados, em se tratando de pginas web, os client-side scripts tero de ser processados por um browser. Client Side scripts So cdigos de programa que so processados no servidor. Devido a este fato, no necessrio preocupar-se com a linguagem que o cdigo foi criado: o servidor quem se encarrega de interpret- lo e de devolver uma resposta para o cliente. Em pginas Asp, so esses cdigos os maiores responsveis pelos resultados apresentados, e a linguagem default utilizada o Visual Basic Script. Server Side scripts Server Side scripts Como funciona no Servidor O Visual Basic Script Language uma das muitas possibilidades de linguagem Script que rodam num servidor e, para o IIS, ela a linguagem default (padro). Desenvolver aplicaes utilizando esta linguagem no difcil. VBScript similar ao VBA (Visual Basic Application) linguagem criada para fornecer aos aplicativos outras funcionalidades ; Permite a manipulao de strings, datas e numricos; Permite a utilizao de todos os comandos do Visual Basic, porm no permite a manipulao de banco de dados e acesso aos perifricos. A manipulao de banco de dados feita atravs do objeto ADO, o VBScript apenas cria instncias deste objeto, a partir da, podemos utilizar os mtodos deste objeto para manipular os dados. Tem um mecanismo de comunicao com servidores de objetos COM, como o Microsoft Exchange Server, Microsoft Index Server, Database Servers.
Caractersticas VBScript Como os arquivos ASP so arquivos do tipo texto (ASCII), eles podem ser escritos em um editor de textos comum. Ex.: Notepad, Notepad ++, Dreamweaver, entre outros. Ambiente de Desenvolvimento Pginas ASP necessitam ser hospedadas no servidor Web da Microsoft: o Internet Information Server (IIS) na verso 3 ou superior. Este servidor deve ser instalado numa mquina NT Server 4 ou devemos utilizar-nos de outro servidor compatvel no nosso caso usaremos o BABY WEB SERVER. Pr-Requisitos de funcionamento Que browsers suportam ASP? Se a aplicao no possuir client-side script, todos os browsers suportam ASP. Isto acontece pelo fato das pginas ASP serem processadas pelo servidor. O que o cliente recebe somente cdigo HTML padro. Terei meu cdigo fonte protegido? Sim. Como o servidor retorna somente o resultado HTML, o cdigo fonte (lgica) fica preservado. Se, no browser, visualizarmos a fonte da pgina, veremos somente cdigo HTML. Dvidas O Microsoft Internet Information Server (IIS) o servidor web da Microsoft. nele que devemos configurar os alicerces das nossas aplicaes ASP, criando diretrios virtuais, definindo permisses de acesso e disponibilizando as aplicaes. atravs do Management Console do IIS que faremos estas configuraes. O Internet Information Server Vide Capitulo 1 da apostila Configurar IIS Windows Sintaxe Uma pgina asp igual a uma pgina html comum. Neste exemplo o arquivo ter o nome defaul.asp, para mostrar que a home page. <% @ language=Vbscript %> <html> <head> <title>Exemplo 1 </title> </head> <body> <% Response.write Al Mundo %> </body> </html> Sintaxe No exemplo ao lado veja que o cdigo ASP no case sensitive. <% @ language=Vbscript %> <html> <head> <title>Sintaxe </title> </head> <body> <% a = 5 b = 10 c = A + B Response.write O resultado da soma : & C % > </body> </html> Funcionamento, Conveno e Simbologia. Como Funciona o ASP? Qual a simbologia e a conveno usada na programao em ASP? ASP uma linguagem que veio para complementar a linguagem HTML. Ela traz para a linguagem HTML todo o poder do acesso a banco de dados, do acesso a arquivos texto, da captao de informaes de formulrio, da captao de informaes sobre o visitante e sobre o servidor, do uso de variveis, loops. Observe o cdigo abaixo: arquivo "olamundo.asp"
Variveis Servem para armazenar valore. Em VBScript os nome devem comear com uma letra e no exceder 255 caracteres.
Tambm podemos declarar uma varivel sem ter que utilizar o comando Dim, apenas atribuindo um valor a ela. <% @ Language=VBScript%> <html> <head> <title>Variveis</title> </head> <body> <% Dim nome Nome = Web professor = Luciano Response.write nome & professor %> </body> </html> Comando para Data Comando Explicao Exemplo Date() Retorna a data do Servidor Response.Write("Data:" & date()) Time() Retorna a hora do servidor Response.Write("Hora:" & time()) WeekDay() Retorna o numero do dia da semana Response.Write(WeekDay(date)) WeekDayName() Retorna o nome do dia da semana. Response.Write(WeekDayName(1)) Month() Retorna o numero do ms Response.Write(month(date)) MonthName() Retorna do nome do mes Response.Write(MonthName(month(date))) Application: Conjunto de pginas ASP de um diretrio virtual do servidor. Request: Representa os dados enviados para a pgina ASP por um formulrio ou link do Navegador do cliente. Response: Linhas da pgina de resposta gerada para o navegador do cliente. Server: Representao do servido Web onde as pginas ASP esto sendo executadas. Session: Representa uma sesso aberta com um cliente via navegador. Objetos Internos do ASP Esse objeto nos permite manipular dados relativos a toda aplicao ASP. Esses dados podem ser compartilhados em diversas sesses por vrios usurios, atravs de variveis e objetos de nvel de aplicao. O objeto Application tem a durao e o escopo da aplicao ASP, ou seja, enquanto o servidor Web estiver no ar, o objeto estar ativo desde o primeiro acesso a aplicao. No possuindo propriedades, esse objeto capaz de armazenar qualquer tipo de varivel em seu interior (encapsular). Objeto Application
Exemplo: Application O objeto Response se refere a todos os dados enviados do servidor para o cliente (usurio - browser), ou seja, qualquer informao enviada do servidor para o browser do usurio se utiliza do objeto Response. O Objeto Response response.write - permite enviar texto ao browser response.redirect - Redireciona o browser para um endereo especificado. response.buffer - avisa o browser do usurio que a pgina s dever ser mostrada aps ser totalmente carregada. interessante para usar com a funo response.redirect. response.cookies - grava informaes no cookie do browser Funes do Objeto Response: response.write envia textos ao browser. interessante na construo de textos que mixam textos prontos e variveis. sintaxe: response.write texto/varivel
<html> <head> <title>response.asp</title> </head> <body bgcolor="#FFFFFF"> <% response.write "Ol!!! Abaixo uma rotina com o objeto response.write cujo texto varia de acordo com a varivel counter for counter=1 to 5000 response.write counter & "->" next %> </body> </html> response.redirect response.redirect - redireciona o browser do usurio para a pgina especificada. Esta funo s pode ser usada antes do browser divulgar alguma informao na tela. sintaxe: response.redirect(URL)
<% 'A funo response.redirect redireciona o browser do cliente para o endereo contido na varivel URLnova, no caso, www.google.com URLnova = "http://google.com/" response.redirect(URLnova) %> <html> <head> <title>response.asp</title> </head> <body bgcolor="#FFFFFF"> </body> </html>
Response.buffer <% response.buffer = true %> < html> < head> < title> response Buffer< /title> </head> <body> <% response.write "Ol denovo!!! Abaixo o uso da funo response.buffer, a qual, quando tiver o valor true, avisa o browser para mostrar as informaes s depois de totalmente carregadas. Isto permite que haja um response.redirect em qualquer parte da pgina. Mas quando tiver o valor false, o browser mostra as informaes assim que elas vo chegando." response.redirect "http://www.superasp.com.br/" %> </body> </html> response.buffer - avisa o browser do usurio que a pgina s dever ser mostrada aps ser totalmente carregada. interessante para usar com a funo response.redirect. Response Cookies response.cookies - grava informaes no cookie do browser. <html> <head><title>cookies</title></head> <body> <% 'o comando time insere o horrio atual do servidor response.cookies("superasp")("horariovisita") = time %> </body> </html> 1. Crie um script utilizando ASP que exiba atravs de duas variveis seu nome e sua idade. 2. Crie um script utilizando ASP, declare as variveis do seu nome, o ano que voc nasce e o ano atual e ao final faa um calculo da sua idade exibindo a seguinte frase: Meu nome _______e tenho______anos. 3. Crie uma pgina ASP que escreva o seu nome completo de trs maneiras: com HTML, com HTML e ASP misturados e com ASP somente.
Exerccios O objeto Request se refere a todos os dados requisitados pelo servidor ao cliente, ou seja, qualquer informao requisitada pelo servidor ao browser do usurio.
Objeto Request request.form - recupera valores de variveis enviadas via formulrio pelo mtodo post. request.QueryString - recurepa valores de variveis enviadas via formulrio pelo mtodo get. request.servervariables - recupera informaes sobre o browser do usurio e sobre o servidor WEB. request.cookies - recupera informaes do cookie do browser do usurio. request.ClientCertificate - mostra informaes sobre o certificado de segurana do usurio. Somente usado em sites com transmisso segura de dados (https)
request.servervariables Info.asp <% response.write "" & request.Servervariables("remote_Addr") & "" response.write "" & request.Servervariables("server_name") & "" 'request.servervariables("remote_addr") busca o IP remoto do usurio 'request.servervariables("server_name") busca o nome ou IP do servidor %> request.servervariables - recupera informaes sobre o browser do usurio e sobre o servidor WEB. <HTML> <HAED> <TITLE>Teste 2 para ASP</TITLE> <HEAD> <BODY> <P> Isso um teste de script. <% If Time > #8:00:00AM# and Time < #5:00:00PM# Then strMsg= "Bem vindo ao trabalho." Else strMsg = "V para casa, ainda no hora de trabalhar." End If %> <P> Status da hora: <% = strMsg %> </BODY> </HTML> Scripts Nas rotinas ao lado o servidor automaticamente interpreta os scripts, e envia o cdigo HTML com o resultado automaticamente. Se voc um bom observador e curioso, verificou que ao examinar o cdigo fonte, a rotina ASP no aparece, mas somente a pgina formatada. Agora voc pode escolher como que so feitas as suas pginas (somente o cdigo script). Outra forma de produzir cdigo ASP, atravs de blocos de scripts. Estes esto sempre entre as tags <SCRIPT></SCRIPT>. Ento como diferencia- los dos blocos que sero processados no cliente ? <% @ LANGUAGE=VBScript %> <HTML> <HAED> <TITLE>Teste 2 para ASP</TITLE> <HEAD> <BODY> <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Calc (x) response.write (x*x) End Sub Comando imediato 'Dentro da rotina no necessita parnteses Calc 3 </SCRIPT> <% Comando imediato Fora da rotina necessrio os parnteses Call Calc (5) %> </BODY> </HTML> Exemplo VBScript Crie o seguinte cdigo ASP <center> <% response.write("Data: " & Date) %> <p>Todos os direitos reservados</p> </center> Salve como: rodape.asp Exemplo Crie o seguinte cdigo ASP <html> <head><title>Testando include</title> </head> <body> <!--#include file="rodape.asp"--> </body> </html> Salve como: home.asp Matemticos : Realizam operaes com nmeros e variveis do tipo numrica. - Comparativos: So usados quando voc quer comparar dois valores para fazer uma deciso, geralmente so usados dentro das instrues If else, do, while. Estes operadores retornam sempre um valor Booleano (True ou False) . - Lgicos: de um modo mais simplificado, pegam os resultados gerados pelos Operadores Comparativos, para depois gerar um resultado Booleano. Tambm geralmente so usados dentro das instrues If else, do, while - String ou o Operador de String digo porque geralmente usamos apenas o &, so usados na manipulao de Strings e/ou variveis de tipo String.
Tipos Operador Nome Exemplo Resultado + Adio num = 3 + 4 num = 7 - Subtrao num = 4 1 num = 3 * Multiplicao num = 3 * 2 num = 6 / Diviso num = 9 / 3 num = 3 ^ Exponencial num = 2 ^ 4 num = 16 Mod Resto da diviso num = 23 Mod 10 num = 3 - Negativo (oposto) num = -10 num = -10 \ Diviso Inteira num = 9 \ 3 num = 3 Operadores Matemticos Nos exemplos foram s usados valores numricos, mas tambm pode-se usar variveis. Ex. num = a*b
Exemplo Operador Nome Exemplo Resultado = Igual a d = e False < Menor que 4 < 3 False > Maior que 4 > 3 True <= Menor ou igual a 4 <= 3 False >= Maior ou igual a 4 >= 3 True <> Diferente 4 <>g True Operadores Comparativos Exemplo Operador Descrio Exemplo Resultado And Ambos devem ser VERDADEIRO, para resultar VERDADEIRO 4<3 and 3=3 False Or Pelo menos um deve ser VERDADEIRO, para resultar VERDADEIRO a <> b or 1 = 2 True Not Nega o resultado Not 4 > 3 False Operadores Lgicos Exemplo Operador Descrio Exemplo Resultado & Concatenao string = Te & amo string = Te amo Operadores String Exemplo Condicionais if, elseif e else Os condicionais if, elseif e else servem para checar se uma determinada condio satisfeita pela script. Pode parecer difcil de entender, mas vejamos alguns exemplos prticos para ver que bem simples o uso dos mesmos: Exemplo 1 <% variavel = 1 if variavel=1 then response.write Verdadeiro end if %>
No exemplo ao lado utilizado o if (que em portugus quer dizer "se") para checar se varivel igual a 1. Neste caso, temos exibido como resultado na pgina: "Verdadeiro".
Exemplo 2 <% variavel = 1 if variavel=2 then response.write Verdadeiro else response.write Falso end if %> No exemplo ao lado utilizado o if para checar se varivel igual a 2, caso ela no seja, ela ca ento na condio else (que em portugus quer dizer "seno"). Neste caso, temos exibido como resultado na pgina: "Falso". Exemplo 3 <% variavel = 2 if variavel=1 then response.write Varivel = 1 Elseif variavel=2 Then response.write Varivel = 2 else response.write Varivel diferente de 1 e 2 end if %> No exemplo ao lado utilizado o if para checar se varivel igual a 1, caso ela no seja, ento checado na condio elseif (que em portugus quer dizer "seno se") se ela igual a 2, caso ela no seja, ela ca ento na condio else. Neste caso, temos exibido como resultado na pgina: "Varivel = 2". Exemplo prtico O select case faz tambm a avaliao de uma condio e oferece algumas alternativas de acordo com o resultado obtido. A diferena que esses comandos so usados em situaes de vrias alternativas, enquanto que o IF mais adequado para uma ou duas alternativa. Comando Select Exemplo 1. Sabendo que a funo hour(now) exibe a hora atual, crie um cdigo que exiba uma saudao de bom dia para valor < 12 ou boa tarde para valor >= 18 seno Boa noite. Tente fazer usando o Comando if e depois o comando select case. 2. Ler a idade de uma pessoa e informar se ela maior ou menor. Se a pessoas tiver idade maior ou igual a 18 ela maior. 3. Escreva um programa em ASP que leia 3 notas, calcule a mdia e escreva se esta Aprovado, Reprovado ou Recuperao. Media>=7: Aprovado, Media <=5: Reprovado , Media>=5.1 e Media <=6.99: Recuperao. Exerccio Resposta Loops so rotinas que devem ser repetidas at que uma determinada condio seja satisfeita. Existem 3 comandos que permitem tal situao: Do...Loop For...Next While...Wend For...Each...Next
Rotinas de Loop O comando Do...Loop executa uma determinada rotina at que a condio se torne verdadeira. Observe o exemplo abaixo: <html> <body> <% x = 0 Do Until x=10 x = x + 1 Loop response.write x %></body> </html> Para interromper o Loop, usa-se o comando Exit Do
Do...Loop O comando For...Next executa uma determinada rotina at que o contador (uma varivel) atinja o valor determinado. Observe o exemplo: <html> <body> <% For i=1 to 50 response.write i next %> </body> </html>
Observe que no necessrio nenhuma rotina de incrementao de valores em i. A cada ciclo, o valor de i acrescido de uma unidade, automaticamente. Para interromper o Loop, usa-se o comando Exit For For...Next O comando While...Wend executa uma determinada rotina at que a condio imposta seja alcanada. Observe a imagem:
While...Wend Exemplo A diferena entre Loop For/Next que nesse novo loop executado para todos os elementos de uma matriz ou coleo em vez de usar um contador. Sintaxe: For Each elemento in group <instruo> Next Onde elemento o nome da varivel que receber cada item da matriz. o group o nome da matriz. For...Each...Next Exemplo As Sub-rotinas (podemos tambm cham-las de Sub) e as Funes so comandos, ou rotinas, que o programador pode executar a qualquer momento. Bastando apenas fazer o chamado a esta rotina. Sub-Rotinas e Funes 1) Sub-Rotina Sub nome(parmetros/argumentos) <instrues> End Sub 2) Funo Function nome(parmetros/argumentos) <instrues> End Function
Declaraes Reutilizar cdigo Basta apenas chamar a rotina (Sub ou Funo). No sendo necessrio escrever o cdigo novamente. Exemplo: Vamos supor que em 3 pginas do nosso site (ou sistema), precisamos validar o CPF ou CNPJ de clientes. No precisamos fazer a programao 3 vezes. Basta fazer uma rotina para essa validao, e apenas cham-la quando necessrio. Cdigo modularizado As rotinas nos facilitam a achar erros. Facilitando a manuteno de cdigos.
caractersticas das Sub-rotinas e Funes Para realizarmos a chamada a estas rotinas, precisamos utilizar a seguinte sintaxe: 1) Sub-rotinas H duas maneiras de chamarmos as Sub-rotinas: o nome_da_Sub ou nome_da_Sub par1, par2 (onde par1 e par2 so parmetros). o Call nome_da_Sub() ou Call nome_da_Sub(par1, par2).
Chamada de rotina Exemplo sem Parmetros Exemplo com Parmetros Exemplo tabuada Podemos colocar o resultado de uma funo, numa varivel. Basta apenas seguir a sintaxe: variavel = nome_da_funcao(par1, par2) E se quisermos terminar uma rotina antes do esperado? Para isso utilizamos a chamada Exit. Funes Exemplo 1 Exemplo 2 VBScript oferece algumas funes embutidas. Cada uma delas executa uma determinada funo e tem um valor de retorno. Exemplo de funes embutidas so as de converso de tipo de dados. Funes Embutidas Exemplo 1 Exemplo 2 Formulrios so o caminho natural para os usurios enviarem informaes para o ASP. Formulrios podem ser HTML ou ASP dependendo das capacidades dinmicas que voc quer. O Formulrio deve passar variveis para o arquivo ASP para processar os dados.
Formulrios <form action="x.asp" method=get> .... <input type=submit><input type=reset> </form> O formulrio pode mostrar as informaes dos campos na tela do browser. Um script ASP pode pegar os dados dos campos do formulrio da seguinte forma: <%varivel=request.querystring("nome_do_campo")%>
Formulrio com GET Exemplo <form action="x.asp" method=post> .... <input type=submit><input type=reset> </form> O formulrio no mostrar as informaes na tela do browser. Ele enviar para o arquivo especificado no action do form e este arquivo far o tratamento das informaes. Um script ASP pode pegar os dados dos campos do formulrio da seguinte forma: <%varivel=request.form("nome_do_campo")%>
Formulrio com POST Exemplo Caixa de texto onde se pode inserir qualquer tipo de texto Formulrios - Text Box Exemplo O comando TEXTAREA cria uma caixa de texto com mltiplas linhas, conforme segue: <TEXTAREA NAME="Comentrios" ROWS=5 COLS=50> ... o texto padro digitado aqui </TEXTAREA> Nota: O browser geralmente coloca a scroll bars automaticamente.
Formulrios - Text Area Exemplo Todos os inputs no formulrio devem ter seu nome nico que o identifica para uso do script ASP. Os Radio Buttons so uma excesso. Entre as opes dos Radio Buttons, somente um valor ser passado para o script ASP, isto implica que todas as opes tenham o mesmo nome. O boto selecionado como default deve ser indicado com o comando CHECKED. Isso importante porque o browser enviar ao ASP um nome e um valor referente ao boto selecionado pelo usurio. O browser no enviar para o ASP o texto que est associado com o boto. Como no exemplo, se o usurio checar o boto com o texto SALVADOR, o ASP receber Cidade = SSA Formulrios - Radio Buttons Exemplo O objeto checkbox tem as mesmas linhas de cdigo dos radio buttons, entretanto cada checkbox deve ter um nico nome porque o estado de "checked" ou "not checked" ser passado para o script ASP. Lembre-se que voc pode marcar mais de uma opo. Formulrios - Check Boxes Exemplo O objeto listbox muito usado para facilitar a entrada do usurio. apenas um lista pull down. Formulrios - List Boxes Exemplo Formulrio Multi sesso Selecao.asp Selecao.html Quando o usurio preenche um formulrio, chamada ento uma rotina que verifica cada campo do formulrio e informa ao usurio queira campos ele esquecer de preencher e que se tornam necessrios, caso isto realmente acontea. Uma mensagem de erro ser mostrada na tela. Validar formulrio Valida Form. Reproduza o seguinte formulrio:
E recupere as informaes usando os mtodos GET e POST. Exerccio Formulrio O objeto SESSION, utilizado para guardar informaes sobre o usurio. Podemos colocar em sesses desde simples variveis como cor de fundo da pgina ou autenticao do usurio em um site restrito. Objeto SESSION So criados quando um usurio inicia uma aplicao ASP, e destrudas quando o tempo de sesso expira. O tempo determinado no arquivo Global.asa. No exemplo abaixo a sesso ir expirar em um intervalo de 5 minutos aps aberta: <%Session.Timeout=5%> Para abandonar a sess, por exemplo, quando o usurio clica em LogOut, utilizamos: <%Session.Abandon%>
Quando so criados os Objetos e quando so destrudos? Tenho uma aplicao que exige login de usurio. Na pgina onde o usurio autenticado, utilizamos o seguinte formato: <%Session("username")=Request.Form("nomeusuario")%>
Como guardar variveis nas sesses??? Um simples exemplo onde instancio na sesso Username, o valor do campo Nomeusuario do formulrio anterior. Podemos criar uma pgina de incluso para verificar se o usurio est validado ou no: <%if usuariovalidado = true then session("logado") = "true" else session("logado") = "false" response.redirect("erro.asp") end if%>
Verificando se o usurio est logado Ao Cdigo Mudar tempo de expirao de Sesses
<% Session.Timeout = 60 %> Criando uma varivel de Sesso (Session)
<% Session (variavel) = teste %> Imprimindo um vetor de Sesso (Session)
<% Response.WriteSession(CarrinhoCompras)(1)) %> Imprimindo o SessionId do usurio
<%= Session.SessionId %> Criando um vetor de Sesso (Session)
<% Dim CarrinhoCompras(20) CarrinhoCompras(0) = carro CarrinhoCompras(1) = casa Session(compra) = CarrinhoCompras %> Aes O arquivo global.asa um arquivo opcional de uma aplicao ASP. Podemos trabalhar sem ele, mas ele oferece muitas vantagens ao desenvolvedor. Ele um arquivo texto, utilizado para centralizar em um nico local a declarao de objetos e procedimentos do tipo Session e Application. O que Global.asa O arquivo global. Asa contm quatro eventos: Application_OnStart; Application_OnEnd; Session_OnStart; Session_OnEnd. Eventos Global.asa Estrutura Aplicao Controle de acesso das variveis Application: Para evitar problemas quando um cliente acede a uma destas variveis, existem 2 mtodos que fundamental implementar: Lock e Unlock. O mtodo Lock impede a partilha da varivel. O mtodo Unlock liberta esse bloqueio, de modo a que outros clientes lhe possam aceder.