Framework Angra

Olá Pessoal, Começei o desenvolvimento a 4 meses para uso proprio, o framework se chama Angra, faz persistencia com Annotations e ja tem um módulo para o Oracle 10g.
Pelo pouco que conheço do Hibernate sei que ele é bastante completo e o Angra não chega aos pés dele.

Ainda não o coloquei na internet mas será com a licença Livre.

Gostaria então de saber de vocês… O que vocês sentem que falta no Hibernate? se é que falta algo nele…

desde já grato a todos.

Velho, tem um tópico aberto sobre o MentaBean, que foi um modulo do mentawai que o Sergio fez para persistencia simples e lá tem muito argumento mostrando o porque de não continuar. Acho que vc poderia fazer algo que usasse, por exemplo, o hibernate por traz. O hibernate é bem completo para uma grande diversidade de situações e acho dificil o Angra contemplar todas elas e fazer ainda mais, mas sempre acho legal essas iniciativas.

Alberto

hummm acho bom dar uma lida nesse topic!

http://www.guj.com.br/posts/list/57053.java

Apropósito licença é com ‘Ç’ hehehe
desculpe não resisti :oops:

Então, tenho consciencia que Hibernate é bem completo, o que ocorre é que começei a fazer o angra para meu próprio uso então acaba que para eu é bem mais facil usar ele ao invéz do Hibernate.

Coisas que o Angra faz:

  • todas as operações de persistencia comuns: save, update, delete, list, get, load.
  • faz operações em cascata exemplo: voce tem um Aluno e ele tem varias notas, se voce salva o Aluno ele percorre as notas e vai salvando também.

[quote=AndrewAguiar]Então, tenho consciencia que Hibernate é bem completo, o que ocorre é que começei a fazer o angra para meu próprio uso então acaba que para eu é bem mais facil usar ele ao invéz do Hibernate.

Coisas que o Angra faz:

  • todas as operações de persistencia comuns: save, update, delete, list, get, load.
  • faz operações em cascata exemplo: voce tem um Aluno e ele tem varias notas, se voce salva o Aluno ele percorre as notas e vai salvando também.[/quote]e vc acha difícil fazer isso com hibernate? tem certeza que esta usando corretamente?

Obviamente qualquer software que você mesmo fez é mais simples PARA VOCÊ utilizar do que o de um terceiro, pelo menos a princípio. Conforme ja foi muito discutido no topic do MentaBeans, conforme suas necessidades forem crescendo você verá que deveria ter utilizado o Hibernate ou outro framework ja consolidado.

[quote=AndrewAguiar]

  • faz operações em cascata exemplo: voce tem um Aluno e ele tem varias notas, se voce salva o Aluno ele percorre as notas e vai salvando também.[/quote]

Um UPDATE Cascade é um exemplo de um banco de dados mal normalizado, ou então, propositadamente desnormalizado.

Não queira re-inventar a roda! Aprimore ela.

Agradeço pela opnião e critica de todos, apesar de saber que estou reinventando a roda, não vou para o Angra agora.

Se tiverem interesse o projeto está no sourceforge: http://sourceforge.net/projects/angra/, ainda não disponibilizei os fontes e nem os jar dele mais até esta semana vou disponibilizar. Ainda estou reformulando a documentação dele, está vai demorar um pouco mais.

Grato a todos.

tomara que este tópico não se transforme no ringue de egos que se transformou o outro…

Apesar da guerra de egos e da baixaria, o tópico em questao tinha bons colocamentos e indagações … filtrando salva-se muita coisa.

Sobre hibernate ser complexo, para algumas pessoas deve ser, questão de treino e conhecimento. Uma saída realmente é montar algo mais simples q satisfaça suas necessidades, contudo hibernate e jpa são o padrão do mercado, qto amis tempo vc os evitar mais difícil será de se acostumar com ele. Dependendo do rumo da sua carreira só está adiando o inevitável podendo se prejudicar, por não ter uma boa proficiencia nele.

Acho então q o melhor rumo seria deixar o hibernate mais simples ao invés de criar algo novo.

Apesar de ser uma atitude louvável criar um framework, ter de tomar decisões sobre arquitetura, patterns, etc, etc.

[quote=tgpadua]Apropósito licença é com ‘Ç’ hehehe
desculpe não resisti :oops: [/quote]Apropósito não existe. O certo é A[espaaaaaaço]propósito.

desculpe não resisti :oops:

[quote=“loquaz”]tomara que este tópico não se transforme no ringue de egos que se transformou o outro…[/quote]Vc está no fórum certo para isso! :mrgreen:

[quote=“Edufa”]Apesar de ser uma atitude louvável criar um framework, ter de tomar decisões sobre arquitetura, patterns, etc, etc.[/quote]i++
Pelo menos para conhecimento próprio, desenvolver algo desse tipo é muito válido. Mas, como o pessoal falou, colocar em produção já são outros 500, porque um framework novo, escrito do zero por uma pessoa, não vai ter a mesma maturidade que outros frameworks.

Minha intenção não é criar uma gerra de egos, não estou dizendo que o Angra é melhor que o Hibernate ou que qualquer outro framework, só perguntei se tinha algo que viam de deficiente no Hibernate…

e quanto a reinventar a roda, se for seguir esta linha de pensamento, muita coisa não teria sido inventada.

Grato a todos.

[quote=Edufa]Apesar da guerra de egos e da baixaria, o tópico em questao tinha bons colocamentos e indagações … filtrando salva-se muita coisa.

Sobre hibernate ser complexo, para algumas pessoas deve ser, questão de treino e conhecimento. Uma saída realmente é montar algo mais simples q satisfaça suas necessidades, contudo hibernate e jpa são o padrão do mercado, qto amis tempo vc os evitar mais difícil será de se acostumar com ele. Dependendo do rumo da sua carreira só está adiando o inevitável podendo se prejudicar, por não ter uma boa proficiencia nele.

Acho então q o melhor rumo seria deixar o hibernate mais simples ao invés de criar algo novo.

Apesar de ser uma atitude louvável criar um framework, ter de tomar decisões sobre arquitetura, patterns, etc, etc.[/quote]

Concordo 100% com o que disse de mercado, quanto a complexidade do Hibernate, temos de concordar que hoje utilizar o Hibernate + Annotations tornou-se uma tarefa muito simples.

Agora fazendo uma reflexão sobre complexidade Vs. simplicidade, vocês acreditam que alguem que não tenha conhecimento técnico suficiente para usar o Hibernate, teria o conhecimento ou experiência suficiente para fazer outro framework ?
Acho que muitos de nós (inclusive eu) ja passou pelo dilema de ter de aprender um framework de um terceiro, ou criar um própio e acabar optando pela segunda opção. Inicialmente ele pode até resolver seus problemas básicos, mas conforme as necessidades de novas features forem surgindo aquilo que era simples muitas vezes acaba ficando mais complexa (acho que isso foi uns dos pontos fracos no MentaBeans), e repensando a respeito acabamos por desistir. Outro ponto em questão e que não poderia ficar de lado é o TEMPO, pois o tempo que você gasta criando um framework, poderia utilizar aprendendo o framework terceiro ja consolidado como no caso do Hibernate.

Acho que o futuro de qualquer framework novo que faça o mesmo que outros ja fazem esta no diferencial, mas no caso do Angra pelo o que nos apresentou não tem nenhum. Se existem por favor seja mais descritivo que tenho certeza que todos lhe daram sugestões.

NOTA: Antes que vire briga gostaria de deixar bem claro que em relação a reflexão que citei, NÃO foi em relação a pessoa do AndrewAguiar pois nem o conheço para julgar seus conhecimentos, mas sim de uma forma genérica.

:!: :?:

Essa eu não entendi. Você quis dizer que uma pessoa não pode desenvolver um framework, é isso?
Ou que a maturidade de outros frameworks não foi atingida pelo desenvolvimento de uma única pessoa, e sim por uma equipe?
Ambiguidade total essa frase.

[quote=AndrewAguiar]Minha intenção não é criar uma gerra de egos, não estou dizendo que o Angra é melhor que o Hibernate ou que qualquer outro framework, só perguntei se tinha algo que viam de deficiente no Hibernate…

e quanto a reinventar a roda, se for seguir esta linha de pensamento, muita coisa não teria sido inventada.

Grato a todos.[/quote]

Tanto teria sido inventada como foi, mas dos que foram pra frente sempre apresentaram algum diferencial. A exemplo 2 projetos brazucas que fazem a mesma coisa (e um poucão mais) que o Struts ja fazia, e que continuam crescendo:
:arrow: Mentawai que tem como diferencial a eleminação dos XML;
:arrow: VRaptor que elemina configurações pregando o uso de padronização.

A idéia por traz do angra é criar um ORM simples de usar.

ele suporta:

  • Criação de tabelas ( caso o Kit de implementação seja um BD relacional )
  • destruição de tabelas (drop)
  • Todas as operações básicas de CRUD insert, update, delete, select
  • Suporte aos relacionamentos (Um para Muitos), (Muitos para Muitos) e (Um para Um).

ainda não suporta:

  • Mapeamento de herança.

Ele trabalha com “Convention over Configuration” tipo ele já configura muita coisa por default para voce

Exemplo:

@Entity
public class Aluno
{
@Property
private string nome;
}

Por default ele verifica que o campo é uma String então ele cria um atributo de nome igual ao nome da variável “nome”, do tipo “varchar” e de tamanho default 20.

na anotação Entity ele define como default o nome da entidade é o nome da classe.

O Angra vem com umas classes que são tipo um core dele, se for criar uma implementação para o SQL-Server é só extender estas classes e implementar.

Certo…

O que queremos entender, assim como foram muitos dos posts lançados na discussão do MentaBeans , é qual o DIFERENCIAL do framework que você está desenvolvendo.

Acredito que todas as características que você citou, incluindo as que o Angra não atende, já existem, por exemplo, no Hibernate. Você pode consultar a lista de features e verificar, ou acessar a referência.
Só pra você ter noção, olhe a lista de dialetos suportados, 22 dialetos de mais de 10 bancos diferentes.

O importante é refletir sobre os conselhos dados aqui, acho que todas as opiniões postadas aqui são pra motivar você a pensar se sua idéia é válida ou não, especialmente pelo caráter inovação, e não simplesmente “meter o pau sem nem mesmo usar”, como alguns aqui pensariam(e pensam). Tenho certeza que se você está desenvolvendo algo e colocando no sourceforge, é porque espera dar continuidade a idéia. Mas no momento, infelizmente, esse diferencial de que falei acima, baseado na sua descrição do Angra, está faltando. Espero que compreenda o que eu quis dizer …

[quote=legionarioba]Certo…

O que queremos entender, assim como foram muitos dos posts lançados na discussão do MentaBeans , é qual o DIFERENCIAL do framework que você está desenvolvendo.

Acredito que todas as características que você citou, incluindo as que o Angra não atende, já existem, por exemplo, no Hibernate. Você pode consultar a lista de features e verificar, ou acessar a referência.
Só pra você ter noção, olhe a lista de dialetos suportados, 22 dialetos de mais de 10 bancos diferentes.

O importante é refletir sobre os conselhos dados aqui, acho que todas as opiniões postadas aqui são pra motivar você a pensar se sua idéia é válida ou não, especialmente pelo caráter inovação, e não simplesmente “meter o pau sem nem mesmo usar”, como alguns aqui pensariam(e pensam). Tenho certeza que se você está desenvolvendo algo e colocando no sourceforge, é porque espera dar continuidade a idéia. Mas no momento, infelizmente, esse diferencial de que falei acima, baseado na sua descrição do Angra, está faltando. Espero que compreenda o que eu quis dizer …[/quote]

Faço da suas minhas palavras.

É diante do que foi colocado o Angra não apresenta inovação alguma comparado com o Hibernate…

Mas vou pensar em alguma inovação que o hibernate naum tem…

Grato a todos.