Revista MSDN Magazine Edição 20 - Criando um Windows Service no Visual Studio .Net

Artigo Originalmente Publicado na MSDN Magazine Edição 20

Clique aqui para ler todos os artigos desta edição

 

Criando um Windows Service no Visual Studio .Net

por Eduardo Miranda

Este artigo discute

Este artigo usa as seguintes tecnologias:

·Criando um Windows Service no Visual Studio.Net

·Interagindo com um Windows Service

C#, VS.Net e Winforms

 

Download:

fontesWindowsService.zip (113KB)

Chapéu

C#, Windows Services

 

 

Windows Services ou NT Services são aplicações que rodam em background no sistema operacional e não têm interações com o usuário. Estes aplicativos podem configurados para iniciar junto com o Windows, portanto são ideais para tarefas que devem ser realizadas sem a intervenção de um usuário, como por exemplo limpar semanalmente um diretório de trabalho ou monitorar a chegada de um arquivo em um determinado diretório.

Os serviços instalados em seu computador podem ser gerenciados através do Services Control Manager (SCM), visto na Figura 1, que pode ser acessado através do Control Panel > Administrative Tools > Services. Além dos servidores, como o IIS e o SQL Server, existem serviços do aplicativo de anti-virus, firewall, etc. Todos realizando trabalhos em background em nosso computador.

 

Figura 1. O Service Control Manager permite gerenciar os serviços instalados.

 

A esquerda da lista de serviços estão todos os comandos que podem ser realizados com o serviço, no exemplo da Figura 1 estão disponíveis os comandos de Stop e Restart, mas não está disponível o comando de Pause, mais a frente será possível entender porque e como definir isto. Clicando com o botão direito em cima do serviço desejado e escolhendo a opção Properties, a janela de propriedades se abre e nela é possível consultar e alterar as configurações de segurança, tratamento de erros e inicialização.

O .Net Framework, em conjunto com o Visual Studio.Net, tornou fácil a tarefa de criar, configurar e instalar um Windows Service. O objetivo deste artigo é mostrar passo a passo como isto é feito. Além disto pretende mostrar como um aplicativo .Net pode interagir com o serviço criado, enviando comandos e alterando o seu estado.

 

Criando o novo projeto

Para criar um Windows Service no Visual Studio.net abra um novo projeto e escolha o template Windows Service, conforme a Figura 2. Este template irá criar um novo projeto contendo um arquivo chamado Service1.cs e mostrará a classe Service1 em modo Design. Clique em “click here to switch to code view” para ver seu código fonte. A classe criada herda da classe abstrata System.ServiceProcess.ServiceBase. Todas as funcionalidades necessárias para um Windows Service já estão implementas nesta classe, facilitando bastante o trabalho.

 

Figura 2. Escolhendo a template de Windows Service para um novo projeto.

 

O novo Windows Service está pronto, porém sem nenhuma funcionalidade, o próximo passo é conhecer melhor a propriedades e métodos herdados da ServiceBase e entender como fazer com que o Service execute as tarefas desejadas.

 

Métodos e Propriedades de um Windows Service

Dois métodos são fundamentais para que o Windows Service execute suas funções, o OnStart e o OnStop. O primeiro é chamado toda vez que o serviço é iniciado e deve preparar o serviço para executar suas tarefas. O segundo é chamado quando o serviço pára, e deve liberar todos os recursos alocados pelo OnStart e preparar o serviço para seu encerramento.

Em um Windows Service, apesar de existir um método construtor, as tarefas que o serviço deve executar ao se iniciar devem ser implementadas no método OnStart, pois o mesmo é chamado toda vez que o serviço é iniciado. É importante frisar que enquanto este método não for sobrescrito o serviço não executará nenhuma tarefa. Estes não são os dois únicos métodos que podem ser sobrescritos em um serviço. A " [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados