tecnologiatecnologiapessoallinkshomepróximo
 Novidades | Dicas | Downloads | Projetos | Padrões de UI

Projetos Delphi - Aplicativos
Explorador DB
Grau de Utilidade: 10 (alto)
Grau de Dificuldade: 10 (alto)
Descrição: conjunto integrado de subsistemas que auxiliam no acesso, configuração, manutenção e documentação de bases de dados, criação e emissão de relatórios (simples e complexos), importação e exportação de dados, entre outras atividades relacionadas. Conta com os seguintes subsistemas: subsistema de configuração de acesso a dados, permitindo a definição (persistente) dos parâmetros de conexão a um determinado banco de dados, indicando, em especial, a camada de acesso a dados utilizada (BDE, ADO, ...); subsistema de exploração de meta dados, permitindo a consulta e impressão de catálogos, a geração de scripts de objetos do banco a partir de catálogos, a realização de backup de tabelas dos catálogos, a sincronização de catálogos de bancos de dados distintos, etc; subsistema de exploração SQL, com editor de texto com suporte a identificação de sintaxe, funcionalidade para execução de comandos SQL simples, em batch e até mesmo consultas heterogêneas entre vários bancos; subsistema de construção visual de consultas, para facilitar a consulta a dados por usuários finais; subsistema de criação de tabelas de referência cruzada, permitindo a derivação de visões complexas dos dados através da definição de colunas, na visão derivada, representando valores de campos nas tabelas/visões existentes; subsistema de dicionário de dados, permitindo a geração de um dicionário a partir de um catálogo e a criação de um novo banco a partir de um dicionário existente; subsistema de importação e exportação de dados, permitindo a troca de dados entre bancos; subsistema de geração de relatórios, permitindo ao usuário a criação visual de soluções completas de relatórios simples e complexos. Particularmente útil para programadores e analistas que desejam de alguma forma manipular, documentar ou consultar os dados ou meta dados de um ou mais bancos de dados; igualmente útil para usuários finais que desejam documentar seus sistemas, extrair relatórios dos dados existentes, migrar ou exportar dados entre diversos formatos, etc. Observação: o aplicativo pode ser desmembrado em aplicativos independentes e ser transformado num suite.
Explorador Web
Grau de Utilidade: 07 (regular-alto)
Grau de Dificuldade: 07 (regular-alto)
Descrição: Aplicativo que permite a automação do processamento de formulários web que utilizam os métodos GET e POST para envio de seus dados. Primeiramente, o usuário seleciona a página web onde se encontra o formulário que deseja automatizar. Em seguida, define quais os parâmetros do formulário que receberão valores fixos e quais os que receberão valores variando de acordo com as opções disponíveis. Finalmente, o usuário define como a consulta será executada e de que forma seus resultados serão armazenados na estação de trabalho. Será possível armazenar o stream HTML resultante das pesquisas, assim como processar esse stream para extrair informações contidas no HTML, como tabelas de dados e outras informações mais específicas. Outras funcionalidades adicionais poderiam incluir: pesquisa (recursiva) de links quebrados em sites, pesquisa por listas de referências (e-mails ou sites externos) em sites, download completo de um site para navegação offline (com correção de referências), gerenciador de downloads. Particularmente útil para extração de dados em sites que disponibilizam interfaces de consulta a bancos de dados complexos, para manutenção de sites e para manipulação de sites offline. Observação: o aplicativo pode ser desmembrado em aplicativos independentes e ser transformado num suite.
Gerenciador Avançado de Arquivos
Grau de Utilidade: ?? (???)
Grau de Dificuldade: ?? (???)
Descrição: Aplicativo que permite a execução de operações avançadas em conjuntos de arquivos selecionados. A idéia do aplicativo é permitir a seleção de um conjunto de arquivos de forma simples e flexível para, a partir desse conjunto, realizar operações avançadas como: alteração de data/hora dos arquivos, localização e substituição de textos nos arquivos, inclusão de blocos de texto em posições específicas dos arquivos, comparação de conteúdo de arquivos e estruturas de diretórios, sincronização de conteúdo de arquivos e diretórios, dentre outras. Seu principal objetivo é oferecer um conjunto avançado de recursos, complementares aos serviços oferecidos pelo Windows Explorer.
Dir Printer
Grau de Utilidade: 05 (regular)
Grau de Dificuldade: 02 (baixo)
Descrição: Aplicativo que utiliza um conjunto de pastas do sistema de arquivos como um spool de impressão em alto nível. O aplicativo verifica, a cada intervalo (configurável) de tempo t, o conteúdo das pastas de spool e imprime, segundo opções previamente definidas, os documentos contidos nessas pastas. Particularmente útil para impressão em horários definidos ou impressão remota, utilizando o protocolo FTP para transferência de arquivos para o spool remoto.
WordPad: Editor de Textos com Sintaxe
Grau de Utilidade: 07 (regular)
Grau de Dificuldade: 02 (baixo)
Descrição: Editor de textos orientado para códigos fonte com iluminação de sintaxe. Permite a definição de projetos (conjunto de arquivos), a definição de salvamento automático dos textos, o registro de novas sintaxes e associação de extensões de forma a flexibilizar o uso do editor com códigos fonte de linguagens não incluídas na versão original, definição de linha de comando para compilação, verificação de sintaxe ou link-edição do códigio editado, etc. Particularmente útil para programadores de scripts e aplicativos que necessitem de um editor rápido, versátil e inteligente para trabalhar fora do ambiente integrado de produção; útil também para programadores que não gostam de utilizar ferramentas visuais de desenvolvimento para web que incluem tags e sujam o código da página web resultante.
Proxy IP
Grau de Utilidade: 07 (regular)
Grau de Dificuldade: 06 (regular)
Descrição: Proxy de serviços TCP e UDP básicos, com o propósito de disponibilizar uma infra-estrutura simples e eficiente de encaminhamento e controle de transferência de conteúdo IP entre redes, através de uma máquina que participa das duas redes. Particularmente útil para implementar o compartilhamento de acesso a Internet em redes locais.
Sistema de Avaliações
Grau de Utilidade: 07 (regular)
Grau de Dificuldade: 04 (regular-baixo)
Descrição: Aplicativo que permite o cadastramento e posterior aplicação de testes, questionários, provas- avaliações de um modo geral. Permite a definição de questões, contendo opcionalmente textos ou figuras, com suas respectivas alternativas e respostas; permite a aplicação desses questionários, a correção e posterior análise dos resultados de cada teste, apresentando indicadores como: percentis e níveis de acerto por área em cada teste; distribuição das notas dos testes; avaliação do grau de acerto e erro das questões; dentre outros. Particularmente útil para empresas, escolas e sites web que necessitam de um instrumento objetivo para verificar (por motivação acadêmica, profissional, ou outra qualquer) o desempenho ou qualificação de uma pessoa ou grupo.
Projetos Delphi - Arquiteturas de Classes
Arquitetura JClasses
Grau de Utilidade: 10 (alta)
Grau de Dificuldade: 07 (média)
Descrição: Classes análogas às classes das bibliotecas padrão Java, com particular ênfase nas classes Java de streams, containers e outras helper classes. A riqueza das classes Java é de tal ordem que mesmo uma biblioteca com um subconjunto limitado dessas classes seria de grande utilidade na programação das tarefas mais rotineiras e trabalhosas do dia-a-dia.
Arquitetura de Frames
Grau de Utilidade: ?? (???)
Grau de Dificuldade: ?? (???)
Descrição:
Arquitetura de Forms
Grau de Utilidade: ?? (???)
Grau de Dificuldade: ?? (???)
Descrição:
Arquitetura de Assistentes
Grau de Utilidade: ?? (???)
Grau de Dificuldade: ?? (???)
Descrição: Conjunto de classes de formulários e frames definidas de forma a facilitar a criação de assistentes. A idéia é implementar o controle básico do assistente num formulário base e associar cada página do assisntente a um frame base, que estaria funcionalmente ligado ao formulário base. Dessa forma, a implementação de um novo assistente ficaria facilitada pois consistiria, basicamente, da implementação dos frames concretos, representado cada uma das páginas do assistente, e do formulário base, representado o container das páginas do assistente. É imprescindível que o formulário base defina a interface de comunicação com as páginas do assistente, assim como as interfaces de controle do próprio assistente. Entre as interfaces já imaginadas para o formulário base estão: PrepareWizard, UnprepareWizard, PreparePage, UnpreparePage, OpenPage, ClosePage, CancelWizard, CurrentPath, DefinedPath; para os frames base: OpenPage, ClosePage, IsFirst, IsLast, AllowBack, AllowNext, AllowHelp, AllowClose, AllowCancel.
Arquitetura de Acesso a Dados
Grau de Utilidade: ?? (???)
Grau de Dificuldade: ?? (???)
Descrição: Definição de uma infra-estrutura genérica de acesso a dados, com o intuito de criar componentes de acesso a dados nativos para os inúmeros bancos de dados e middleware disponíveis no mercado. Seria formada, basicamente, por camadas, dispostas da seguinte forma: no nível mais baixo, o mapeamento das APIs de acesso a dados; num segundo nível, objetos de baixo nível que utilizariam as APIs para oferecer serviços de acesso a dados de alta performance, com suporte a multithreading; no nível mais alto, descendentes de TDataSet que permitiriam a integração do acesso nativo ao modelo de acesso a dados do Delphi. Além das camadas apresentadas, a arquitetura estaria pronta para implementações de acesso a dados a partir de componentes remotos, através de TCP ou UDP, num modelo n-tier que viabilizaria múltiplas camadas de acesso a dados de forma tranparente. A vantagem de uma arquitetura desse tipo está na possibilidade do desenvolvimento de aplicativos com objetos padronizados de baixo nível e alta performance sem o overhead imposto pela classe TDataset; esses objetos de baixo nível seriam ideais para implementação de soluções em várias camadas, aplicativos web, etc. Na arquitetura de alto nível, além dos datasets propriamente ditos, estariam integrados ao modelo componentes para o controle das tarefas realizadas sobre os datasets (UNDO Log) e para as alterações realizadas sobre os dados (SQL Log) de forma que, se necessário, as operações sobre os dados possam ser trabalhadas localmente e somente enviadas ao banco quando necessário; esse modelo pode ser estendido ao ponto de permitir o armazenamento local das alterações sobre os dados por um tempo indefinido, ficando o aplicativo, obviamente, sujeito às restrições do banco no momento da atualização final.
Arquitetura de Properties
Grau de Utilidade: ?? (???)
Grau de Dificuldade: ?? (???)
Descrição: Definição de frames e forms que permitiriam a edição de informações no formato de uma lista de propriedades, com as propriedades dispostas verticalmente numa planilha, e seus valores dispostos ao seu lado na planilha. Útil para a criação de um editor de registros genérico, onde as propriedades seria os campos de um registro de uma tabela e seus valores os valores do registro propriamente dito.
Arquitetura de Plugins
Grau de Utilidade: ?? (???)
Grau de Dificuldade: ?? (???)
Descrição: Definição de uma arquitetura de classes e uma organização de código que permita aos aplicativos que aderirem a essa arquitetura a integração e/ou incorporação de funcionalidades avançadas ao aplicativo, automaticamente, em tempo de execução. Um exemplo poderia ser, num aplicativo qualquer, permitir a integração de um log de atividades, disparado de acordo com as configurações do próprio plug-in: o aplicativo enviaria mensagens ao plug-in que as trataria e realizaria suas tarefas baseando-se nas suas prórpias cofigurações, permitindo ao usuário do programa, de alguma forma, interagir com o plugin. Poderíamos definir, no plug-in (DLL), uma série de interfaces que permitiriam: incorporação de itens de menu no aplicativo principal; inicialização e finalização das estruturas internas do plug-in; configuração do plug-in; lista de ações do plug-in; e, execução das ações do plug-in.
Arquitetura de Eventos (Discretos e Contínuos)
Grau de Utilidade: ?? (???)
Grau de Dificuldade: ?? (???)
Descrição: Baseada nas classes de simulador que estudei durante o mestrado na matéria PLP (Paradigmas de Linguagens de Programação), e que oferece uma fantástica infra-estrutura para a criação genérica de simulações. A idéia é estudar a arquitetura de maneira mais profunda e criar uma arquitetura própria, com possibilidade de aplicação direta em diversos problemas como: resolução de sistemas de equação, equações diferenciais e integrais, escalonamento de processos e alocação de memória, produtores e consumidores, filósofos, etc. O maior trabalho aqui será a abstração máxima da arquitetura e a identificação das diferentes formas de simulação e a evolução dos estados dos elementos que compõem a simulação. De início, vejo simulações baseadas em tempo (nas quais o tempo é o fator determinante das alterações de estado) e baseadas em eventos (onde eventos discretos são responsáveis pelas alterações de estado). Com isso em mente, e com um pouco mais de estudo e leitura, será possível derivar uma arquitetura para a criação e resolução de uma grande classe de problemas.
Arquitetura de Threads e Thread-Safe Classes
Grau de Utilidade: ?? (???)
Grau de Dificuldade: ?? (???)
Descrição: Definição de classes e interfaces que permitam a criação de threads de alta performance. As threads deverão oferecer o conjunto de serviços mínimo necessário para trabalhar no nível de performance mais alto possível. Para isso, deve se construir uma estrutura a parte das janelas do windows e, em classes mais baixas na hierarquia, oferecer esse tipo de suporte. Ao mesmo tempo, será necessário oferecer classes utilitárias para permitir a sincronização das threads, e outras classes para permitir a manipulação sincronizada de objetos (thread-safe). Útil para a implementação de funcionalidades de alto nível que necessitem de uma arquitetura de threads de uso fácil e de alta performance, como servidores web, proxies ip, conexões a bancos de dados, e outras tarefas intensivas em I/O ou CPU que podem ser executadas em paralelo enquanto o aplicativo principal está em execução.
Modelos de Relatórios
Grau de Utilidade: ?? (???)
Grau de Dificuldade: ?? (???)
Descrição: Criação de unidades contendo relatórios simples e avançados baseados em QuickReport e Report Builder. A idéia é oferecer uma interface simples, baseada em uma única chamada, para a criação automática do relatório. Inicialmente, estaríamos falando de listagens e relatórios em formato de ficha com dados de uma única tabela, e de relatórios mestre detalhe em um nível. Interessante para permitir a criação padronizada das saídas mais simples de sistemas. Não indicado para relatórios gerenciais ou saídas mais sofisticadas.
RTTI Friend
Grau de Utilidade: ?? (???)
Grau de Dificuldade: ?? (???)
Descrição: Classe ou conjunto de classes cujo principal papel é esconder as dificuldades inerentes à utilização da RTTI do Delphi, ainda assim permitindo ao programador médio a utilização dessa ferramenta de modo simples e intuitivo.
Arquitetura de Patterns
Grau de Utilidade: ?? (???)
Grau de Dificuldade: ?? (???)
Descrição: Implementação de classes e interfaces que implementam de forma abstrata e/ou flexível serviços e relações padronizadas entre objetos. Baseada, inicialmente, no clássico livro de Gamma, Design Patterns.
Arquitetura de Classes Baseadas em Algoritmos
Grau de Utilidade: ?? (???)
Grau de Dificuldade: ?? (???)
Descrição: Classes implementadas a partir de livros avançados de algoritmo e que podem servir, incialmente, como demonstração e que, com o crescimento da base de código implementado, podem vir a servir como base para o desenvolvimento de código de alta performance em várias situações. Vale mencionar os três volumes de Knuth.




Topo