1. Introdução
O ambiente de execução de scripts do lado do servidor é simples e fácil de usar, não requer compilação e conexão, os scripts podem ser executados diretamente no lado do servidor e suporta multiusuários e multithreads, e tem sido amplamente utilizado em desenvolvimento Web. Os componentes do lado do servidor são diferentes dos componentes do lado do cliente. Os componentes do lado do cliente são transmitidos pela rede, dependem de HTML para funcionar e estão disponíveis apenas no IE. Mas o componente do lado do servidor é executado no lado do servidor e executa várias operações no servidor. Portanto, todos os navegadores podem aproveitá-lo e ele depende do servidor e não do navegador. No entanto, como os scripts ASP estão em formato de texto simples, os agentes mal-intencionados podem ver facilmente o conteúdo da página que não deveriam ver através do código-fonte. Portanto, proteger o código-fonte ASP é muito importante. Encapsular o código ASP em DLL não apenas acelera a execução do código ASP, mas também protege o código original. Quando o IIS é solicitado a executar um programa ASP, ele primeiro encontrará o código entre as tags no arquivo ASP e o executará (também pode ser o código entre elas). Se este programa ASP já tiver sido chamado antes, ele usará o programa compilado na memória para retornar o código HTML ao usuário. Caso contrário, ele será recompilado. Isso economiza muito os recursos do servidor.
2. Método de implementação
Inicie seu VB e selecione o ícone ActiveX. Este ícone pode ser encontrado no novo projeto. O VB fornecerá um nome de projeto padrão (projeto1) e um nome de classe (classe1). Antes de começar, primeiro confirme se temos a biblioteca Microsoft ActiveX Data Object 2.0, que é muito útil em nosso programa. Selecione "Projeto" no menu e selecione "Referência" lá, a janela "Referência" aparecerá, selecione Biblioteca Microsoft ActiveX Data Object 2.0.
Agora temos nosso próprio projeto (projeto1) e nome de classe (classe1). Usaremos seus nomes para nos referirmos a esse componente no código ASP no futuro. Em ASP citamos assim, da seguinte forma:
Set ObjReference = Server.CreateObject("ProjectName.ClassName")
Para usar métodos ASP em uma classe, você deve escrever as funções de inicialização e encerramento nesta classe. Digite o seguinte código: na lista de programas
Private Sub Class_Initialize() e Private Sub Class_Terminate() em Class1.cls
transformam as principais funções do código ASP em uma biblioteca de vínculo dinâmico (.dll), ocultando parcialmente o código-fonte ASP. Por exemplo: o código inserido em Global.bas e Class1.cls na listagem do programa (a principal função do código é recuperar registros no banco de dados e exibi-los).
Selecione Arquivo → Gerar article.dll → Selecione o diretório para salvar no menu suspenso do VB. Encontre article.dll e copie-o para a pasta system32 do disco do sistema. A última etapa é registrar o arquivo DLL. Selecione Executar no menu Iniciar e digite regsvr32 c:winntsystem32article.dll.
3.
Código na lista de programas Global.bas:
ObjContext público como ObjectContext
Aplicativo público como ASPTypeLibrary.Application
Servidor público como ASPTypeLibrary.Server
Sessão pública como ASPTypeLibrary.Session
Resposta pública como ASPTypeLibrary.Response
Solicitação pública como ASPTypeLibrary.Request
Código em Class1.cls:
Private Sub Class_Initialize()
Em caso de erro Retomar Próximo
Set objContext = GetObjectContext
Set Application = objContext.Item("Application")
Set Server = objContext.Item("Server")
Set Session = objContext.Item("Session")
Set Request = objContext .Item("Solicitação")
Definir Resposta = objContext.Item("Resposta")
End Sub
Private Sub Class_Terminate()
Em caso de erro Continuar próximo
conjunto Aplicativo = Nada
definido Servidor = Nada
definido Sessão = Nada
definido Solicitação = Nada
definido Resposta = Nada
definido objContext = Nada
End Sub
Public Sub AspClassInit()
em caso de erro GoTo Err
Set conn = Server.CreateObject("ADODB.Connection")
strcon = "Provider=Microsoft.Jet.OLEDB.4.0;
" .mdb")
conn.Open strcon
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from Article order by ArticleID desc"
rs.Open sql, conn, 1, 1
Response.Write "<html> " & vbCrLf
Response.Write "<head>" & vbCrLf
Response.Write "<meta http-equiv=""Content-Type"" content=""text/html; charset=gb2312"">" & vbCrLf
Response.Write "<title>Sistema de gerenciamento de artigos-CSSTUDIO</title>" & vbCrLf
Response.Write "</head>" & vbCrLf
Response.Write "<body bgcolor=""#FFFFFF"" topmargin=""0"">" & vbCrLf
Response.Write "<table width=""100%"" border=""0"" cellpadding=""2"" cellpacing=""0"">" & vbCrLf
Response.Write "<tr>" & vbCrLf
Response.Write " <td width=""742"" height=""20"">Título do artigo</td>" & vbCrLf
Response.Write " <td width=""90"">Clique</td>" & vbCrLf
Response.Write " <td width=""145"">Adicionar data</td>" & vbCrLf
Resposta.Write " </tr>" & vbCrLf
Response.Write "</table>" & vbCrLf
Embora não seja rs.EOF e linhas <rs.PageSize
Response.Write "<table width=""100%"" border=""0"" cellpacing=""0"" cellpadding=""0"">" & vbCrLf
Response.Write "<tr>" & vbCrLf
Response.Write " <td width=""747"" height=""20"">☆<a href=""view.asp?id="
Response.Write rs("ArticleID")
Response.Write """>" & vbCrLf
Resposta.Escreva " "
Response.Write rs("Título")
Response.Write "</a></td>" & vbCrLf
Resposta.Write "<td width=""94"">"
Response.Write rs("clique")
Response.Write "</td>" & vbCrLf
Resposta.Write "<td width=""148"">"
Response.Write rs("Adicionar data")
Response.Write "</td>" & vbCrLf
Resposta.Write " </tr>" & vbCrLf
Response.Write "</table>" & vbCrLf
rs.MoveNext
Wend
Response.Write "</body>" & vbCrLf
Response.Write "</html>" & vbCrLf
rs.Close
Set rs = Nada
conn.Close
Set conn = Nada
Sair Sub
Err:
Se Err.Number = -13572468 Então saia do Sub
Resume Next
End Sub
Código em index.asp após usar article.dll:
<%Dim AspTransBuilderObject
Set AspTransBuilderObject = Server.CreateObject("article.Class1")
AspTransBuilderObject.AspClassInit
Set AspTransBuilderObject = Nothing%>
Codifique em index.asp antes de usar article.dll:
<% Set conn=Server.CreateObject("ADODB.Connection")
strcon = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Article.mdb")
conn.Open strcon %>
<% Set rs = Server.CreateObject ("ADODB.Recordset")
sql="selecione * da ordem do artigo por ArticleID desc"
rs.Open sql, Conn,1,1 %>
<html>
<cabeça>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Sistema de gerenciamento de artigos-CSSTUDIO</title>
</head>
<body bgcolor="#FFFFFF" topmargin="0">
<largura da tabela="100%" border="0" cellpadding="2"
espaçamento de células = "0">
<tr>
<td width="742" height="20">Título do artigo</td>
<td width="90">Clique</td>
<td width="145">Adicionar data</td>
</tr>
</tabela>
<% Embora não seja Rs.Eof e linhas<Rs.PageSize %>
<table width="100%" border="0" cellpacing="0"
cellpadding="0">
<tr>
<td width="747" height="20">☆<a href="view.asp?id=<%
= rs("IDDoArtigo") %>">
<% =rs("título") %></a></td>
<td width="94"><% = rs("click") %></td>
<td width="148"><% = rs("Data adicionada") %></td>
</tr>
</tabela>
<% Rs.MoveNext
Wend %>
</body>
</html>
<% rs.fechar
definir rs = nada
conexão.fechar
definir conexão=nada %>
4. Conclusão
Como esses códigos são executados no lado do servidor, o cliente não precisa instalar nada. Este é apenas um pequeno exemplo do que pode ser alcançado com DLLs ActiveX. Você pode escrever seus próprios componentes maiores e também usar muitos controles em VB. Vamos usar componentes para expandir a funcionalidade do nosso programa. Também espero ver mais componentes do nosso povo chinês! Espero que este artigo possa servir como ponto de partida.