Mudanças entre as edições de "Página principal"
Linha 143: | Linha 143: | ||
|} | |} | ||
== RFW - Vaadin == | == RFW - Vaadin == |
Edição das 19h01min de 25 de agosto de 2023
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 não é um módulo, mas a base para todos os outros. Este pacote deve conter o máximo de classes de base do RFW mas o pacote em si não pode conter nenhuma outra dependência com bibliotecas externas.
A ideia é promover neste pacote, o básico para que todos os pacotes módulos do Frame Work funcionem na mesma língua sem inchar as dependências da aplicação que não utiliza todos os módulos do FrameWork.
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 |
---|---|
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 / NFe.
Têm dependência apenas com o Axis2 para conexão do WebService.
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 - 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 - Módulo Base
O RFW é o módulo principal do Rodrigo's FrameWork. Neste módulo está incluso a estrutura do Framework e outras utilizadas que não gerem dependências externas extensas.
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. |
|
Notas
- ↑ Não tem nenhuma dependência direta, mas será necessário importar bibliotecas de conexão com o seu banco de dados, etc.