Fiz algumas alterações visuais no programa então para poupar tempo peço para quem estiver acompanhando baixe o projeto já com todos os objetos configurados, não modifiquei nada no código da aula anterior.
Download: Mega
Ok, com o projeto em mãos podemos começar a trabalhar nos códigos novamente.
Vamos trabalhar com arquivos .ini, até onde sei a plataforma .net não tem um suporte nativo para trabalhar com esses arquivos mas isso não é um problemas, vamos utilizar uma DLL do windows para fazer essa parte.
Vamos criar uma nova classe chamada Configuration.cs (pressione Shift + Alt + C), com a classe criada temos que passar algumas variáveis do código anterior (que trabalhava dentro do form) para esta classe.
Quais variáveis temos que passar? A da Porta e a do Nome. E ainda temos que criar uma nova variável para o Motd (message of the day).
Noss Configuration.cs ficou assim:
E nosso código do form (Form1.cs) ficou assim:
Podemos ver alguns erros que ocorreram após excluir as variáveis desse código, por enquanto deixe assim mesmo, com erro. Agora vamos instanciar a classe Configuration dentro do Program.cs, declarando como pública e estática:
Agora voltamos ao Form1.cs, dentro do método Form1() iremos adicionar o seguinte código:
O que ele faz? Ele adiciona um método (FormLoad) ao evento Load da classe Form que é quando a janela ainda está carregando. Agora devemos criar esse método FormLoad:
Uma explicada rápida sobre os argumentos dos métodos que são chamados nos eventos como esse FormLoad. O primeiro argumento (object) é como o próprio nome ja diz o objeto que chamou do evento, se foi um Form, o object é o Form, se for um botão o object é um botão.
EventArgs é a classe básica para os eventos que contém argumentos, mais pra frente usaremos isso na parte do client.
Dentro do método FormLoad, adicionaremos um código para instanciar a classe Configuration declarada no arquivo Program.cs.
Agora é hora de corrigir os erros que deram quando nós tiramos as variáveis da classe Form1 para a classe Configuration.
Onde tem ServerName, iremos mudar para Program.Config.Name e assim por diante, no final ficará assim:
Dentro do método inicial da classe Form1 (public Form1()), abaixo de this.Load... iremos adicionar um código para os eventos de Click dos componentes responsáveis por Ligar/Parar/Sair do servidor.
Agora precisamos criar esse métodos, todos utilizam o padrão de argumentos (object, EventArgs), fica assim no final:
Agora basta adicionar as funções que criamos anteriormente: Start, Stop e para sair utilizamos Application.Exit(). Da seguinte forma:
Podem testar e verão que está funcionando, porém... A label de status não mudou. Isso porque esquecemos de criar um código para isso, dentro do método Start() e Stop() iremos adicionar um código para mudar o texto e a cor da lblStatus.
Veja como ficou:
Pronto, se testarem irão ver que está tudo funcionando perfeitamente...
Agora sim podemos voltar para a classe Configuration e criar os métodos para carregar as configurações iniciais apartir de um arquivo .ini.
Iremos importar dois headers o System.Runtime.InteropServices e o System.Text.
O 1º nos permitirá importar métodos externos (no caso de uma dll) através do método DllImport, o 2º nós usaremos para utilizar o StringBuilder que usaremos para ler o arquivo .ini.
No topo do código adicione:
Dentro do código adicione:
Abra a imagem fora do tópico para ver completa.
Bom, por hora é só, no próximo tutorial irei mostrar como ler/escrever arquivos .ini utilizando esses métodos que importamos.
Qualquer dúvida postem aqui :)
Download: Mega
Download: Mega
Ok, com o projeto em mãos podemos começar a trabalhar nos códigos novamente.
Vamos trabalhar com arquivos .ini, até onde sei a plataforma .net não tem um suporte nativo para trabalhar com esses arquivos mas isso não é um problemas, vamos utilizar uma DLL do windows para fazer essa parte.
Vamos criar uma nova classe chamada Configuration.cs (pressione Shift + Alt + C), com a classe criada temos que passar algumas variáveis do código anterior (que trabalhava dentro do form) para esta classe.
Quais variáveis temos que passar? A da Porta e a do Nome. E ainda temos que criar uma nova variável para o Motd (message of the day).
Noss Configuration.cs ficou assim:
E nosso código do form (Form1.cs) ficou assim:
Podemos ver alguns erros que ocorreram após excluir as variáveis desse código, por enquanto deixe assim mesmo, com erro. Agora vamos instanciar a classe Configuration dentro do Program.cs, declarando como pública e estática:
Agora voltamos ao Form1.cs, dentro do método Form1() iremos adicionar o seguinte código:
O que ele faz? Ele adiciona um método (FormLoad) ao evento Load da classe Form que é quando a janela ainda está carregando. Agora devemos criar esse método FormLoad:
Uma explicada rápida sobre os argumentos dos métodos que são chamados nos eventos como esse FormLoad. O primeiro argumento (object) é como o próprio nome ja diz o objeto que chamou do evento, se foi um Form, o object é o Form, se for um botão o object é um botão.
EventArgs é a classe básica para os eventos que contém argumentos, mais pra frente usaremos isso na parte do client.
Dentro do método FormLoad, adicionaremos um código para instanciar a classe Configuration declarada no arquivo Program.cs.
Agora é hora de corrigir os erros que deram quando nós tiramos as variáveis da classe Form1 para a classe Configuration.
Onde tem ServerName, iremos mudar para Program.Config.Name e assim por diante, no final ficará assim:
Dentro do método inicial da classe Form1 (public Form1()), abaixo de this.Load... iremos adicionar um código para os eventos de Click dos componentes responsáveis por Ligar/Parar/Sair do servidor.
Agora precisamos criar esse métodos, todos utilizam o padrão de argumentos (object, EventArgs), fica assim no final:
Agora basta adicionar as funções que criamos anteriormente: Start, Stop e para sair utilizamos Application.Exit(). Da seguinte forma:
Podem testar e verão que está funcionando, porém... A label de status não mudou. Isso porque esquecemos de criar um código para isso, dentro do método Start() e Stop() iremos adicionar um código para mudar o texto e a cor da lblStatus.
Veja como ficou:
Pronto, se testarem irão ver que está tudo funcionando perfeitamente...
Agora sim podemos voltar para a classe Configuration e criar os métodos para carregar as configurações iniciais apartir de um arquivo .ini.
Iremos importar dois headers o System.Runtime.InteropServices e o System.Text.
O 1º nos permitirá importar métodos externos (no caso de uma dll) através do método DllImport, o 2º nós usaremos para utilizar o StringBuilder que usaremos para ler o arquivo .ini.
No topo do código adicione:
Dentro do código adicione:
Abra a imagem fora do tópico para ver completa.
Bom, por hora é só, no próximo tutorial irei mostrar como ler/escrever arquivos .ini utilizando esses métodos que importamos.
Qualquer dúvida postem aqui :)
Download: Mega