Caro(a) Leitor(a), hoje vou falar e mostrar como criar na sua aplicação um contador que funciona em tempo real dos usuários que estão acessando, mesmo os usuários não cadastrados; isto é; dá para saber quantas pessoas estão acessando, a qualquer momento, o seu site ou sistema online.

Cada figura neste artigo mostra o passo a passo para que não perca nenhum detalhe.

Tag: Global, C#.NET, Visual Studio

       Existem várias maneiras de fazer isso, hoje o Google Analytics tem uma opção para saber quantos usuários estão online. Existe uma outra maneira que é o desenvolvimento na aplicação usando o Global.asax.cs.

       No Google Analytics, você precisa colocar algumas linhas de código javascript no site, depois basta acompanhar a quantidade de usuário no menu Tempo Real que ainda está na versão beta. Figura 1.
Figura 1. Google Analytics


        No próprio site do Google Analytics existe a opção de criar o arquivo de javascript. Você pode também confiar diretamente no seu aplicativo somando automaticamente. Para isso, o primeiro passo é criar o arquivo Global.asax.cs.

        O primeiro passo foi criar o arquivo Global.asax. Figura 2.
        Figura 2. Botão direito em cima do projeto




         Cliquei com o botão direito em cima do projeto, escolhi o submenu Add e em seguida o New Item... A próxima tela basta escolher o tipo do arquivo. Figura 3.

          Figura 3. Escolha do tipo do arquivo.


          Dentre os vários tipos, escolhi o Global Application Class, deixei o mesmo nome e cliquei no botão Add. Apareceu no projeto o arquivo com vários métodos criados. Listagem 1.

          Listagem 1: Métodos criados automaticamente.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.SessionState;

namespace WebApplication3

{

public class Global : System.Web.HttpApplication

{

protected void Application_Start(object sender, EventArgs e)

{

}

protected void Session_Start(object sender, EventArgs e)

{

}

protected void Application_BeginRequest(object sender, EventArgs e)

{

}

protected void Application_AuthenticateRequest(object sender, EventArgs e)

{

}

protected void Application_Error(object sender, EventArgs e)

{

}

protected void Session_End(object sender, EventArgs e)

{

}

protected void Application_End(object sender, EventArgs e)

{

}

}

}



           Para gerar o contador automático, vou utilizar pelo menos três destes métodos já criados pelo Framework e Visual Studio. O primeiro passo é criar uma variável chamada contador de acessos dentro do método Application_Start.

           É necessário criar dentro do Application_Start, isso porque quando a aplicação for iniciada a primeira vez, a variável começa com o valor zero. Você pode colocar o nome que quiser. Listagem 2.
Listagem 2: Application_Start

protected void Application_Start(object sender, EventArgs e)

{

Application["ContadorAcessos"] = 0;

}


            É necessário usar ainda dois métodos da classe Global para somar e diminuir o valor da variável. A cada acesso, o sistema soma os valores e adicionando na variável. Para somar, use o método Session_Start. Listagem 3.

Listagem 3: Somando valores e atribuindo a variável.

protected void Session_Start(object sender, EventArgs e)

{

Application["ContadorAcessos"] = (int)(Application["ContadorAcessos"]) + 1;

}



              Quando um usuário sai do site, é necessário diminuir o valor de forma automática e simples. O método utilizado é o Session_End, ou seja, quando a sessão do usuário for finalizada. Listagem 4.
Listagem 4: Diminuindo valores.

protected void Session_End(Object sender, EventArgs e)

{

Application["ContadorAcessos"] = (int)(Application["ContadorAcessos"]) - 1;

}

              Depois de somar e diminuir os valores, basta usar a variável dentro de qualquer parte do código, aspx, vb, c# e outros. Basta usar Application[“ContadorAcessos”].ToString(). A fim de deixar mais organizado o código para entendimento, segue todo o código construído. Listagem 5.
Listagem 5. Todo o código da classe.

protected void Session_Start(object sender, EventArgs e)

{

Application["ContadorAcessos"] = (int)(Application["ContadorAcessos"]) + 1;

}

protected void Session_End(Object sender, EventArgs e)

{

Application["ContadorAcessos"] = (int)(Application["ContadorAcessos"]) - 1;

}

protected void Application_Start(object sender, EventArgs e)

{

Application["ContadorAcessos"] = 0;

}



Bom, espero que tenha gostado e qualquer dúvida pode entrar em contato pelo site pessoal www.mauriciojunior.org