Um dos desafios com que os programadores se deparam com alguma frequência é a criação de documentos de forma automática, de modo a optimizar e a reduzir o trabalho manual em aplicações de produtividade.
Quando o programador tem à sua disposição aplicações Microsoft Office, o seu trabalho está mais facilitado, especialmente se conjugado com tecnologia .NET. Mas, se quiser produzir documentos num formato aberto, como o ODF (Open Document Format), a documentação existente é muito escassa e as bibliotecas disponíveis são quase nulas e muito fracas.
Foi a necessidade de produzir documentos de texto ODF (ODT) em grande número, a partir de informação em bases de dados, que me levou a conhecer melhor este formato de ficheiros. A partir do conhecimento do formato ODF, foi possível desenvolver um mecanismo simples para o preenchimento de modelos de documentos de texto.
O que preciso, como quero… mais ou menos. Mais para mais. Comecemos por o básico: o que são métodos de extensão? Em poucas palavras, métodos de extensão são uma forma de injetar funcionalidades escritas por “nós”, personalizadas, diretamente em tipos que tomamos como “fechados”, quer sejam os escritos por a Microsoft ou os escritos por o vizinho de cima. Quando escrevo “injetar funcionalidades” estou-me a referir a métodos implementados por nós que para o Visual Studio fazem parte de determinada classe, e que podem ser chamados a partir de uma instância.
Uma das atracções da Store do Windows é a possibilidade de disponibilizar a nossa aplicação, não apenas em Portugal, mas também em qualquer um dos mais de 200 países em que a Store de Windows está disponível. Se o leitor considerar que o número de habitantes de Portugal ronda os 10,6 milhões de habitantes, e Reino Unido, por exemplo, cerca 61,7 milhões, França 64,3 milhões, ou EUA 300 milhões, podemos ver a diferença do potencial de mercados. No entanto, para tal ser possível, é necessário disponibilizar a aplicação nas várias línguas. Neste artigo vou falar de como podemos desenvolver a aplicação de forma a podê-la traduzir nas várias línguas, para que a aplicação detecte a língua do Windows e mude automaticamente os textos para a linguagem correspondente, sem intervenção do utilizador.
Eventos, interrupts, triggers, handlers, listeners, consumers… existem muitos nomes e muitos conceitos mas redundam todos na mesma filosofia. O conceito de evento é tão essencial, elementar e intrínseco que tão depressa os encontramos desde o nível de comunicação do hardware até ao software mais complexo do mundo, como também encontramos quem os use diariamente e nunca tenha ouvido falar deles.
Se pensarmos numa aplicação sem interface gráfico, apenas consola, e se assumirmos que é uma aplicação “standalone”, todas as instruções que são escritas são interpretadas na sua sequência original. Avança-se para a próxima instrução porque a anterior terminou, e assim sucessivamente. Se for necessária introdução de dados do utilizador, por exemplo, espera-se que termine e só depois se avança.
Este poderá parecer um artigo bastante simples sobre Visual Basic e até é na verdade, mas a realidade é que muito programadores ou aspirantes a programadores de Visual Basic não utilizam determinadas funcionalidades, acredito que por desconhecimento, que podem simplificar bastante o código.
O operador Like não está disponível no C# e pode ser substituído pela utilização de expressões regulares (regular expressions). No entanto, embora as expressões regulares sejam muito mais poderosas e versáteis, pequenas validações podem ser feitas mais facilmente usando este operador.
O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez.
Depara-se o leitor com esta citação, assim que abre o livro. Uma frase de Samuel Smiles.
Gosto particularmente da opção de abrir uma obra com uma citação famosa. Confere-lhe alguma mística, uma carga intelectual automática, que felizmente se reflecte nas páginas consequentes. Achei importante a personalidade do prefácio e genial todo o background introduzido desde o prólogo aos elementos de programação onde se optou por percorrer as transversalidades da programação informática, sempre de perto com o Visual Basic.