Junho 2008 - Posts

Afinal o Mono realmente é uma alternativa!

Afinal o Mono realmente é uma alternativa!

Quem segue o meu blog sabe que sou uma pessoa que defende a liberdade de escolha. Eu para desenvolvimento escolho o .NET, mas, para sistema operativo escolho Linux (Ubuntu).
Aos mais desatentos, esta é uma ligação que parece ter poucos pontos onde se tocam, mas, não poderia ser mais longe da verdade. Com a framework Mono, já podemos ter aplicações a correr em Windows e Linux com a mesma performance e ainda acrescendo a fiabilidade que um sistema baseado na tecnologia UX permite.

Até agora só tenho usando em termos pessoais, experiências e alguns posts aqui neste blog, mas, finalmente tive a oportunidade de desenvolver algo que tenha que correr tanto num Linux com num Windows e a decisão foi .NET no Windows e Mono no Linux.
A base de desenvolvimento é Windows + Visual Studio e a aplicação tanto tem que correr num sistema como noutro.

É basicamente um conjuntos de aplicações consola que vão ser executadas por um serviço (daemon no Linux) que monitorizam directórios e quando são lá colocados ficheiros, esta aplicação deve os processar o mais rapidamente possível.
Para monitorizar os directórios uso o objecto FileSystemWatcher, que funciona bem em ambos os sistemas. Manipular ficheiros leva-me a certos cuidados de programação como, sempre que querer concatenar o nome de um ficheiro a uma directoria, usar sempre System.IO.Path.Combine que cria a directoria correcta independentemente do sistema onde estamos.

Como os ficheiros que vão ser processados podem ter diversos formatos, este mecanismo usa plugins que conhece o formato de cada ficheiro, traduzindo-os para estruturas conhecidas pelas aplicação principal. Assim o que importa são os dados que podemos extrair dos ficheiros e não o formato dos mesmos.

Estou deveras contente por as palavras que tenho repetido nos últimos anos começarem a fazer eco em algumas empresas e em algumas cabeças. Aqui está um exemplo de como o Mono pode ser realmente uma alternativa.


Abraços
Paulo Aboim Pinto
Odivelas - Portugal

Posted por Paulo Aboim Pinto with no comments