Desenvolvendo um projeto Windows Services

 

Os Projetos Windows Services nos permite criar aplicações que rodam em “background” no Windows e são automaticamente inicializados (ou manualmente) quando o sistema operacional é iniciado. Esses projetos se caracterizam por não apresentar interface com o usuário e são projetados para ser usado em servidores ou quando necessitamos de funções que devem ser executados de forma independente e constante.

 

Nesse artigo vamos conhecer um pouco das aplicações Windows Services. Para isso desenvolveremos um Windows Services que criará um log de registro em um arquivo (txt), que será executado de tempo em tempo a partir de um Timer.


Para começar vamos criar um novo projeto no Visual Studio: File -> New Project e escolha a template : WINDOWS SERVICE.

 

rmdpwinserfig01.jpg 

Figura 1 – Criando um novo Projeto.

 

As aplicações do tipo Windows Service não possuem os mesmos eventos que existem em aplicações Windows como exemplo: clicar com o mouse,  digitar em uma textbox, etc. Dessa forma, os eventos mais importantes de aplicações Windows Service são: Iniciar um serviço (OnStart) ou parar (OnStop).

        

Para iniciar a codificação do nosso sistema, clique com o direito do mouse sobre a classe Service1.vb e em seguida em View Code. Observe que a classe Service1 já apresenta os métodos OnStart e OnStop nos quais iremos desenvolver nosso código.

 

Importe a namespace System.IO para incluir as classes de manipulação de arquivos. Em seguida, iremos escrever a função GravarLog, que será a responsável por gravar um log de registro no arquivo. Veja na imagem abaixo:

 

rmdpwinserfig02.jpg 

Figura 2 – Método GravarLog.

 

O próximo passo é importar a namespace System.Timers que será a responsável por definir um objeto que executará o código da função GravarLog. Obs: Não podemos utilizar o controle Timer do Visual Basic, deve ser criado um objeto Timer presente na namespace System.Timers.

 

Após importar a namespace, vamos instanciar um Objeto do tipo Timer e definir o Evento Elapsed. Veja na imagem abaixo:

 

rmdpwinserfig03.jpg 

Figura 3 – Objeto Timer

 

Para finalizar, iremos programar o código dos eventos OnStart e OnStop. Veja na imagem abaixo:

 

rmdpwinserfig04.jpg 

Figura 4 – Eventos OnStart e OnStop

 

Novamente clique com o botão direito em Service1.vb e depois em View Designer. Clique com o botão direito e depois em Add Installer, conforme vemos na imagem abaixo:

 

rmdpwinserfig05.jpg 

Figura 5 – Add Installer

 

Observe que será criado dois objetos: ServiceProcessInstaller1 e ServiceInstaller1. Clique em ServiceProcessInstaller1 e na janela de Propriedades altere a propriedade “Account” de para “LocalSystem”.


Para alterar o nome deste serviço na visualização da janela de Serviços do Windows selecione o ícone ServiceInstaller1 e na propriedade “DisplayName” coloque o nome desejado.

 

rmdpwinserfig06.jpg 

Figura 6 – Project Installer

 

Para instalar o serviço você pode criar um projeto do tipo Setup ou  vá ao menu:

Iniciar -> Programas -> Microsoft Visual Studio .NET 2005 -> Visual Studio .NET Tools-> Visual Studio .NET 2005 Command Prompt.

 

Depois vá até a pasta onde o arquivo foi compilado e digite o comando abaixo pressionado a tecla Enter logo em seguida:

Installutil Service1.exe

 

Se tudo der certo o console exibirá uma mensagem de sucesso. Por ultimo vá até a janela de serviços do Windows e inicie o serviço.

 

Chegamos ao final desse artigo. Até o próximo!