ASP

O ASP (de Active Server Pages), também conhecido como ASP Clássico hoje em dia, é uma estrutura de bibliotecas básicas (e não uma linguagem) para processamento de linguagens de script no lado servidor para geração de conteúdo dinâmico na Web. Exemplos de linguagens aceitas são: VBScript, JScript, PerlScript, Tcl ou Python sendo que apenas as duas primeiras são suportadas por padrão.

A mais comumente difundida foi VBScript, sendo encontrada várias referências a ASP VBScript em artigos.

ASP foi substituído pelo ASP.NET, mas até hoje é suportada por versões atuais do IIS.

Ele roda/corre nativamente em Windows, através do serviço chamado de IIS (Internet Information Service) - o servidor web da Microsoft, ou do PWS (Personal Web Server) em ambientes com o Windows 98. Além disso ele pode rodar em outras plataformas, como Linux no servidor Apache quando usando um módulo de um programa como o Tomcat.

O script é interpretado no lado do servidor e o que é enviado ao lado do usuário/utilizador (navegador, por exemplo) é apenas a saída que normalmente é uma linguagem de marcação como HTML, XHTML ou XML.

Por se tratar de uma linguagem que roda do lado do servidor, é possível estabelecer o que vai ser enviado para o usuário (é o caso de sites que possuem diferentes perfis de acesso) e também fazer consultas a bancos de dados.

Exemplos de código ASP 
Um exemplo de uma página ASP conforme os padrões web pode ser representado pelo seguinte código:
<p>
O exemplo 1 mostra uma tabela com links que aparecerão nas colunas iniciais. Clicando em um dos links o exemplo 2 será chamado e receberá um ID como parâmetro.  No exemplo 2 será permitido alterar as informações e após clicar no botão Submit, o exemplo 3 será chamado para processar as informações e atualizá-las no banco de dados em SQL.
<p>
Exemplo 1 (1a parte):
1    <html>
2    <head>
3    <title>dbfullteste1.asp</title>
4    </head>
5    <body bgcolor="#FFFFFF">
6    <% 
7    ' Conexão com o banco
8    set conntemp=server.createobject("adodb.connection")
9   conntemp.open "Estudante","Estudante","magic"
10   
11   set rstemp=conntemp.execute("select * from autores where AU_ID<100")
12   qtde_campos=rstemp.fields.count -1
13   %>
14   <table border="1">
15   <tr>
16   <td valign="top">---</td>
17   <% 'Preenche a primeira linha com o nome dos campos
18   for i=0 to qtde_campos %>
19    <td><b><%=rstemp(i).name %></b></td>
20   <% next %>
21   </tr>
22   <% ' Preenche a tabela com os registros do banco
23   do while not rstemp.eof %>
24   <tr>
25   <td valign="top"><a HREF="dbfullteste2.asp?str_ID=<%=rstemp("AU_ID")%>">Editar</a></td>
26   <% for i = 0 to qtde_campos%>
27    <td valign="top"><% = rstemp.fields(i).value %></td>
28   <% next %>
29   </tr>
30   <% rstemp.movenext
31   loop
32   conntemp.close%>
33   </table>
34   </body>
35   </html>
<p>
Exemplo 2 (2a. parte):
1    <html>
2    <head>
3    <title>dbfullteste2.asp</title>
4    </head>
5    
6    <body bgcolor="#FFFFFF">
7
8    <%
9    ' Conecta com o banco e pega o valor do str_ID permitindo a edicao do registro
10   set conntemp=server.createobject("adodb.connection")
11   conntemp.open "Estudante","Estudante","magic"
12   
13   ID=request.querystring("str_ID")
14   sqltemp="select * from autores where AU_ID=" & ID
15   set rstemp=conntemp.execute(sqltemp)
16   atual_ID=rstemp("AU_ID")
17   atual_nome=rstemp("autor")
18   atual_ano_nasc=rstemp("ano_nasc")
19   %>
20   
21   <form name="meu_autor" action="dbfullteste3.asp" method="GET">
22   <p>ID: <input type="TEXT" name="id" value="<%=atual_id%>"></p>
23   <p> Nome do autor: <input type="TEXT" name="nome" value="<%=atual_nome%>"></p>
24   <p> Ano de Nascimento: <input type="TEXT" name="ano" value="<%=atual_ano_nasc%>"></p>
25   <p> <input type="SUBMIT"> </p>
26   </form>
27   </body>
<p>
Exemplo 3 (parte):
1    <html>
2    <head><title>dbfullteste3.asp</title></head>
3    <body bgcolor="#FFFFFF">
4    <%
5    on error resume next
6    au_nome=request.querystring("nome")
7    ' Corrige os apóstrofos
8    au_nome=Replace(au_nome, "'", "''") 
9    
10   au_ano=request.querystring("ano")
11   au_ID=request.querystring("ID")
12   Set Conn = Server.CreateObject("ADODB.Connection")
13   conn.open "Estudante","Estudante","magic"
14   
15   SQLstmt = "UPDATE autores "
16   SQLStmt = SQLstmt & "SET autor='" & au_nome & "',"
17   SQLstmt = SQLstmt & "ano_nasc=" & au_ano 
18   SQLStmt = SQLStmt & " WHERE AU_ID=" & au_ID 
19   Set RS = Conn.Execute(SQLStmt)
20   If err.number>0 then
21    response.write "Ocorreram erros no script:" & "<P>"
22    response.write "Número=" & err.number & "<P>"
23    response.write "Descrição=" & err.description & "<P>"
24    response.write "Help Context=" & err.helpcontext & "<P>" 
25    response.write "Help Path=" & err.helppath & "<P>"
26    response.write "Native Error=" & err.nativeerror & "<P>"
27    response.write "Source=" & err.source & "<P>"
28    response.write "SQLState=" & err.sqlstate & "<P>"
29   else
30    response.write "Nenhum problema aconteceu!" & "<P>"
31   end if
32   IF conn.errors.count> 0 then
33    response.write "Ocorreram erros com o banco de dados" & "<P>"
34    response.write SQLstmt & "<P>"
35    for counter= 0 to conn.errors.count
36      response.write "Número do erro:" & conn.errors(counter).number & "<P>"
37      response.write "Descrição --> " & conn.errors(counter).description & "<P>"
38    next
39   else
40    response.write "Parece que tudo está ok. O Autor foi atualizado!" & "<P>"
41   end if
42   Conn.Close
43   %>
44   </body>
45   </html>
<p>
Exemplo 4: Exemplo em ASP.Net de uma rotina de falha no ISS.
        <location path="http://www.exemplo.com.br"> 
            <system.webServer> 
                <tracing> 
                    <traceFailedRequests> 
                        <add path="*"> 
                            <traceAreas> 
                                <add provider="WWW Server" areas="Security" verbosity="Verbose" /> 
                            </traceAreas> 
                            <failureDefinitions statusCodes="404.2" /> 
                        </add> 
                    </traceFailedRequests> 
                </tracing> 
            </system.webServer> 
        </location>

Bibliografia 
 Rubens Prates, ASP Guia de Consulta Rápida, 2000, Editora Novatec, ISBN 85-85184-75-2

Referências

Ligações Externas 
 Tutorial de ASP - Portal W3 Schools
 A documentação do ASP.NET está disponível no site docs.microsoft.com
 Documentação do ASP.NET e ASP.Net Core - Microsoft Docs
 Introdução ao ASP.Net Core - Microsoft Docs
 Getting Started with ASP.NET MVC 5 - Microsoft Docs
 Criar uma API Web com o ASP.NET Core e o Visual Studio - Microsoft Docs

Web
Ciência da computação
Tecnologia da informação