Lotus Notes

Eu estou programando bastante em notes ultimamente. Estou fazendo Views, Agents, Forms, Pages, Outlines, Buttons, Actions e outros. Vou dizer que no inicio foi dificílimo porque eu não conseguia achar NENHUMA documentação suficientemente estruturada para me guiar. Não sendo injusto eu consultei vários sites (quem diria, pra mim Lotus Notes era um aplicativo exclusivamente comercial sem muita documentação externa, mas existe uma comunidade razoável de experts que usam essa tecnologia pra quase tudo!!).

http://www.lotusguru.com/

http://www.nsftools.com/

http://openntf.org/Internal/home.nsf

http://www.ibm.com/developerworks/lotus (óbvio)

http://www-10.lotus.com/ldd/nd6forum.nsf/Resources/ForumFAQs?OpenDocument

Eu juro que eu procurei livros e me embrenhei o máximo possível afim de aprender as malignas linguagens @Formula e LotusScript e hoje posso dizer o seguinte: Eu sei programar Notes. Não estou dizendo que eu sei tudo, mas conheço o framework suficientemente bem para conseguir o básico aos outros.

Primeiramente tenho que falar sobre a IDE que usa-se para conseguir qualquer resultado com o notes o nosso queridíssimo Lotus Notes Designer. Não posso deixar de poupar elogios para essa IDE:

  1. É a pior IDE do mundo
  2. Dificulta codificação estruturada moderna (MVC model? Tá doido? Orientação a objeto? Pra quê isso?)
  3. Debugger lixorento “bugado” (!!)

Gostaria de enfatizar especialmente o item 2!!! As linguagens disponíveis (lotusscript e java) apesar de suportarem orientação a objeto dificilmente beneficiar-se-ão disso. A IDE DIFICULTA uma boa organização (por quê forçar o código estar separado em Script Libraries, Agents, Forms cada um subdividido de uma maneira diferente?). Acaba que a codificação acontece toda dentro de script libraries (ou seja.. coleções de funções no pior estilo C-Like) e é “consumida” pelos clientes (forms, views, agents, action buttons etc). Portanto se você é iniciante em desenvolvimento notes não se impressione: sim é tudo péssimamente suportado mas a experiência vai diminuir a dificuldade aos poucos.

Gostaria de trilhar um pequeno Roadmap para os iniciantes (em ordem de relevância/didática) que os aprendizes da milenar arte de programar notes poderiam seguir (se quiserem facilitar suas vidas:

  1. Estude o objeto NotesSession: ele é o coração de quase toda e qualquer aplicação notes. Cuidado com o uso indiscriminado, ele é pesado pois ele representa a sua sessão de execução do programa (sim! o notes client).
  2. Estude o objeto NotesDatabase: vai automatizar o notes? pode apostar que você vai usar um database notes (*.nsf), seus dados estarão lá, assim como seus arquivos de configuração, formulários de apresentação, agentes, actions etc.
  3. Estudo o objeto NotesDocument: Sim você vai usar esse bichinho DIRETO! Ele é como se fosse a unidade básica de tudo dentro do notes, vale a pena dar uma atenção especial a ele
  4. Estude os objetos de interface (NotesUIWorkspace e NotesUIDocument): Eles são quase que a base total de toda programação de interfaces do notes. A mágica aconteve via esses dois objetos
  5. Estude os objetos de view (NotesView): Elas são parte essencial do notes e praticamente a principal interface entre o utilizador e o programa. Dê especial atenção a classe NotesViewEntry que funciona como um “ponteiro” (no sentido de C/C++) para as linhas das views e por isso são importantíssimos aliados na geração de dados e maniputalação dos mesmo.
  6. Estude os objetos de navegação e coleção (NotesViewNavigator, NotesDocumentCollection e outros):  Eles são uma mão na roda quando a facilidade de uso da API é algo importante e a performance é algo impactante
  7. Aprenda como funciona a indexação do notes (essencial para todo programador)

Prometo que volto a escrever sobre o Notes dada a escassa documentação (e quando existente altamente deficitária) do assunto em português. Posso adiantar que algumas dicas “quentes” devem surgir (como programar “multi thread” em lotus script, como forçar indexações no notes e como resolver problemas “genéricos”).

~ por Vinicius Menezes em Sábado 6 Junho, 2009.

Deixe uma resposta