Utilizar o mesmo formato de cabeçalho para iniciar os códigos ASP:
< %@ Language="VBScript"% >
''=====================================================
'' RESUMO DESCRITIVO DA PÁGINA
''=====================================================
'' Empresa: NOME DA EMRPESA
'' Cliente: NOME DO CLIENTE
'' Projeto: NOME DO PROJETO '' Gerentes: NOME DOS GPS
''====================================================
'' Nome da página: CadastrarNononono.asp
'' Data de criação: 20 de Agosto de 2008
'' Autor: Luiz Agnelo
'' Funcionalidade: Contém o processo de cadastramento
'' de que ........ da EMPRESA.
''====================================================
'' Atualizações:
''
''====================================================
Obrigar a declaração de variáveis
Sempre utilizar a opção explicita de declaração de variáveis, desta forma fica obrigado a utilização do Dim e Const.
Option Explicit
Para facilitar a leitura, podemos declarar a variável e na mesma linha setar sua ação ou valor:
Dim strNome : strNome = Request.form("strNome")
Tipagem de variáveis
No ASP não é definido o tipo da variável, mas para facilitar, podemos inserir o tipo antes do nome da variável. Com isto evitaremos confusão na hora de instanciar valores:
Dim strNome ' String
Dim intConta ' Inteiro
Dim blnVerifica ' Boleano - True/False
Bibliotecas para Includes
Ao incluir trechos de código, utilizamos conforme abaixo:
< !--#include virtual="/planilha.asp"-- >
< !--#include file="planilha.asp"-- >
As diferenças entre realizar o include "virtual" ao invés de "file" consistem em que a primeira tem em conta a raiz de seu domínio e com a segunda se tem em conta o lugar onde está o documento no qual estamos incluindo o arquivo.
À princípio, pode ser mais útil trabalhar com o modo "virtual" pois se movemos de diretório as páginas de nosso site os includes continuarão funcionando.
Como boa prática, podemos agrupas todos os includes no topo de nossa página, como no exemplo a seguir:
% >
< !--#include file="../comum/libSessao.asp" -- >
< !--#include file="../comum/libFuncoes.asp" -- >
< !--#include file="../novo layout/t_begin.asp" -- >
< !--#include file="../novo layout/t_head.asp" -- >
< %
Agrupar variáveisde mesmo tipo
É interessante declararmos e setarmos valores para variáveis de mesmo tipo ou de mesmo contexto em blocos de códigos separados:
'===========================
' DEFINE VARIÁVEIS DE SESSÃO
'===========================
Session("TelaAnterior") = "javascript: window.history.go(-1);"
Session("strTituloPagina") = "Cadastro de XXXXX"
Session("arquivosCSS") = "css/layOut"
Session("CaminhoDaPagina") = "NoNoNoNo > Cadastro"
Session("libsJS") = "clsNONononono"
Set ObjNononon = Server.CreateObject("PCL_Nononono.CL_NOnonono")
Set RsNonononn = ObjNononon.fRetornaNononono(valor)
Instância de Objetos e coleções
Ao setar um novo objeto ou carregar um RecordSet com uma coleção de dados, devemos instanciar seus valores em variáveis locais e logo desalocar estes espaços na memória:
Dim RsTeste
Dim VarLocal01
Dim VarLocal02
Dim VarLocal03
VarLocal01 = ""
VarLocal02 = ""
VarLocal03 = ""
Set ObjTeste = Server.CreateObject("PCL_Teste.CL_Teste")
Set RsTeste = ObjTeste.fRetornadados()
If Not RsTeste.Eof Then
VarLocal01 = RsTeste("campo_01")
VarLocal02 = RsTeste("campo_02")
VarLocal03 = RsTeste("campo_03")
.
.
.
End If
Set ObjInforme = Nothing
Set RsInforme = Nothing
Trechos de Códigos Cliente
Todo código javascript deve estar contido dentro das tags:
<html>
<head>
<title>< %= Session("strTituloPagina") % ></title>
<meta name="author" content="Equipe WebSeguros WSG">
<meta http-equiv="expires" content="0">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="content-type" content="charset=iso-8859-1">
<script type="text/javascript" language="JavaScript" src="teste.js"></script>
<script type="text/javascript" language="JavaScript">
var varGlobal1;
var varGlobal2;
function Teste()
{
}
</script>
</head>
Inicializar JavaScript
Apenas por padronização, podíamos usar o seguinte código, ao invés de incluir tudo nas tags HTML do FORM ou BODY, como antes:
ANTES:
<body onload="sMostrarGuiaCliente();
gflgTipoPessoa = gobjProposta.flgTipoPessoa;
sPreencheDadosProposta();
sPreencheComboBoxUF(document.forms[0].cboUFCorrespondencia);
sPreencheComboBoxUFAgendamento();
sLiberaCamposDebitoAutomatico();">
RECOMENDADO:
<script type="text/javascript" language="JavaScript">
function inicializar()
{
Formulario = document.forms[0];
sMostrarGuiaCliente();
gflgTipoPessoa = gobjProposta.flgTipoPessoa;
.
.
.
sLiberaCamposDebitoAutomatico();
}
window.onload = inicializar;
</script>
Submeter um Formulário:
Regra básica, não submeter um formulário usando recurso do HTML, usar sempre javascript como no exemplo abaixo:
ERRADO:
<body>
<form action="pagina_destino.asp" method="post">
<input type="submit" id="btnLiberar" value="Salvar" />
</form>
CERTO:
<head>
<script type="text/javascript" language="JavaScript">
function submeter()
{
if (Faz_a_validação_dos_campos(Formulario))
{
Formulario.action = "pagina_destino.asp";
Formulario.method = "post";
Formulario.submit();
}
}
</script>
</head>
<body>
<form action="#" method="POST">
<input type="button" id="btnLiberar" onclick="submeter();" value="Salvar" />
</form>
</body>
Tratamento de Erros
Outra Regra básica, não usar o On Error Resume Next quando não houver tratamento de erro, fica totalmente sem sentido na página, pois apenas esconde o erro e gera inconsistência de dados, exibindo informações equivocadas para o usuário, já que o erro não esta sendo tratado como deveria. Prática correta:
On Error Resume Next
If Err.number > 0 Then
Trata o erro e exibe de forma amigável para o usuário.
End If