Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro

Alpha Servers
Resultados 1 a 1 de 1
  1. #1

    Avatar de navossoc
    Data de Ingresso
    Jan 2013
    Localização
    local
    Posts
    321
    Agradecido
    535
    Agradeceu
    199
    Peso da Avaliação
    15

    Padrão UDPTools [bin+source] (start/stop apps remoto)

    Como eu não uso mais essa ferramenta que eu desenvolvi, decidi compartilhá-la :P

    Antes de mais nada, vou explicar para que eu usava a ferramenta.

    Resumo:
    Eu testo minhas customizações em servidores remotos, por isso, eu preciso de uma maneira simples e rápida de finalizar/executar um aplicativo remotamente.

    Então minha rotina era:
    1. Programava
    2. Compilava
    3. Parava o aplicativo (no remoto)
    4. Upava o aplicativo por ftp (curl)
    5. Iniciava o aplicativo (no remoto)
    6. Fazia os testes e recomeçava o ciclo se necessário


    Não preciso nem dizer como essa ferramenta facilitava minha vida.
    Para enviar o arquivo por ftp o processo não podia estar em uso, caso contrário o arquivo não poderia ser substituído, então configurando os eventos (pre-build e post-build) do Visual Studio eu conseguia automatizar todo aquele processo com uma simples tecla.

    Configuração:
    O cliente deve ser configurado no arquivo UDPClient.exe.config.

    ip e port - endereço IP para o qual será enviado os pedidos.
    passkey - uma string aleatória qualquer para ajudar a evitar o uso de terceiros.

    O servidor deve ser configurado no arquivo UDPServer.exe.config.

    ip e port - endereço IP em que o servidor vai escutar.
    passkey - uma string aleatória qualquer para ajudar a evitar o uso de terceiros.

    apps - array contendo todos os "perfis" dos aplicativos que serão gerenciados.

    Sintaxe:
    Código:
    <string>name|C:\full\path\application.exe|command line|C:\working\dir</string>
    Então 3 exemplos para ilustrar:
    Código:
    <string>calculadora|C:\Windows\System32\calc.exe</string>
    <string>paint|C:\Windows\System32\mspaint.exe||C:\Windows\System32\</string>
    <string>notepad|C:\Windows\System32\notepad.exe|arquivo_de_texto.txt|C:\Users\Administrator\Desktop\</string>
    Com isso é possível usar os seguintes comandos no cliente:
    Código:
    UDPClient.exe start calculadora
    Isso irá executar o perfil "calculadora", no caso, abrirá o calc.exe.

    Código:
    UDPClient.exe stop paint
    Isso irá finalizar todos os processos do perfil "paint" (mspaint.exe).
    O processo é finalizado por nome, não mantenho referência dos PID. Nada impede de você mudar isso no source.

    Código:
    UDPClient.exe restart notepad
    Isso irá finalizar os processos notepad.exe que estão abertos e logo em seguida executará novamente o aplicativo.
    Como dessa vez foi especificado um parâmetro para o aplicativo, ele vai abrir o arquivo txt localizado no desktop (C:\Users\Administrator\Desktop\arquivo_de_texto.t xt) (path relativo ao working_dir)

    PS: O valor do passkey deve ser igual no cliente e servidor (obviamente).

    Código fonte:
    Vou dar uma resumida básica em como funciona:

    • A ferramenta está divida em dois aplicativos (cliente e servidor).
    • O cliente é quem faz as requisições (start/stop/restart).
    • O servidor é responsável por gerenciar o estado das aplicações.
    • A comunicação é feita através de uma porta UDP (configurável).


    O código foi escrito em C# e está configurado para o VS 2013/.NET 4.5.

    Não me recordo, mas acredito que não cheguei a usar nenhum recurso específico de versões mais novas do .NET, então se necessário, deve ser fácil dar um downgrade na dependência da versão do .NET.
    Tanto que quando o aplicativo foi escrito (em 2011) e não existia VS 2013, então provavelmente foi criado com o VS 2010 e acabei atualizando o projeto depois para o VS 2013 (em 2014).

    O tratamento de erros também é bem básico, portanto configurem corretamente, caso contrário o aplicativo irá travar.

    Observação:
    Eu sei que existem outras maneiras de conseguir os mesmos resultados, mas eu queria controle sobre isso.
    Então, nada melhor do que desenvolver sua própria solução para as suas necessidades.

    A idéia usada aqui serve para "qualquer coisa", então se alguém quiser mover o tópico depois, fique a vontade.

    Não me responsabilizo por nada, não sei de nada, mas se quiser me pagar um café ou uma pizza eu aceito (hahah).
    Enfim, estou anexando o source e os binários, usem e façam o que quiserem :P

    []'s
    Arquivos Anexos Arquivos Anexos
    Última edição por navossoc; 20-01-2016 às 04:17 PM. Razão: Correções


 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Pedido| Source 97D+99I
    Por zwoorelook no fórum Pedidos
    Respostas: 3
    Último Post: 06-05-2014, 04:09 AM
  2. |Pedido| Source 96.40
    Por lukas05 no fórum Pedidos
    Respostas: 1
    Último Post: 09-08-2013, 10:10 PM
  3. |Release| Source 97d
    Por Getulio no fórum Sources
    Respostas: 5
    Último Post: 21-08-2012, 06:50 PM
  4. |Resolvido| Source SQL.cpp e SQL.h
    Por xxrenanxx no fórum Pedidos
    Respostas: 1
    Último Post: 14-08-2010, 10:49 AM

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •