Desta vez não vamos de "
Hello world", evitando ao máximo perder tempo.
Vou supor que você já sabe lógica básica e tem algum tipo de conhecimento em alguma linguagem de programação ao menos, portanto com isso em mente evitarei entrar em detalhes maiores. Vou me ater a mostrar variáveis, condições e looping num primeiro momento e se alguma dúvida mais específica surgir utilizem a caixa de comentários abaixo.
Existem quatro formas de declarar variáveis no ASP-C
Como podem ver acima nenhuma das formas que utilizei foi necessário declarar o tipo da variável. O ASP-C detecta automaticamente o tipo e nesse caso não houve nenhuma diferença se pública ou private devido ao fato que o "Response.write" está no mesmo escopo das variáveis. A resposta no browser é esta abaixo:
A primeira variável não possui nenhuma palavra reservada. Ela é criada mas não será alocada na memória e seu tipo é detectado em tempo de execução*. Isso faz com que toda vez que chamar a var01 o ASP procurará no script inteiro para descobrir se já existe o que poderá causar uma diminuição de desempenho. Assim conseguirá poupar espaço na memória, mas exigirá uma busca e isso deve ser bem avaliado.
A segunda var02 com o Dim (
dimension - declare in memory) citado acima terá um espaço próprio na memória e com isso, em sistemas muito limitados outro problema poderá ocorrer que é restringir a memória livre pra outros processos. Para scripts simples provavelmente nada será notado nem na primeira nem nessa segunda, mas em sistemas muito grandes isso poderá ser um problema, portanto, volto a falar que essa decisão deverá ser bem calculada.
As duas outras declarações são autoexplicativas, mas nesse código em específico não fazem diferença alguma. No futuro quando for falar de 'Functions' e 'Sub' explicarei melhor sobre elas. No momento não será preciso fazer uso. Agora vamos avançar um pouco mais:
Acima perceba a estrutura de condição If. Veja como escrever corretamente ela no ASP-C. Nesse caso a primeira condição é a certa e portanto será apresentando o seguinte resultado:
Note que a codificação não está sendo detectada corretamente e para isso será preciso informar no começo do Script a seguinte linha:
Response.CharSet = "UTF-8"
Com essa linha declarada logo no início o retorno no navegador passa a ficar assim:
Avaliem bem todos os termos reservados incluindo o 'Then' que no Python seria os ':'. Algumas pessoas colocam as condições entre parênteses, mas até agora não vejo necessidade e funciona do mesmo modo. Tendo entendido tudo até agora você já é capaz de criar algum tipo de resultado mais prático e mais complexo, bastando um pouco de boa vontade. Agora como podem ver abaixo estamos utilizando o looping 'For':
Com ele podemos criar uma repetição limitada e ainda podemos escolher de quanto em quanto queremos que isso ocorra utilizando o 'Step' que pode ser negativo e portanto decrescente, quando não informado ele incrementa de um em um. Fiz outra coisa que foi aninhar um 'If' dentro do looping e como a maioria das linguagens poderíamos aninhar vários outros desde que haja real motivo para isso. Observem o caso do 'Exit For' e no comentário que é precedido de uma única aspa simples explico que de outro modo o ASP-C retornaria um erro de sintaxe. Sendo a condição do 'If' correta quando o 'i' for igual a 7 ele retorna que 'Não podemos continuar!' junto à tag do HTML "<br/>" que pula linha dentro das aspas duplas e acaba entrando no segundo 'If' aninhado que também está correto já que 'i' continua valendo 7. O looping 'For' portanto será terminado antes de alcançar o 10. Observe bem e tente fazer diferente para receber os erros relacionados.
Abaixo, ao final temos o 'Next' do 'For', diferente do 'End' do 'If' esse 'Next' implica que o 'i' será automaticamente incrementado pelo valor do 'Step' e virá assim o próximo ciclo. Veja a linha que codifica para UTF-8 acima de todo Script.
De uma forma muito rápida vimos várias coisas aqui que já dão possibilidade de criar vários resultados interessantes. No futuro virei com outros tipos de loopings e provavelmente um início sobre 'Functions'. Qualquer dúvida não deixe de perguntar abaixo e se encontrou alguma inconsistência no que apresento aqui informe para que possamos aprender juntos.