Mudanças entre as edições de "Página principal"
(93 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
= RFW - Rodrigo's Framework = | = RFW - Rodrigo's Framework = | ||
O objetivo deste projeto é criar um framework simplificado de produção de aplicações pequenas e médias que utilizem a arquitetura J2EE de forma mais | O objetivo deste projeto é criar um framework '''simplificado''' de produção de aplicações pequenas e médias que utilizem a arquitetura J2EE. Note que simplificado quer dizer seguindo um padrão já fechado e específico. Criando alguns padrões de desenvolvimento e classes utilitárias conseguimos produzir aplicações de forma mais rápida em 90% das situações. | ||
O RFW é o | == RFW - Kernel == | ||
O Kernel é a base para todos os outros módulos e deve conter as principais classes do RFW, sem depender de bibliotecas externas. O objetivo é fornecer o essencial para que todos os módulos do Framework funcionem de forma integrada, sem sobrecarregar a aplicação com dependências. | |||
Linha 18: | Linha 19: | ||
|- | |- | ||
| style="vertical-align:top; width:50%"| | | style="vertical-align:top; width:50%"| | ||
* [[Ambiente de Desenvolvimento]] | |||
** Arquivo [[rfwdev.properties]] | |||
* Classe estática [[RFW]] | * Classe estática [[RFW]] | ||
* [[Exceções & Tratamento]] | * [[Exceções & Tratamento]] | ||
* Estrutura de Dados | * Estrutura de Dados | ||
** [[RFWVO]] | ** [[RFWVO]] | ||
** [[RFWMO]] - Match Object | |||
** [[MetaObject]] - RFWVO_ | ** [[MetaObject]] - RFWVO_ | ||
** [[RFWMetaAnnotations]] | |||
** [[GhostVO]] - GVO | ** [[GhostVO]] - GVO | ||
** [[RFWOrderBy]] | |||
** [[RFWField]] | |||
* Processamento e Validação de Dados | * Processamento e Validação de Dados | ||
** [[PreProcess]] | ** [[PreProcess]] | ||
** [[RFWValidator]] < | ** [[RFWValidator]] | ||
** [[RFWDataFormatter]] | |||
* Interfaces | |||
** [[RFWDBProvider]] | |||
| style="vertical-align:top; width:50%"| | |||
* [[RFWLogger]] | |||
* [[RFWBundle]] | |||
* [[MeasureRuler]] - Precisa ser revisto, terminado e documentado. | |||
* [[EventDispatcher]] | |||
* [[Location]] - Dados de endereços. | |||
* [[FileVO]] - Persistência de arquivos. | |||
|} | |||
=== RFWUtils === | |||
Conjunto de classes utilitárias do framework. '''Todas as classes tem seu prefixo em RU para facilitar encontra-las pelo auto complete.''' | |||
{| class="wikitable" style="width:100%;" | |||
!scope="col"| Classe | |||
!scope="col"| Funcionalidades | |||
|- | |||
| style="vertical-align:top;text-align:center;width:200px"|<b>PreProcess</b> | |||
| style="vertical-align:top"|Esta classe faz parte de validação de estrutura e validação de dados, mas acaba sendo uma classe utilitária já que seus métodos são úteis em toda parte do sistema para validar e processar qualquer valor de variável. | |||
|- | |||
| style="vertical-align:top;text-align:center;width:200px"|<b>RUTypes</b> | |||
| style="vertical-align:top"|Essa classe agrupa todos os métodos de conversão de tipos. | |||
|- | |||
| style="vertical-align:top;text-align:center;width:200px"|<b>RUFile</b> | |||
| style="vertical-align:top"|Métodos de manipulação de arquivos. Desde os métodos mais triviais do File do java até operações mais elaboradas. | |||
|- | |||
| style="vertical-align:top;text-align:center;width:200px"|<b>RUGenerator</b> | |||
| style="vertical-align:top"|Métodos de geração de todo tipo de dados. Strings para teste, UUIDs, números, padrões, etc. | |||
|- | |||
| style="vertical-align:top;text-align:center;width:200px"|<b>RURecursiveClone</b> | |||
| style="vertical-align:top"|Métodos utilizados na clonagem recursiva de objetos, principalmente o RFWVO, para uma cópia completamente independente de dois objetos. | |||
|- | |||
| style="vertical-align:top;text-align:center;width:200px"|<b>RUReflex</b> | |||
| style="vertical-align:top"|Métodos para manipulação de objetos a partir de reflexão. Definição de valores em atributos, obtenção de informações de objetos, métodos, importações e vários métodos auxiliares para trabalhar com a estrutura de objetos do RFW. | |||
|- | |||
| style="vertical-align:top;text-align:center;width:200px"|<b>RUString</b> | |||
| style="vertical-align:top"|Métodos de manipulação de String, truncates, repetições, formatações, limpeza de espaços, tabs, caracteres inválidos, acentos, etc. | |||
|} | |||
== RFW - ORM == | |||
O RFW ORM é o módulo de ORM (Object-Relational Mapping) do FrameWork. Ele é responsável por gerenciar a persistência dos objetos baseados no [[RFWVO]] de forma integrada com as demais definições do sistema. | |||
As '''vantagens''' do RFW ORM sobre o Hibernate ou o EclipseLink são: | |||
* '''Menor uso de memória''' - sendo um código mais conciso e focado na necessidade, tem bem menos linhas de código que outras ferramentas. | |||
* '''Permite hot-deploy do código''' - como não utiliza inserção de bytecode no deploy permite que o código seja alterado de forma live. | |||
* '''Independente do JPA''' - Por ser independente da plataforma JPA (Java Persistence API) o RFW ORM pode ser utilizado tanto dentro de um projeto J2EE quanto de uma aplicação menor. | |||
* '''Sem dependência de bibliotecas externas''' - Por não utilizar nenhuma biblioteca externa, o módulo não carrega uma infinidade de dependências que pesam no sistema e carregam a JVM. <ref>Não tem nenhuma dependência direta, mas será necessário importar bibliotecas de conexão com o seu banco de dados, etc.</ref> | |||
Em compensação, as '''desvantagens''' do nosso ORM são: | |||
* '''Suporte ao MySQL e ao Derby''' - embora o framework trabalhe com a ideia de dialetos, atualmente ele só tem suporte ao MySQL e ao Derby. Novos bancos de dados precisam de alguma implementação desses dialetos. | |||
* '''Não altera a estrutura do banco de dados''' - Diferentemente dos "concorrentes" o RFW ORM não foi concebido para criar ou atualizar o banco de dados automaticamente, embora sua estrutura aceitasse o acréscimo dessa funcionalidade, atualmente não há suporte. | |||
* '''Menos maleável''' - Por ser baseado no [[RFWVO]], o RFW ORM exige que todo objeto tenha seu próprio ID único. Ou seja, todo objeto deve ser identificado por um ID. Isso quer não é possível criar uma PK com base em múltiplas colunas. Aqui será obrigatório uma coluna extra para id (e que obrigatoriamente se chamará id), e as outras colunas serão tratadas com uma constraint de uniquekey. | |||
*: É possível criar tabelas sem o id apenas em casos de N:N, desde que essa tabela não tenha um objeto [[RFWVO]] representando-a. Caso o relacionamento N:N tenha mais dados, será obrigatório ter uma coluna ID, mesmo que as duas colunas FK sejam suficientes para identificar o objeto. | |||
{| class="wikitable" style="width:100%;" | |||
!scope="col"| Design e Estrutura do FrameWork | |||
!scope="col"| Funcionalidades | |||
|- | |||
| <p align="justify" style="margin:10px;"><b>Tópicos relacionados à estrutura e design patters do FrameWork.</b></p> | |||
| <p align="justify" style="margin:10px;"><b>Classe de funcionalidades e Serviços que o FrameWork oferece.</b></p> | |||
|- | |||
| style="vertical-align:top; width:50%"| | |||
* Persistência de Dados | * Persistência de Dados | ||
** [[RFWDAO]] | ** [[RFWDAO]] | ||
** [[RFWDAOConverterInterface]] | |||
| style="vertical-align:top; width:50%"| | |||
* Converters Fornecidos | |||
** [[MeasureUnitDAOConverter]] | |||
|} | |||
== RFW - Sefaz == | |||
O módulo RFW.SEFAZ tem um objetivo de deixar transparente a conexão com os serviços da SEFAZ, como emissão de NFCe e NFe, e outros serviços disponíveis. | |||
Têm dependência apenas com o Axis2 para conexão do WebService. | |||
{| class="wikitable" style="width:100%;" | |||
!scope="col"| Design, Documentação e Outras Informações | |||
!scope="col"| Funcionalidades | |||
|- | |||
| <p align="justify" style="margin:10px;"><b>Tópicos relacionados à estrutura e design patters do FrameWork.</b></p> | |||
| <p align="justify" style="margin:10px;"><b>Classe de funcionalidades e Serviços que o FrameWork oferece.</b></p> | |||
|- | |||
| style="vertical-align:top; width:50%"| | |||
* Informações e Definições | |||
** [[Requisitos RFW.SEFAZ]] | |||
** [[Legislação e Informações Oficiais SEFAZ]] | |||
* Outros Documentos | |||
** [[Criando Stubs do Axis2 para WS da SEFAZ]] | |||
** [[XSD To Java Object (JAXB Plugin)]] | |||
** [[TrustManager para SEFAZ]] | |||
* Log | |||
** [[Problemas Conhecidos do RFW.SEFAZ]] | |||
| style="vertical-align:top; width:50%"| | |||
* Classes Principais | |||
** [[SEFAZDefinitions]] | |||
** [[SEFAZ]] | |||
* Classes Utilitárias | |||
** [[SEFAZUtils]] | |||
** [[SEFAZXMLValidator]] | |||
|} | |||
=== Utilização === | |||
Para utilizar o módulo basta instanciar a classe SEFAZ, passando as configurações já no construtor. Para os serviços da NFe será necessário o certificado do cliente e o certificados públicos da SEFAZ (para validar a segurança da conexão). | |||
Com a instância do SEFAZ criada, basta chamar os métodos equivalentes do webservice. | |||
== RFW - SPED == | |||
O **RFW.SPED** é uma biblioteca completa para o gerencimento dos arquivos do SPED. Facilita a montagem da estrutura do arquivo e sua manipulação de validação e cálculo dos campos automáticos. | |||
{| class="wikitable" style="width:100%;" | |||
!scope="col"| Clases Principais | |||
!scope="col"| Funcionalidades | |||
|- | |||
| <p align="justify" style="margin:10px;"><b>Tópicos relacionados à estrutura de classes e funcionamento básico do módulo.</b></p> | |||
| <p align="justify" style="margin:10px;"><b>Documentação e Requisitos</b></p> | |||
|- | |||
| style="vertical-align:top; width:50%"| | |||
* [[Estrutura de Classes]] - Explica as classes e como montar os arquivos do SPED. | |||
| style="vertical-align:top; width:50%"| | |||
* Documentação sobre o SPED contemplado pela biblioteca e obserções: | |||
** [[SPED Fiscal]] | |||
** [[SPED Contribuições]] | |||
|} | |||
== RFW - Terminal == | |||
O '''RFW.Terminal''' é uma biblioteca completa para controle de terminais, oferecendo ferramentas para manipulação total do ambiente de linha de comando. O projeto abrange formatação de texto, controle do cursor, manipulação de cores e estilos, além de funcionalidades avançadas para input, output e navegação. Seu objetivo é simplificar o desenvolvimento de interfaces de terminal, fornecendo uma API flexível para exibição de informações e interação com o usuário, tudo de forma eficiente e extensível. | |||
{| class="wikitable" style="width:100%;" | |||
!scope="col"| Clases Principais | |||
!scope="col"| Funcionalidades | |||
|- | |||
| <p align="justify" style="margin:10px;"><b>Tópicos relacionados à estrutura e funcionamento básico do módulo.</b></p> | |||
| <p align="justify" style="margin:10px;"><b>Classe com funcionalidades extras.</b></p> | |||
|- | |||
| style="vertical-align:top; width:50%"| | |||
* Classes Principais | |||
** [[Terminal]] | |||
** [[CommandParser]] | |||
| style="vertical-align:top; width:50%"| | |||
* [[Figlet]] e [[Figlet Fonts]] | |||
|} | |||
== RFW - Finance== | |||
O '''RFW.Finance''' é uma biblioteca para auxiliar com sistemas financeiros. Seuobjetivo é fornecer métodos e funcionalidades para faciliar funções como: | |||
* Gerenciar arquivos como 'CNAB', 'SisPAG' (Itaú) e outros modelos de troca de arquivo financeiros; | |||
* Parser de arquivos OFX; | |||
* Integração com sistemas de TEF (NTK/PayGO, SisTEF, etc.); | |||
* Leitura, criação e validação de boletos e outras Guias; | |||
* Criação e manipulação de código / QRCode de PIX; | |||
{| class="wikitable" style="width:100%;" | |||
!scope="col"| Funcionalidades | |||
!scope="col"| Clases Principais | |||
|- | |||
| <p align="justify" style="margin:10px;"><b>Documentação e outros tópicos relacionados.</b></p> | |||
| <p align="justify" style="margin:10px;"><b>Classe e funcionalidades do sistema.</b></p> | |||
|- | |||
| style="vertical-align:top; width:50%"| | |||
* Manuais | |||
** [https://cmsarquivos.febraban.org.br/Arquivos/documentos/PDF/Layout%20padrao%20CNAB240%20V%2010%2009%20-%2014_10_21.pdf Manual CNAB v10.09] | |||
| style="vertical-align:top; width:50%"| | |||
* Escrita | |||
** [[CNAB240]] - Criação de arquivo CNAB240 | |||
* Leitura | |||
** [[CNAB240Parser]] - Parser para o arquivo CNAB240 | |||
|} | |||
== RFW - Vaadin == | |||
O RFW Vaadin é o módulo utilizado para facilitar a criação de uma interface WEB para as aplicações criadas sobre o FrameWork. | |||
Este módulo é criado em cima do Vaadin, e trás todas as suas ferramentas deixando o desenvolvedor criar o que desejar. No entanto, trás diversas classes e ferramentas que se integram com o nosso framework para agilizar e facilitar o desenvolvimento de aplicações. | |||
{| class="wikitable" style="width:100%;" | |||
!scope="col"| Design e Estrutura do FrameWork | |||
!scope="col"| Funcionalidades | |||
|- | |||
| <p align="justify" style="margin:10px;"><b>Tópicos relacionados à estrutura e design patters do FrameWork.</b></p> | |||
| <p align="justify" style="margin:10px;"><b>Classe de funcionalidades e Serviços que o FrameWork oferece.</b></p> | |||
|- | |||
| style="vertical-align:top; width:50%"| | |||
* Estrutura da UI | |||
** [[RFWUI]] | |||
** RFWFrame (ainda não extraído da aplicação) | |||
** [[RFWWindow]] | |||
**: ''[[RFWBrowserResizeListener]]'' | |||
**: ''[[RFWShortcutListener]]'' | |||
* Providers de Dados | |||
** [[IconProvider]] | |||
** [[UIDataProvider]] | |||
** [[UIGridDataProvider]] | |||
** [[UITreeDataProvider]] | |||
| style="vertical-align:top; width:50%"| | |||
* ???? | |||
** [[UIFactory]] | |||
** [[FWVad]] | |||
** [[TreatException]] | |||
* Componentes da Tela | |||
** [[RFWAssociativeComponent]] | |||
** [[RFWButtonToggle]] | |||
** [[RFWComboBoxCity]] | |||
** [[RFWComboBoxMeasureUnit]] | |||
** [[RFWDateRangeComponent]] | |||
** [[RFWTagsSelector]] | |||
* Grid | |||
** [[UIGridRowHighlight]] | |||
* Windows | |||
** [[RFWPickerWindow]] | |||
**: ''[[RFWCEPPickerWindow]]'' | |||
|} | |||
== RFW - Notifier == | |||
O RFW Notifier é o módulo responsável pela criação e integração de sistemas de notificações para aplicações desenvolvidas sobre o FrameWork. | |||
Este módulo visa oferecer uma interface simples e unificada para envio de mensagens, documentos, alertas e informações para usuários e desenvolvedores através de diferentes meios de comunicação, como Telegram, Slack, E-mail, SMS, WhatsApp, entre outros. | |||
Inicialmente, o projeto disponibiliza integração com o Telegram, mas será expandido com novos canais de comunicação no futuro. | |||
{| class="wikitable" style="width:100%;" | |||
!scope="col"| Design e Estrutura do FrameWork | |||
!scope="col"| Funcionalidades | |||
|- | |||
| <p align="justify" style="margin:10px;"><b>Tópicos relacionados à estrutura e organização do módulo RFW Notifier.</b></p> | |||
| <p align="justify" style="margin:10px;"><b>Classes de funcionalidades e Serviços de Notificações disponíveis.</b></p> | |||
|- | |||
| style="vertical-align:top; width:50%"| | |||
| style="vertical-align:top; width:50%"| | |||
* Notificações Implementadas | |||
** [[TelegramNotifier]] | |||
* Integrações Futuras | |||
** SlackNotifier (futuro) | |||
** EmailNotifier (futuro) | |||
** SMSNotifier (futuro) | |||
** WhatsAppNotifier (futuro) | |||
|} | |||
= Módulos de Distribuição = | |||
== RFW.Distro == | |||
Este módulo tem apenas a função de concentrar a compilação de todos os módulos do RFW. Seu arquivo '''pom.xml''' relaciona todos os módulos para a correta compilação e testes de todos os módulos do RFW. Não deve conter nenhum código ou pastas com arquivos adicionais. | |||
= Módulos em Extinção = | |||
== RFW - Módulo Base == | |||
Este módulo RFW.Base está sendo extinto, e suas funcionalidades sendo migradas para outros módulos do RFW. Foi criado no início do desenvolvimento do RFW, mas depois de algumas mudanças de estrutura ele precisa ser completamente reorganizado, e para isso está sendo lentamento migrado para os demais módulos. | |||
{| class="wikitable" style="width:100%;" | |||
!scope="col"| Design e Estrutura do FrameWork | |||
!scope="col"| Funcionalidades | |||
|- | |||
| <p align="justify" style="margin:10px;"><b>Tópicos relacionados à estrutura e design patters do FrameWork.</b></p> | |||
| <p align="justify" style="margin:10px;"><b>Classe de funcionalidades e Serviços que o FrameWork oferece.</b></p> | |||
|- | |||
| style="vertical-align:top; width:50%"| | |||
* Processamento e Validação de Dados | |||
** [[RFWValidator]] <strong>Ainda está dentro do BIS10, por fazer acessos no banco de dados, precisa da criação de interface!</strong> | |||
| style="vertical-align:top; width:50%"| | | style="vertical-align:top; width:50%"| | ||
|} | |} | ||
= Pendências do Projeto = | |||
* '''RFW.SEFAZ''' | |||
** '''SEFAZEnums''' - Terminar de criar as enumerations que são utilizadas no XML, incluindo os códigos para conversão entre Enum e XML. Colocando os métodos necessários nos objetos XSDs para facilitar as conversões das informações pelas aplicações que opterem pela utilização das Enumerations. Também finalizar os bundles dessas Enums. | |||
= Notas = | |||
<references /> |
Edição atual tal como às 14h47min de 27 de abril de 2025
RFW - Rodrigo's Framework
O objetivo deste projeto é criar um framework simplificado de produção de aplicações pequenas e médias que utilizem a arquitetura J2EE. Note que simplificado quer dizer seguindo um padrão já fechado e específico. Criando alguns padrões de desenvolvimento e classes utilitárias conseguimos produzir aplicações de forma mais rápida em 90% das situações.
RFW - Kernel
O Kernel é a base para todos os outros módulos e deve conter as principais classes do RFW, sem depender de bibliotecas externas. O objetivo é fornecer o essencial para que todos os módulos do Framework funcionem de forma integrada, sem sobrecarregar a aplicação com dependências.
Design e Estrutura do FrameWork | Funcionalidades |
---|---|
Tópicos relacionados à estrutura e design patters do FrameWork. |
Classe de funcionalidades e Serviços que o FrameWork oferece. |
|
|
RFWUtils
Conjunto de classes utilitárias do framework. Todas as classes tem seu prefixo em RU para facilitar encontra-las pelo auto complete.
Classe | Funcionalidades |
---|---|
PreProcess | Esta classe faz parte de validação de estrutura e validação de dados, mas acaba sendo uma classe utilitária já que seus métodos são úteis em toda parte do sistema para validar e processar qualquer valor de variável. |
RUTypes | Essa classe agrupa todos os métodos de conversão de tipos. |
RUFile | Métodos de manipulação de arquivos. Desde os métodos mais triviais do File do java até operações mais elaboradas. |
RUGenerator | Métodos de geração de todo tipo de dados. Strings para teste, UUIDs, números, padrões, etc. |
RURecursiveClone | Métodos utilizados na clonagem recursiva de objetos, principalmente o RFWVO, para uma cópia completamente independente de dois objetos. |
RUReflex | Métodos para manipulação de objetos a partir de reflexão. Definição de valores em atributos, obtenção de informações de objetos, métodos, importações e vários métodos auxiliares para trabalhar com a estrutura de objetos do RFW. |
RUString | Métodos de manipulação de String, truncates, repetições, formatações, limpeza de espaços, tabs, caracteres inválidos, acentos, etc. |
RFW - ORM
O RFW ORM é o módulo de ORM (Object-Relational Mapping) do FrameWork. Ele é responsável por gerenciar a persistência dos objetos baseados no RFWVO de forma integrada com as demais definições do sistema.
As vantagens do RFW ORM sobre o Hibernate ou o EclipseLink são:
- Menor uso de memória - sendo um código mais conciso e focado na necessidade, tem bem menos linhas de código que outras ferramentas.
- Permite hot-deploy do código - como não utiliza inserção de bytecode no deploy permite que o código seja alterado de forma live.
- Independente do JPA - Por ser independente da plataforma JPA (Java Persistence API) o RFW ORM pode ser utilizado tanto dentro de um projeto J2EE quanto de uma aplicação menor.
- Sem dependência de bibliotecas externas - Por não utilizar nenhuma biblioteca externa, o módulo não carrega uma infinidade de dependências que pesam no sistema e carregam a JVM. [1]
Em compensação, as desvantagens do nosso ORM são:
- Suporte ao MySQL e ao Derby - embora o framework trabalhe com a ideia de dialetos, atualmente ele só tem suporte ao MySQL e ao Derby. Novos bancos de dados precisam de alguma implementação desses dialetos.
- Não altera a estrutura do banco de dados - Diferentemente dos "concorrentes" o RFW ORM não foi concebido para criar ou atualizar o banco de dados automaticamente, embora sua estrutura aceitasse o acréscimo dessa funcionalidade, atualmente não há suporte.
- Menos maleável - Por ser baseado no RFWVO, o RFW ORM exige que todo objeto tenha seu próprio ID único. Ou seja, todo objeto deve ser identificado por um ID. Isso quer não é possível criar uma PK com base em múltiplas colunas. Aqui será obrigatório uma coluna extra para id (e que obrigatoriamente se chamará id), e as outras colunas serão tratadas com uma constraint de uniquekey.
- É possível criar tabelas sem o id apenas em casos de N:N, desde que essa tabela não tenha um objeto RFWVO representando-a. Caso o relacionamento N:N tenha mais dados, será obrigatório ter uma coluna ID, mesmo que as duas colunas FK sejam suficientes para identificar o objeto.
Design e Estrutura do FrameWork | Funcionalidades |
---|---|
Tópicos relacionados à estrutura e design patters do FrameWork. |
Classe de funcionalidades e Serviços que o FrameWork oferece. |
|
|
RFW - Sefaz
O módulo RFW.SEFAZ tem um objetivo de deixar transparente a conexão com os serviços da SEFAZ, como emissão de NFCe e NFe, e outros serviços disponíveis.
Têm dependência apenas com o Axis2 para conexão do WebService.
Design, Documentação e Outras Informações | Funcionalidades |
---|---|
Tópicos relacionados à estrutura e design patters do FrameWork. |
Classe de funcionalidades e Serviços que o FrameWork oferece. |
|
|
Utilização
Para utilizar o módulo basta instanciar a classe SEFAZ, passando as configurações já no construtor. Para os serviços da NFe será necessário o certificado do cliente e o certificados públicos da SEFAZ (para validar a segurança da conexão).
Com a instância do SEFAZ criada, basta chamar os métodos equivalentes do webservice.
RFW - SPED
O **RFW.SPED** é uma biblioteca completa para o gerencimento dos arquivos do SPED. Facilita a montagem da estrutura do arquivo e sua manipulação de validação e cálculo dos campos automáticos.
Clases Principais | Funcionalidades |
---|---|
Tópicos relacionados à estrutura de classes e funcionamento básico do módulo. |
Documentação e Requisitos |
|
|
RFW - Terminal
O RFW.Terminal é uma biblioteca completa para controle de terminais, oferecendo ferramentas para manipulação total do ambiente de linha de comando. O projeto abrange formatação de texto, controle do cursor, manipulação de cores e estilos, além de funcionalidades avançadas para input, output e navegação. Seu objetivo é simplificar o desenvolvimento de interfaces de terminal, fornecendo uma API flexível para exibição de informações e interação com o usuário, tudo de forma eficiente e extensível.
Clases Principais | Funcionalidades |
---|---|
Tópicos relacionados à estrutura e funcionamento básico do módulo. |
Classe com funcionalidades extras. |
|
RFW - Finance
O RFW.Finance é uma biblioteca para auxiliar com sistemas financeiros. Seuobjetivo é fornecer métodos e funcionalidades para faciliar funções como:
- Gerenciar arquivos como 'CNAB', 'SisPAG' (Itaú) e outros modelos de troca de arquivo financeiros;
- Parser de arquivos OFX;
- Integração com sistemas de TEF (NTK/PayGO, SisTEF, etc.);
- Leitura, criação e validação de boletos e outras Guias;
- Criação e manipulação de código / QRCode de PIX;
Funcionalidades | Clases Principais |
---|---|
Documentação e outros tópicos relacionados. |
Classe e funcionalidades do sistema. |
|
|
RFW - Vaadin
O RFW Vaadin é o módulo utilizado para facilitar a criação de uma interface WEB para as aplicações criadas sobre o FrameWork.
Este módulo é criado em cima do Vaadin, e trás todas as suas ferramentas deixando o desenvolvedor criar o que desejar. No entanto, trás diversas classes e ferramentas que se integram com o nosso framework para agilizar e facilitar o desenvolvimento de aplicações.
Design e Estrutura do FrameWork | Funcionalidades |
---|---|
Tópicos relacionados à estrutura e design patters do FrameWork. |
Classe de funcionalidades e Serviços que o FrameWork oferece. |
|
|
RFW - Notifier
O RFW Notifier é o módulo responsável pela criação e integração de sistemas de notificações para aplicações desenvolvidas sobre o FrameWork.
Este módulo visa oferecer uma interface simples e unificada para envio de mensagens, documentos, alertas e informações para usuários e desenvolvedores através de diferentes meios de comunicação, como Telegram, Slack, E-mail, SMS, WhatsApp, entre outros.
Inicialmente, o projeto disponibiliza integração com o Telegram, mas será expandido com novos canais de comunicação no futuro.
Design e Estrutura do FrameWork | Funcionalidades |
---|---|
Tópicos relacionados à estrutura e organização do módulo RFW Notifier. |
Classes de funcionalidades e Serviços de Notificações disponíveis. |
|
Módulos de Distribuição
RFW.Distro
Este módulo tem apenas a função de concentrar a compilação de todos os módulos do RFW. Seu arquivo pom.xml relaciona todos os módulos para a correta compilação e testes de todos os módulos do RFW. Não deve conter nenhum código ou pastas com arquivos adicionais.
Módulos em Extinção
RFW - Módulo Base
Este módulo RFW.Base está sendo extinto, e suas funcionalidades sendo migradas para outros módulos do RFW. Foi criado no início do desenvolvimento do RFW, mas depois de algumas mudanças de estrutura ele precisa ser completamente reorganizado, e para isso está sendo lentamento migrado para os demais módulos.
Design e Estrutura do FrameWork | Funcionalidades |
---|---|
Tópicos relacionados à estrutura e design patters do FrameWork. |
Classe de funcionalidades e Serviços que o FrameWork oferece. |
|
Pendências do Projeto
- RFW.SEFAZ
- SEFAZEnums - Terminar de criar as enumerations que são utilizadas no XML, incluindo os códigos para conversão entre Enum e XML. Colocando os métodos necessários nos objetos XSDs para facilitar as conversões das informações pelas aplicações que opterem pela utilização das Enumerations. Também finalizar os bundles dessas Enums.
Notas
- ↑ Não tem nenhuma dependência direta, mas será necessário importar bibliotecas de conexão com o seu banco de dados, etc.