Lançado Mentawai 2.0  XML
Índice dos Fóruns » Notícias
Autor Mensagem
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline

Acaba de ser liberada a versão 2.0.0 (codinome SDT) do web framework Mentawai. A principal mudança é o suporte a IoC através do MentaContainer que foi integrado de forma transparente ao framework, além de centenas de outras melhorias em prol da abstração e simplicidade.

Optamos por disponibilizar uma aplicação completa como referência. Dessa maneira você pode olhar o código, ver exemplos de várias funcionalidades e decidir por si só a respeito da praticidade e simplicidade do Mentawai em relação aos outros frameworks.

As características particulares do Mentawai, que o diferenciam de outros frameworks, são:

Full-stack (completo e auto-suficiente, não necessitando de outros frameworks)
KISS principle (se você não sabe ou não consegue fazer algo a culpa é do framework, não sua)
Configuração Programática (sem XML ou annotations)
Vasta biblioteca de tags integradas ao framework para facilitar a sua vida bastante na camada view

A aplicação de referência pode ser baixada do SVN:

svn co svn://saoj-la.dyndns.org/menta/trunk Menta

Você também pode vê-la rodando aqui: http://menta.seducaotecnologica.com.br/

Clique aqui para as instruções de como importar esse projeto para dentro do seu Eclipse.

Poderíamos utilizar o bom marketing para convence-lo de que o Mentawai é bom, mas ao invés disso estaremos incentivando a política do SHOW DON'T TELL (mostre não fale) com um comparativo de frameworks através da aplicação de referência. Essa política funciona assim:

Estarei disponibilizando vários repositórios de SVN, um para cada framework como VRaptor, Next, Struts, Spring MVC, etc.

Uma pessoa com experiência no framework X pode solicitar uma senha de committer para o repositório do framework X.

Feito isso ela pode implementar a aplicação de referência com o framework X de forma que possamos compará-la às outras implementação com diferentes frameworks.

Essaa implementações serão disponibilizadas lado-a-lado com a implementação de referência do Mentawai, ou seja, você poderá decidir por conta própria o framework de sua preferência.

A especificação completa da aplicação de referência pode ser consultada aqui: http://forum.mentaframework.org/posts/list/0/2406.page

Abaixo listamos as funcionalidades do Mentawai exemplificadas na aplicação de referência:

1) Autenticação

Filtro de autenticação para bloquear/permitir o acesso às actions
Tags de autenticação para bloquear/permitir os acesso às páginas (JSP, Velocity, etc.)
Redirect after login, ou seja, quando um usuário acessa uma página sem estar logado, ele é redirecionado para a página de login. Após um login bem sucedido ele é novamente redirecionado para a página que ele inicialmente tentou acessar.

2) Autorização

Filtro de autorização para bloquear/permitir o acesso às actions
Tags de autorização para bloquear/permitir o acesso às páginas (JSP, Velocity, etc.)
Tags de autorização para exibir/remover partes de uma página
Setar os grupos que um usuário logado pertence (a autorização ou não é concedida de acordo com os grupos do usuário logado)

3) Internacionalização (i18n)

Arquivos de i18n ficam dentro do diretório i18n. Os nomes são master_pt_BR.i18n, master_en_US.i18n, etc. Um arquivo (com possibilidade de prefixos para as chaves) para tudo, ao invés de vários arquivos espalhados pela aplicação, como um por action por exemplo.
Para mensagens que vieram de dentro das actions (mensagens dinâmicas de successo ou erro por exemplo, validação, etc.)
Para textos dentro do JSP, com tags aceitando prefixos e valores dinâmicos como por exemplo Hello $1.
Reload automático quando os arquivos de propriedades (i18n) são alterados. Você não quer ter que re-iniciar a sua aplicação porque mudou "Olá" para "Oi".
Tradução padrão quando uma chave não é encontrada (para Produção).
Exibição de texto com erro (! en_US.hello !) quando uma chave não é encontrada (para QA).
Localização para imagens através de uma tag para imprimir o sub-diretório do locale.

4) IoC

IoC completo, integrado com o framework, sem a necessidade de Spring. Mas quem quiser usar Spring também pode.
Configuração programática para IoC ao invés de usar um milhão de XMLs. Perguntem para o Google porque eles resolveram lançar o Guice.

5) Mensagens dinâmicas vindo das actions

"Sua conta foi atualizada com sucess"
Integração limpa e fácil com o sistema de i18n, ou seja, essas mensagens virão do arquivo master i18n.

6) Lista de dados estáticos

É bastante recorrente a necessidade de ter combos com listas estáticas, como grupos, idiomas, países, etc.
Eles precisam ser igualmente internacionalizados
Tags para facilmente exibir esses combos em um formulário HTML
Tags para facilmente exibir um valor (localizado) para um determinado id.

7) Filtros

Não estamos falando aqui de filtros de Servlet, mas de filtros do framework, como os interceptors do Struts.
Filtros precisam ser simples para que você possa fazer os seus e fáceis de usar, para que você possa utilizar os que o framework oferece.

8 ) Validação

Integrada com o i18n
Tags fáceis para mostrar os erros nas páginas
Jeito fácil de validar uma action (implementando uma interface ou filtro por exemplo)

9) Jeito fácil de testar as actions

JUnit para as actions sem complexidades, mocks, etc.

10) Tags pra a view

Diversas tags para facilitar a sua vida na view, muito melhores do que as genéricas da JSTL.
Facilidade para criar suas próprias tags, sem qualquer complexidade ou enrolação (abstraindo a bagunça inicial da api de JSP)
Tags para paginação e muitas outras. Ou você faz a paginação na mão com código no JSP?

11) Enviando email

Tem que ser integrado com o i18n, ou seja, cada usuário recebe um email no seu idioma. Os emails ficam separados dentro do diretório /letters, com um sub-diretório para cada locale.
Tem que suportar algum tipo de template, porque você precisa carregar um email e fazer algumas substituições no corpo da mensagem, como username, password, etc.
Tem que corretamente suportar charsets, caso contrário o usuário receberá lixo para os caracteres acentuados.
Tem que suportar emails em plain/text e também em HTML.
Precisa suportar defaults para hostname, from, authentication, etc. para que você só precise configurar isso uma vez de acordo com o ambiente (produção, QA, dev, etc.)
Precisa suportar o desativamento dos envios de email para quando você está rodando os unit tests. De maneira fácil e na configuração! (Não vai sair colocando IF em tudo)
Tem que suportar envio assíncrono, ou seja, na maioria das vezes você não quer bloquear a action enquanto o email está sendo enviado.
Tem que suportar SSL se você quiser utilizar o SMTP do GMAIL.
E não se esqueça do título do email, que precisa também ser internacionalizado e suportar templates.

12) Configurações por ambiente

As configurações estáticas e textuais, como dados de conexão com o banco, smtp, hibernate, logging, etc. precisam ser carregadas de um arquivo properties. A aplicação deve suportar um arquivo properties por ambiente, além de um default que pode ser sobrescrito pelo mais específico do ambiente.

13) Suporte a dois tipos de persistência (opcional)

a aplicação pode suportar JDBC ou Hibernate, ou seja, ela implementa uma versão dos DAOs com JDBC e outra com HIBERNATE. De acordo com uma variável de ambiente ("persistency") ela decide quais implementações do DAO ela vai utilizar. A flexibilidade de IoC demonstrada na prática.

14) Ajax

Para checar se o username já existe antes de submeter o formulário (coming soon)

This message was edited 2 times. Last update was at 13/09/2010 13:25:58


Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org


[Email] [WWW]
rogelgarcia
GUJ Master
[Avatar]

Membro desde: 21/06/2007 23:27:21
Mensagens: 1850
Offline

Legal saoj.. vamos trocar umas figurinhas.. heheh

Eu considero que um princípio, extremamente importante, e que uso também no next é:

" KISS principle (se você não sabe ou não consegue fazer algo a culpa é do framework, não sua) "

Essa premissa é, realmente, o que leva a um framework evoluir e traz simplicidade...

Parabéns

Até mais

This message was edited 1 time. Last update was at 11/09/2010 10:14:32


Rógel Garcia, criador do framework NEXT

http://www.nextframework.org
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline

rogelgarcia wrote:
Legal saoj.. vamos trocar umas figurinhas.. heheh


Vou te mandar uma mensagem privada com o seu SVN, login e senha para vc faze a versão com o Next. Estou curioso para ver como vai ficar.

Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org


[Email] [WWW]
rogelgarcia
GUJ Master
[Avatar]

Membro desde: 21/06/2007 23:27:21
Mensagens: 1850
Offline

saoj wrote:
rogelgarcia wrote:
Legal saoj.. vamos trocar umas figurinhas.. heheh


Vou te mandar uma mensagem privada com o seu SVN, login e senha para vc faze a versão com o Next. Estou curioso para ver como vai ficar.


Opa.. blza...

Rógel Garcia, criador do framework NEXT

http://www.nextframework.org
Kenobi
GUJ Master
[Avatar]

Membro desde: 14/11/2003 13:06:37
Mensagens: 1678
Localização: Brasil
Offline

Parbéns SAOJ pela persistência em manter o Framework !!

----------------------------------------------------------
SOA|EXPERT - http://www.soaexpert.com.br
SOA de um jeito simples e eficiente.
[WWW] [MSN] [ICQ]
Eduardo Bregaida
Moderador
[Avatar]
Membro desde: 13/11/2003 14:11:35
Mensagens: 2416
Localização: São Caetano do Sul - SP
Offline

Parabéns, desde o MentaBean não ouvia mais falar neste framework, parabéns.

Blog - Java Anywhere
@bregaida - Twitter
Flickr - Fotos
Cursos de Java?

"Você poderia me dizer, por favor, qual caminho eu devo seguir?"
"Isto depende muito de onde você deseja chegar."
-Lewis Carroll, Alice no País das Maravilhas
[Email] [WWW] [MSN]
Luiz Aguiar
Moderador
[Avatar]

Membro desde: 23/01/2005 00:05:55
Mensagens: 3840
Localização: São Paulo
Offline

Sérgio, posso dar só um pitaquinho? rs

Coloca o menta no github, fica bem fácil pro pessoal conseguir "acompanhar" o projeto mais perto.

[]s

-
Blog de Tecnologia
GitHub
@AguiarLuiz
Recicla SP na App Store!




[WWW] [MSN] [ICQ]
Kenobi
GUJ Master
[Avatar]

Membro desde: 14/11/2003 13:06:37
Mensagens: 1678
Localização: Brasil
Offline

Luiz Aguiar wrote:Sérgio, posso dar só um pitaquinho? rs

Coloca o menta no github, fica bem fácil pro pessoal conseguir "acompanhar" o projeto mais perto.

[]s

Daria mais visibilidade ao projeto também

----------------------------------------------------------
SOA|EXPERT - http://www.soaexpert.com.br
SOA de um jeito simples e eficiente.
[WWW] [MSN] [ICQ]
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline

Eduardo Bregaida wrote:Parabéns, desde o MentaBean não ouvia mais falar neste framework, parabéns.


A aplicação oferece dois métodos de persistencia:

Hibernate

JDBC + MentaBean

Assim vc pode olhar e escolher o que melhor te agrada. Eu prefiro usar JDBC + um query helper como o mentabeans.

This message was edited 1 time. Last update was at 13/09/2010 13:39:27


Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org


[Email] [WWW]
Oliveira.caio
JavaGuru
[Avatar]
Membro desde: 24/07/2008 19:38:33
Mensagens: 226
Localização: São Paulo - SP
Offline

Existe alguma implementação do VRaptor assim como a do Mentawai explicando as funcionalidades do framework?

Achei interessante a ideia de comparação, assim veremos na pratica qual framework pode nos atender melhor em cada situação.

Grato
Caio Oliveira



[Email] [WWW] [MSN]
robertwgil
JavaBaby

Membro desde: 16/09/2006 11:16:01
Mensagens: 80
Offline

Oliveira.caio wrote:Existe alguma implementação do VRaptor assim como a do Mentawai explicando as funcionalidades do framework?

Achei interessante a ideia de comparação, assim veremos na pratica qual framework pode nos atender melhor em cada situação.


Tambem gostaria de ver uma implementação dessas para o VRaptor! Seria bacana ver na prática as diferenças de implementações entre eles.
Ironlynx
Moderador
[Avatar]

Membro desde: 02/05/2003 01:06:41
Mensagens: 3515
Localização: The other side of the screen
Offline

Parabéns aos autores do projeto.
Só lembrando que eu tive uma app para centenas de usuários que ficou mais de um ano rodando SEM problemas usando apenas Mentawai1.13+MySQL5.0+JasperReport.

Não tive do que reclamar(nem meus clientes).


Não basta persistir...tem que prevalecer!
Ironlynx
Anarquista de Sistemas
http://osereojava.blogspot.com/
[WWW]
Alexandre Ferreira
Virtual Machine Man
[Avatar]

Membro desde: 20/09/2006 20:07:03
Mensagens: 520
Localização: Rio de Janeiro
Offline

Boa SAOJ...

Fico feliz de ver o Menta vivo!!

Alexandre Ferreira
Blog: http://alexandreferreira.com.br
[WWW] [MSN]
nofan
JavaTeenager
[Avatar]

Membro desde: 09/12/2007 17:03:07
Mensagens: 164
Offline

Parabens SAOJ realmente um framework fantastico que continua evoluindo continuamente!
sulito
Virtual Machine Man

Membro desde: 23/11/2009 07:15:59
Mensagens: 608
Offline

rogelgarcia wrote:Legal saoj.. vamos trocar umas figurinhas.. heheh

Eu considero que um princípio, extremamente importante, e que uso também no next é:

" KISS principle (se você não sabe ou não consegue fazer algo a culpa é do framework, não sua) "

Essa premissa é, realmente, o que leva a um framework evoluir e traz simplicidade...

Parabéns

Até mais


Essa premiça mata o programador , normalmente quando não soubemos fazer algo a culpa não é do framework e sim do programador que não investigou bastante.
porque senao ficamos presos totalmente ao framework e ja nao sera digno ser chamado de programador e sim de frameworkeiro....


LPI-101
 
Índice dos Fóruns » Notícias
Ir para:   
Powered by JForum 2.1.8 © JForum Team