ASP.NET - Criando a sua Loja Virtual - Configurando sua aplicação Web.


Para acompanhar a criação da loja virtual veja o primeiro artigo em : ASP.NET - Criando a sua Loja Virtual - Objetivos e Modelagem de dados.

Uma aplicação Web pode ser considerado qualquer aplicação (Um site , uma intranet , etc..) que esteja sendo executada no servidor Web , no nosso caso o IIS.

Cada aplicação Web utiliza variáveis para armazenar informação : variáveis de sessão  , válidas enquanto durar a sessão de um usuário e variáveis de aplicação (globais) , válidas enquanto durar a aplicação Web.

Nota : No protocolo Http cada solicitação de página é independente das demais páginas e não há relação entre elas. Para controlar quando uma sessão começa o ASP .NET associa de forma automática um objeto implícito Session para a sessão e define também um tempo máximo para a sessão durar ( Timeout) . se o tempo for excedido sem qualquer requisição a sessão é encerrada.

Existem dois arquivos que são usados em ASP.NET para configurar a aplicação Web : Global.asax e Web.config

O arquivo Global.asax

O arquivo Global.asax ( lembra do Global.asa no ASP ? ) é um arquivo texto que pode ser usado ou não (ele é opcional ) na configuração de uma aplicação Web. Cada arquivo Global.asax deve estar presente no diretório raiz da aplicação web.

O arquivo Global.asax  contém código que deve ser executado em resposta a alguns eventos relacionados a uma aplicação web.  Abaixo uma estrutura básica com seus métodos mais importantes:

<script language="VB" runat=server>

Sub Application_Start(Sender As Object, E As EventArgs)

End Sub

Sub Session_Start(Sender As Object, E As EventArgs)

End Sub

Sub Application_End(Sender As Object, E As EventArgs)

End Sub

Sub Session_End(Sender As Object, E As EventArgs)

End Sub

</script>

 

Além dos eventos relacionados com a sessão e a aplicação(que já existiam em ASP)  vistos acima no ASP.NET podemos ter também eventos relacionados com a execução de uma página contidos no arquivo Global.asax.

 

<script language="VB" runat="server">

Sub Session_Start(Sender As Object, E As EventArgs)
End Sub

Sub Application_BeginRequest(Sender As Object, E As EventArgs)
End Sub

Sub Application_AuthenticateRequest(Sender As Object, E As EventArgs)
End Sub

Sub Application_AuthorizeRequest(Sender As Object, E As EventArgs)
End Sub

Sub Application_ResolveRequestCache(Sender As Object, E As EventArgs)
End Sub

Sub Application_PreRequestHandlerExecute(Sender As Object, E As EventArgs)
End Sub

Sub Application_PostRequestHandlerExecute(Sender As Object, E As EventArgs)
End Sub

Sub Application_ReleaseRequestState(Sender As Object, E As EventArgs)
End Sub

Sub Application_UpdateRequestCache(Sender As Object, E As EventArgs)
End Sub

Sub Application_EndRequest(Sender As Object, E As EventArgs)
End Sub

</script>

 

O arquivo Web.config

 

O arquivo Web.config é um arquivo de configuração para aplicação web no formato XML. ELe fica armazenado na mesma hierarquia de diretório da aplicação. Ele não obrigatório para que sua aplicação web funcione , se ele não existir o ASP.NET usa um arquivo chamado Machine.config padrão.

 

Geralmente o arquivo web.config é colocado na raiz da aplicação junto com o arquivo Global.asax. Por falar nele você pode estar pensando : "Qual arquivo eu devo usar para configurar minha aplicação : Global.asax ou Web.config ?

 

Bem , você pode usar nenhum ou até os dois ; geralmente no  arquivo Global.asax colocamos informação de estado e códigos relacionados a eventos. Já o web.config é usado para informações de configuração da aplicação.

 

A estrutura básica de um arquivo Web.config é :

 

<configuration>

    <configSections>

    </configSections>

    </appSettings>
    </appSettings>
</configuration>

 

O elemento raiz do Web.config é a tag : <configuration>

Dentro do elemento <configuration> podemos ter  partes distintas : gerenciadores(handlers) das seções e as seções de configuração.

Existem diversos handlers , cada realiza uma determinada tarefa. Abaixo alguns exemplos:

 

Seção Classe Descrição
<appsettings> System.Configuration.NameValueFileSectionHandler define configurações para a aplicação
<authentication> System.Web.Configuration.AuthenticationConfigHandler configura a autenticação no ASP.NET
<authorization> System.Web.Configuration.AuthorizationConfigHandler configura a autorização no ASP.NET

 

Na nossa loja virtual , que é a nossa aplicação , iremos usar os dois arquivos para configurar a aplicação web.

 

No arquivo Web.Config implementar a string de conexão com o banco de dados de forma que todos os usuários possam acessar a nossa loja e se

houve necessidade de alterar a string o faremos em um único lugar.

 

Como eu estou acessando um banco de dados Access 2000 vou utilizar o provedor - Microsoft.Jet.OLEDB.4.0 . Meu banco de dados chama-se loja.mdb  esta localizado em : c:\inetpub\wwwroot\loja\db\

 

<configuration>
  <appSettings>
    <add key="strconexao" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\inetpub\wwwroot\loja\db\loja.mdb"/>
  </appSettings>
</configuration>

 

No arquivo Global.asax irei implementar a criação da tabela de pedidos no método Session_start , assim quando a sessão de cada usuário começar ele ira estar com sua cesta de pedidos vazia.

 

No evento Session_start que é disparado quando a sessão de um usuário começa eu estou criando uma cesta usando o objeto oCesta do tipo DataSet e criando uma tabela que onde eu vou guardar o pedido do usuário feito na sessão. Estou definindo uma tabela Produtos com os seguintes campos: Codigo (inteiro) , Nome(String) , Valor(decimal) e Quantidade(inteiro). Ao final eu estou armazenando o objeto na sessão.

 

Nota: Da mesma maneira que objeto Application guarda o estado das variáveis de aplicação , o ASP.NET fornece o objeto Session para gerenciar as variáveis de sessão. Este objeto é da classe System.Web.SessionState . Você deve tomar cuidado com variáveis de sessão. Em relação a ASP as melhorias introduzidas pela ASP.NET com relação a sessão são :

  • Melhor desempenho

  • mais fácil armazenar informações de sessão

  • Permite a navegadores que não suportam cookies realizar sessões. (Insere um identificador de sessão na URL do usuário)

 

<%@Import Namespace="System.Data" %>
<%@Import Namespace="System.Data.OleDb"%>

<script language="VB" runat="server">

Sub Session_Start(Sender As Object, E As EventArgs)

Dim oCesta As DataSet = New DataSet
Dim oProdutos As DataTable = oCesta.Tables.Add("Produtos")
Dim oColuna As DataColumn

oColuna = New DataColumn("Codigo", System.Type.GetType("System.Int32"))
oProdutos.Columns.Add(oColuna)

oColuna = New DataColumn("Nome", System.Type.GetType("System.String"))
oProdutos.Columns.Add(oColuna)

oColuna = New DataColumn("Valor", System.Type.GetType("System.Decimal"))
oProdutos.Columns.Add(oColuna)

oColuna = New DataColumn("Quantidade", System.Type.GetType("System.Int32"))
oProdutos.Columns.Add(oColuna)

Session("cesta") = oCesta

End Sub

</script>

 

Usamos um objeto DataTable - oProdutos - e criamos objetos DataColumn que foram adicionados a tabela Produtos usando o método Add da coleção Columns.

 

Acabamos de criar dois arquivos para configurar nossa aplicação Web : Global.asax e web.config que estarão localizados no raiz da aplicação.

Na próxima etapa iremos mostrar como será a nossa página principal. Até lá...


José Carlos Macoratti