Ultimamente tenho andado a trabalhar num pequeno projecto pessoal que entretanto decide partilhar.
O objectivo deste projecto é fazer uma aplicação semelhante ao Outlook em termos de interface mas, em vez de tratar de emails, esta aplicação seria direccionada para… qualquer coisa.
Este qualquer coisa não está aqui apenas porque não decidi sobre o que quero fazer a aplicação mas sim porque quero que seja possível que se consiga alterar completamente o alvo da aplicação, bastando para isso alterar os plugins registados na aplicação.
Se, por exemplo, eu fizer um plugin para gerir a minha colecção de DVDs’, nada impede que alguém faça um plugin para gerir a sua biblioteca de livros. Hey, e porque não fazer um plugin para gerir emails? E porque não ter isto tudo na mesma aplicação, com os plugins a comunicarem uns com os outros?
Aqui não há nada certo, apenas que a interface respeita a barra da esquerda – tal como o outlook - e que os documentos – sejam eles o que forem, aparecem à direita. Os plugins, no final, poderão interagir uns com os outros, não havendo qualquer restrição ao que será possível fazer com eles.
Assim, a primeira coisa que fiz foi a interface. Como podem ver na imagem, o nosso form principal é bastante… err, simples!
Tenho um ‘SplitContainer’ a separar as duas grandes áreas da interface e, à esquerda, um painel que irá ser semelhante – quando preenchido com alguma coisa – ao oferecido pelo outlook.
Usando os excelentes controlos Krypton Toolkit, ainda não fiz código nenhum… mas infelizmente a aplicação ainda não faz nada!

4 comments
Comments feed for this article
Julho 8, 2008 às 11:07 am
Stefan Camilleri
Nice idea… and how are you going to have them communicate? Are you going to define an interface or are you just going to let them do what they want?
I’m intrigued… this would be a good place to build my recipe book… (code recipes of course :Þ)
Julho 8, 2008 às 12:49 pm
caxaria
Well.. they will be able to do whatever they want… but they will also have a interface
More details soon
Julho 8, 2008 às 1:48 pm
Stefan Camilleri
Love your icon
Julho 31, 2008 às 2:33 pm
Plugins: Shell « using System.Reflection;
[...] classes descritas até agora (parte 1 e parte 2) estão num projecto sem qualquer acesso a forms, não incluindo o [...]