Crie componentes asp do lado do servidor usando vb
Este artigo apresenta como chamar componentes vb em código asp comparando com métodos de design tradicionais. Neste artigo, assumimos que o leitor possui conhecimentos introdutórios relevantes de VB e ASP.
Comparação de componentes do lado do servidor e componentes do lado do cliente
Existem muitas diferenças entre os componentes do lado do servidor e os componentes do lado do cliente. Os componentes do lado do servidor são arquivos DLL registrados no servidor do computador e os componentes do lado do cliente são registrados no computador onde o navegador está sendo executado. No IE, esses componentes do lado do cliente são chamados de componentes de plug-in do navegador activex.
Os componentes do cliente ActiveX podem ser escritos em VB e enviados ao navegador pela Internet ou intranet para gerar efeitos maravilhosos. O problema é que os componentes activex do lado do cliente são limitados, ou seja, enquanto os componentes do lado do servidor escritos em vb podem gerar código HTML puro e são adequados para todos os navegadores. O maior problema com componentes do lado do servidor é que o componente deve ser executado em um ambiente Windows+IIS ou em um aplicativo compatível com a API do IIS. Em comparação, parece mais fácil conseguir essa compatibilidade no lado do servidor.
O componente do lado do servidor IIS reside no mesmo espaço de memória que o IIS e está sempre pronto para chamadas para páginas da Web ASP processadas no servidor. Em teoria, podemos inserir qualquer texto ou código no código ASP retornado ao navegador, mas de modo geral, a maioria dos componentes do lado do servidor são usados para lidar com cálculos ou pesquisas de informações de banco de dados que exigem muito tempo e, em seguida, o resultado resultante. é retornado ao navegador na forma de código HTML.
Análise de componentes vb
Como este artigo tem como objetivo discutir os métodos básicos de escrita de componentes VB, os exemplos serão muito simples se puderem ilustrar o problema. Antes de discutir detalhadamente a escrita de componentes VB, primeiro analisaremos conceitualmente os componentes VB.
Ao usar VB para escrever componentes do lado do servidor, existem três conceitos hierárquicos (usados em código VB e ASP) aos quais devemos prestar atenção:
·nome do projeto
·nome da classe
·nome do método
O nome do projeto VB é o nome do projeto. Muitos desenvolvedores consideram o nome do projeto como o nome do componente, mas o VB o considera apenas como o nome do projeto. Em nosso exemplo, o nome do projeto é exemploprojeto. Claro, podemos nomear nosso próprio projeto arbitrariamente; o nome da classe é exemploclasse e o nome do método é exemplométodo.
O nome do projeto (nome do componente) também pode ser o nome do arquivo dll compilado a partir do código do componente. O arquivo dll conterá o código vb compilado usado pelo iis para retornar texto ou código html ao navegador.
O nome do método refere-se à parte do código Visual Basic que gerencia uma função de código específica, como calcular uma data ou exibir uma lista de todos os autores em um banco de dados. Os métodos de componentes são uma espécie de caixa preta que executa um trabalho específico ou retorna informações específicas com base nas informações de entrada. Geralmente, pode haver vários métodos em um componente. Para gerenciar métodos de componentes de forma mais eficaz, os métodos podem ser agrupados de acordo com classificações semelhantes. Esta é a função das classes de componentes.
A classe do componente pode gerar uma cópia do código da classe do componente na memória. Ao usar o código asp para criar um objeto, ele também é chamado de instanciação. Assim que tivermos uma referência de objeto para a instância do código da classe do componente, podemos chamar os métodos contidos na classe a partir do código asp.
Em nosso exemplo, os nomes do projeto, classe e método serão usados para instanciar o componente VB no código ASP e passar valores do código ASP para o código VB na forma de parâmetros de método, que são recebidos no Código ASP do método VB O valor retornado.
Chame o componente vb do arquivo asp
O arquivo asp que usamos para chamar o componente vb usará variáveis de objeto para salvar referências ao objeto vb. Em um arquivo asp, você pode criar um objeto usando o método createobject() do objeto do servidor asp, que retornará uma referência ao objeto criado. No exemplo, usaremos objreference como variável de objeto do componente. O código a seguir mostra que o código asp precisa usar o nome do projeto e o nome da classe do componente (exampleproject e exampleclass) ao instanciar o componente vb.
Código ASP para instanciar o componente vb:
definir objreference = server.createobject(exampleproject.exampleclass)
O componente vb aceitará os valores de 3 variáveis do código asp e retornará um valor para o código asp, que será armazenado na variável asp chamada strmethodreturn. O código a seguir mostra como o código asp obtém o valor retornado pelo componente vb. Ele passa três valores de parâmetros chamados param1, param2 e parma3 para o método vb:
strmethodreturn = objreference.examplemethod(param1, param2, param3)
Os três parâmetros param1, param2 e param3 devem ser exatamente iguais às definições dos métodos no componente VB. A seguir está um exemplo de duas linhas de código ASP que instancia a classe do componente VB e chama o método de classe para. obtenha o valor de retorno:
definir objreference = server.createobject(exampleproject.exampleclass)
strmethodreturn = objreference.examplemethod(param1, param2, param3)
O gráfico abaixo mostra visualmente como os nomes do projeto, classe e método do componente VB são coordenados com o código de instanciação do componente no arquivo ASP. Você pode usar o gráfico abaixo como referência enquanto aprende passo a passo como escrever o código vb e os arquivos asp no exemplo.
O papel do método vb
O componente VB simples em nosso exemplo obterá o nome e a idade do usuário e, em seguida, retornará a idade do usuário em dias, e há uma opção para lembrar ao usuário se ele tem mais de 45 anos.
Se passarmos um eric clapton fictício para o componente como o primeiro valor do parâmetro do método e definirmos o segundo parâmetro como 56, obteremos a seguinte string de retorno:
Eric Clapton tem mais de 20.440 dias.
Se definirmos o terceiro parâmetro opcional como true (este parâmetro fará com que o método determine se o usuário tem mais de 45 anos), obteremos a seguinte string de retorno:
Eric Clapton tem mais de 20.440 dias.
Como são utilizadas três variáveis completamente diferentes - o nome do usuário, a idade e se ele tem mais de 45 anos, precisamos usar três parâmetros de método para transferir essas informações do arquivo ASP para o código VB. Em VB, é muito importante considerar quais tipos de dados usar. Usaremos uma variável string chamada strname para representar o nome do usuário, uma variável inteira chamada intage para representar a idade do usuário e uma variável booleana chamada blnageemphasison para indicar se o usuário tem mais de 45 anos.
Três parâmetros de método (variáveis passadas para o código do método do componente vb):
strnome (string)
inteiro (inteiro)
blnageemphasisison (booleano)
Crie componentes do lado do servidor em vb
Após iniciar o vb, clique duas vezes no ícone “activex dll” na janela “Novo Projeto”. Depois que o VB carregar o novo projeto dll activex, você verá pelo menos duas janelas abertas: a janela do projeto e a janela de propriedades. Se houver uma janela que não pode ser exibida, você pode selecionar o item de menu "Exibir" no menu VB (use "Exibir" -> "Gerenciador de Projetos", "Exibir" -> "Janela de Propriedades" respectivamente).
Como os nomes padrão do primeiro projeto e classe em VB são projeto1 e classe1 respectivamente, podemos alterá-los para exemploprojeto e exemploclass respectivamente. O nome do projeto pode ser modificado na janela do projeto. Há uma pequena caixa com + ou - à esquerda do nome do projeto recém-inserido na janela do projeto. Se o sinal + for exibido, selecione a caixa pequena, o sinal + se transformará em um sinal - e o nome da classe padrão (class1) será exibido abaixo do nome do projeto. Selecione o nome da classe padrão na janela do projeto e altere o nome da classe padrão para exampleclass na janela de propriedades.
Ao salvar o projeto, o VB salvará o código que contém a classe em um arquivo com a extensão cls. A extensão do arquivo do projeto é vbp, que armazena diversas configurações do projeto, nome do arquivo e local de armazenamento do arquivo.
Valores de propriedade para componentes do lado do servidor
Exiba as propriedades da classe exampleclass na janela de propriedades. Observe que o valor da propriedade de instanciação é "5 multiuse". Se o tipo de projeto for definido como um projeto exe padrão, o valor desta propriedade será alterado de acordo.
Selecione "Projeto" -> "Propriedades do Projeto de Exemplo" no menu VB e a janela de propriedades do projeto será exibida. O valor da propriedade "Threading Mode" no canto inferior direito da guia "General" deve ser definido como "Apartment Threading", o que permitirá que vários visitantes usem diferentes instâncias de nossa classe de componente ao mesmo tempo. Além disso, selecione as duas opções de "Execução autônoma" e "Memória residente" para evitar vazamentos de memória no VB6.
código do método vb
Agora precisamos usar a janela do código vb para inserir o código vb. Se a janela de código ainda estiver em branco, insira o seguinte código:
opção explícita
'Isso exigirá que definamos todas as variáveis.
método de exemplo de função pública (byval strname como string, _
byval intage como número inteiro, _
opcional byval blnageemphasison como boolean = false) como string
No código acima, definimos o método como uma função pública, o que significa que qualquer código fora do componente pode chamá-lo. Por ser uma função, ele também retornará um valor ao código que o chama.
função pública examplemethod() como string
O código acima indica que a função examplemethod() retornará um valor do tipo string para seu chamador.
Nosso método vb vem com 3 variáveis de parâmetro que aceitam valores do código asp, a última variável de parâmetro é opcional. Todas as variáveis de parâmetro usadas para receber valores de fora do componente VB precisam ser definidas e usadas entre colchetes do método VB. Podemos usar variáveis definidas desta forma como parâmetros do método, assim como as variáveis definidas dentro do método. entre eles está o código asp externo que determina seus valores.
Aqui estão as três variáveis e seus tipos de dados:
byval strname como string
byval intage como número inteiro
opcional byval blnageemphasis as boolean = false
O código acima define os tipos de dados dos três parâmetros do método, indicando que eles são transferidos por valor, e que o terceiro parâmetro é opcional. Se não houver um terceiro parâmetro, seu valor padrão é falso.
Em seguida, adicionaremos algumas vírgulas, espaços e sublinhados (_) necessários na definição do método para que ele atenda aos requisitos gramaticais do VB. Colocaremos a lista de parâmetros entre parênteses da definição do método, e a definição do método resultante será a seguinte:
método de exemplo de função pública (byval strname como string, _
byval intage como número inteiro, _
opcional byval blnageemphasisison como boolean = false) como string
Insira a definição do método acima na janela de código VB e uma instrução de função final será gerada. Entre a definição do método e a função final é onde escrevemos nosso próprio código.
A primeira linha de código que adicionamos ao corpo do método é definir uma variável de string para armazenar os dados de string retornados pelo método. Em vez de usar uma variável string, podemos usar uma string para retornar dados de texto ao código que chama o método.
dim strreturnstring como string
A seguir podemos criar a string retornada. Podemos usar o valor da variável strname passado pelo código asp através da lista de parâmetros do método. Primeiro concatene o valor da variável do parâmetro strname com a string "is over". A seguir, usaremos a variável de parâmetro intage para calcular o número de dias que uma pessoa sobreviveu e, em seguida, adicionaremos a string “idade em dias” à string anterior. Deve-se notar que precisamos converter o produto de dois inteiros intage * 365 em uma string antes de combiná-lo na string strreturnstring. O método cstr() em VB pode atingir esse propósito.
strreturnstring = strname & acabou & cstr(intage * 365)
Se for assumido que o nome passado para o componente a partir do código asp é Eric Clapton e o parâmetro age é 56, portanto, strreturnstring deve conter o seguinte conteúdo:
Eric Clapton tem mais de 20440
Nossa string final será adicionada com base se o valor da variável intage excede 45 e se a variável blnageemphasison está definida como verdadeira.
"dias de idade" ou "dias de idade". O código a seguir pode realizar esta função:
se blnageemphasis e intage > 44 então
strreturnstring = strreturnstring & dias de idade.
outro
strreturnstring = strreturnstring & dias de idade.
terminar se
Se o código asp não passar o valor da variável blnageemphasison para o componente como parâmetro do método, seu valor será definido como falso por padrão de acordo com a definição do nosso método. Se for definido como verdadeiro e o valor da variável intage for maior que 45, obteremos a seguinte saída:
Eric Clapton tem mais de 20.440 dias.
Caso contrário, obteremos a seguinte saída:
Eric Clapton tem mais de 20.440 dias.
Para retornar a string acima ao código asp do componente de chamada, atribuímos o valor da string ao nome do método:
métodoexemplo = strreturnstring
O código completo do método é o seguinte:
método de exemplo de função pública (byval strname como string, _
byval intage como número inteiro, _
opcional byval blnageemphasison como boolean = false) como string
'///// Cria variáveis locais
dim strreturnstring como string
'///// Cria o valor da variável retornada
strreturnstring = strname & acabou & cstr(intage * 365)
'///// Melhorar strreturnstring
se blnageemphasis e intage > 44 então
strreturnstring = strreturnstring & dias de idade.
outro
strreturnstring = strreturnstring & dias de idade.
terminar se
'///// String de retorno
métodoexemplo = strreturnstring
função final
Chame o método vb no código asp
Instanciar objeto vb em código asp
A maior parte do código ASP de que precisamos foi discutida em uma visão geral conceitual acima. No código asp, ainda precisamos concluir o seguinte trabalho em sequência:
·Use o método createobject() do objeto do servidor asp para instanciar o componente vb.
·Chame os métodos do componente usando variáveis de parâmetro de método apropriadas.
·Atribuir o valor da string retornado do método vb a uma variável na variável asp.
·Em seguida, use esta variável no método response.write() para enviar a string ao navegador.
Usaremos algum código no arquivo asp para instanciar a classe do componente vb. A seguir está o código para instanciação do componente vb:
definir objreference = server.createobject(exampleproject.exampleclass)
O método createobject() do objeto servidor ASP retorna o endereço do objeto de código VB, para que possamos chamar qualquer método público da classe em ASP. Deve-se notar que como o parâmetro do método asp createobject() é o nome do projeto e da classe vb, objreference é usado para manter uma referência à instância do objeto da classe do componente.
Como usar componentes em arquivos asp
Agora, podemos usar o método de classe do componente examplemethod para obter uma indicação da vida útil de uma pessoa em dias. O código a seguir usa o valor do parâmetro e atribui o valor da string retornada do método a uma variável chamada strmethodreturn:
strmethodreturn = objreference.examplemethod(eric clapton, 56, verdadeiro)
Dica: Quando nosso componente é instanciado, objreference representa a exampleproject.exampleclass que apareceu no método createobject(). Embora possamos pensar em objreference.examplemethod como equivalente a exampleproject.exampleclass.examplemethod(), não podemos usá-lo desta forma.
Claro, também podemos usar variáveis em vez de valores diretos como parâmetros do método. Os nomes das variáveis dos parâmetros selecionados não precisam ser iguais aos da lista de parâmetros do método VB. número, tipo e número de parâmetros não opcionais na lista de parâmetros A ordem é a mesma.
aspname = eric clapton aspage = 56 aspemphasis = true strmethodreturn = objreference.examplemethod(aspname, aspage, aspemphasis)
Usar variáveis em vez de valores torna seu código mais claro e gerenciável, principalmente quando ele fica longo.
Agora só precisamos retornar strmethodreturn ao navegador que acessa o código asp no método asp response.write(). Abaixo está o código asp completo. No final do código, adicionamos uma linha de código que separa o endereço do objeto do componente para limpar o código do objeto do componente:
<%
'///// Instanciar objeto componente
definir objreference = server.createobject(exampleproject.exampleclass)
'///// Define variáveis locais como parâmetros do método
aspname=eric clapton
aspágina=56
aspenfase = verdadeiro
'///// Chama o método do componente e armazena o valor de retorno
strmethodreturn = objreference.examplemethod(aspname, aspage, aspenphasis)
'///// Envia o valor de retorno para o navegador visitante
resposta.write(strmethodreturn)
'///// Limpa o objeto componente
definir objreference = nada
%>
Armazenar o código asp acima em um arquivo asp produzirá a seguinte saída de string:
Eric Clapton tem mais de 20.440 dias.
Habilite o código asp para chamar arquivos dll
O teste do nosso componente é informar ao Windows onde ele está armazenado e quando o código asp o chama. Primeiro, selecione o ícone "Executar" ou "Executar/Iniciar" no menu VB e o VB registrará temporariamente o componente no sistema.
Dica: Você não pode usar o navegador para carregar arquivos ASP diretamente, pois o carregamento de arquivos ASP deve ser carregado no navegador por meio do servidor web.
O navegador exibirá as palavras “eric clapton tem mais de 20.440 dias”.
Para que o componente possa rodar em outros servidores, ele deve ser compilado em um arquivo dll e depois registrado no servidor. Claro, se quiser usar o componente permanentemente no computador de desenvolvimento, você também precisará compilá-lo e registrá-lo. O único arquivo necessário para executar este componente em outros computadores é o arquivo DLL compilado. Obviamente, isso requer que o computador tenha o arquivo da biblioteca de tempo de execução vb instalado.
Como compilar o código-fonte do componente para obter o arquivo dll e como registrar o componente no computador estão além do escopo deste artigo, portanto não iremos descrevê-lo em detalhes.
Como subproduto da escrita de componentes do lado do servidor IIS, podemos chamar os métodos dos componentes escritos a partir de qualquer arquivo ASP e outros componentes VB, o que melhorará ainda mais a flexibilidade e modularidade do código.