Kawai Wiki

Rev

Rev 18 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@taglib prefix="mtw" uri="http://www.mentaframework.org/tags-mtw/"%>

<html>
<head>

<title>Mentawai Web Framework</title>

<style type="text/css" media="all">
@import url("./style/maven-base.css");

@import url("./style/maven-theme.css");
</style>

<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="imagetoolbar" content="false" />

<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<link rel="icon" type="image/gif" href="/favicon.gif" />
<link rel="stylesheet" href="./style/print.css" type="text/css" media="print" />

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="author" content="Sergio Oliveira Junior" />
<meta name="email" content="sergio.oliveira.jr@gmail.com" />

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery/jquery-1.6.4.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>

<script language="JavaScript">
    
        $(document).ready(function() {

        });
        
        function prepareLeftColumnDialog(myDialog, theTitle) {

            options = {
                autoOpen: false,
                width: 800,
                modal: true,
                title: theTitle,
                buttons: [
                          {
                                text: "Save",
                                click: function() { $('#editLeftColumnForm').submit(); }
                          },
                          {
                                text: "Cancel",
                                click: function() { $(this).dialog("close"); }
                          }
                      ]
           };

          myDialog.dialog(options);

          return myDialog;
        }
    
        function showEditLeftColumnDialog(pageName) {

            $.getJSON('<mtw:contextPath />/Page.getLeftColumn.mtw', function(data) {
        
                $('#editLeftColumnTextArea').val(data.leftColumnHTML);

                myDialog = $('#editLeftColumnDialog');
                myDialog = prepareLeftColumnDialog(myDialog, "Edit Left Column");
                myDialog.dialog('open');
            });
            
            return false;
        }

    </script>

</head>

<body class="composite">

<!-- For Testing -->
<div id="dialog" title="Dialog Title" style="display: none;">I'm in a dialog</div>

<div id="editLeftColumnDialog" style="display: none;">
<form id="editLeftColumnForm" action="<mtw:contextPath />/Page.editLeftColumn.mtw" method="post">
<table>
    <tr>
        <td>&nbsp;</td>
    </tr>
    <mtw:outError field="answer">
        <tr>
            <td colspan="2"><span class="Negative" style="font-weight: bold;"><mtw:out /></span></td>
        </tr>
    </mtw:outError>
    <tr>
        <td colspan="2"><mtw:textarea id="editLeftColumnTextArea" name="html" style="width: 100%; height: 465px;" /></td>
    </tr>
</table>
</form>
</div>

<div>
<table border="0">
    <tr>
        <td><a href="/"><img src="images/logos/logo.png" border="0"></img></a></td>
        <td align="right" valign="bottom"><img src="images/brazil.gif" border="0" width="20" height="13" /> <img src="images/usa.gif" width="20" height="13" border="0" /> <mtw:isLogged
            negate="true">
            <a href="jsp/login.jsp">Login</a>&nbsp;&nbsp;&nbsp;
                </mtw:isLogged> <mtw:isLogged>
            <a href="<mtw:contextPath/>/Logout.mtw">Logout</a> (<mtw:out value="sessionUser.username" />)&nbsp;&nbsp;&nbsp;
                </mtw:isLogged></td>
    </tr>
</table>
</div>

<hr />

<div id="leftColumn"><mtw:isLogged>
    <mtw:hasAuthorization groups="admin, editor">
        <div style="text-align: right; padding-right: 8px; padding-top: 6px;"><a href="#" onclick="return showEditLeftColumnDialog('LeftColumn');">Editar</a></div>
    </mtw:hasAuthorization>
</mtw:isLogged>
<div id="navcolumn"><%@ include file="menu.jsp"%> <br />
</div>

</div>

<div id="bodyColumn">

<h1>Notícias</h1>
<ul>
    <li>Teste 1</li>
    <li>Teste 2</li>
    <li>Teste 3</li>
    <li>Teste 4</li>
</ul>
<br />

<h2>Notícias</h2>
<ul>
    <li>Teste 1</li>
    <li>Teste 2</li>
    <li>Teste 3</li>
    <li>Teste 4</li>
</ul>
<br />

<h3>Notícias</h3>
<ul>
    <li>Teste 1</li>
    <li>Teste 2</li>
    <li>Teste 3</li>
    <li>Teste 4</li>
</ul>
<br />

<h4>Notícias</h4>
<ul>
    <li>Teste 1</li>
    <li>Teste 2</li>
    <li>Teste 3</li>
    <li>Teste 4</li>
</ul>
<br />

<h5>Notícias</h5>
<ul>
    <li>Teste 1</li>
    <li>Teste 2</li>
    <li>Teste 3</li>
    <li>Teste 4</li>
</ul>
<br />

<h4>Header 1</h4>
<center>
<table border="0">
    <tr>
        <td colspan="3">&nbsp;</td>
    </tr>
    <tr>
        <td width="6%">&nbsp;</td>
        <td width="72%"><font color="black"> <i>"Em primeiro lugar gostaria de parabenizá-lo pelo Mentawai, pra mim é a melhor solução já pensada quando se fala em frameworks MVC.
        Coordeno a equipe de TI da Escola do Futuro da USP (Universidade de São Paulo), onde realizamos projetos de CVAP (Comunidades Virtuais de Aprendizagem e Prática), educação à distância etc.
        Adorei o Mentawai desde a primeira vez que li sobre ele, gostei tanto da idéia que quiz iniciar já com um projeto de médio porte, o qual tínhamos pouquíssimo prazo para entregá-lo. O resultado
        não podia ter sido melhor, toda a equipe se familiarizou com o framework em menos de 2 dias! O projeto foi inteiramente concebido com Mentawai, desde então é o que usamos para desenvolver
        todos os projetos! São fascinantes a velocidade, escalabilidade e a forma inteligente em que se pode construir qualquer aplicação web com o Mentawai."</i></font></td>
        <td width="6%">&nbsp;</td>
    </tr>
    <tr>
        <td width="6%">&nbsp;</td>
        <td width="72%" align="right"><b><font color="blue">por Rodrigo A. Rodriguez</font></b></td>
        <td width="6%">&nbsp;</td>
    </tr>
    <tr>
        <td colspan="3">&nbsp;</td>
    </tr>

    <tr>
        <td width="6%">&nbsp;</td>
        <td width="72%"><font color="black"> <i>"Estou escrevendo de Teresina-PI para parabenizá-lo por esse excelente framework. Sou diretor de tecnologia do Grupo Claudino (o maior
        grupo empresarial do Piauí formado por 14 empresas e mais de 12 mil funcionários) e recentemente resolvemos migrar nossos sistemas para J2EE. Depois de várias discussões, resolvemos apostar no
        Mentawai principalmente pela facilidade, produtividade, ausência de XML e ser genuinamente brasileiro. Acabamos de finalizar o nosso primeiro aplicativo com duração de apenas 2 meses. A
        previsão da finalização de toda a migração do nosso ERP é final de 2009. Até lá mandaremos muitas dúvidas, sugestões e críticas para o forum."</i></font></td>
        <td width="6%">&nbsp;</td>
    </tr>
    <tr>
        <td width="6%">&nbsp;</td>
        <td width="72%" align="right"><b><font color="blue">por Thiago Carvalho de Sousa</font></b></td>
        <td width="6%">&nbsp;</td>
    </tr>
    <tr>
        <td colspan="3">&nbsp;</td>
    </tr>
    <tr>
        <td width="6%">&nbsp;</td>
        <td width="72%"><font color="black"> <i>"I work for Sun Microsystems Ltd and I'm involved in making a decision about Web Application Frameworks. The OpenSolaris website is
        currently implemented using WebWorks2 and, to a limited extent, Spring. In my opinion this is too heavyweight for our needs and I'm hoping to introduce a light-weight framework for any new
        website development. I read about Mentawai with great interest. I share your belief that scattering the execution path for an application betweem Java and XML is a recipe for disaster. So far,
        Mentawai looks like a great candidate for us to use."</i></font></td>
        <td width="6%">&nbsp;</td>
    </tr>
    <tr>
        <td width="6%">&nbsp;</td>
        <td width="72%" align="right"><b><font color="blue">por Gary Pennington</font></b></td>
        <td width="6%">&nbsp;</td>
    </tr>

    <tr>
        <td colspan="3">&nbsp;</td>
    </tr>
    <tr>
        <td width="6%">&nbsp;</td>
        <td width="72%"><font color="black"> <i>"Já usei Struts, passei pelo Webwork e tenho ele ainda em muitos projetos aqui, mas aos poucos estou migrando tudo para o Mentawai, e
        estou muito satisfeito pela simplicidade dele!"</i></font></td>
        <td width="6%">&nbsp;</td>
    </tr>
    <tr>
        <td width="6%">&nbsp;</td>
        <td width="72%" align="right"><b><font color="blue">por Alexandre Ortiz da Rocha</font></b></td>
        <td width="6%">&nbsp;</td>
    </tr>

    <tr>
        <td colspan="3">&nbsp;</td>
    </tr>
    <tr>
        <td colspan="3" align="center"><a href="http://forum.mentaframework.org/posts/list/157.page" target="_blank">Clique aqui para ler mais depoimentos!</a>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:sergio.oliveira.jr at gmail.com">Compartilhe conosco o seu caso de sucesso!</a></td>
    </tr>

</table>
</center>
<h3>Notícias</h3>
<ul>
    <li>Teste 1</li>
    <li>Teste 2</li>
    <li>Teste 3</li>
    <li>Teste 4</li>
</ul>
<br />
<h3>Visão Geral</h3>
<p>O Mentawai foi o primeiro <b>framework web MVC em Java</b> a adotar, implementar, documentar e <b>incentivar</b> todo e qualquer tipo de configuração (actions, filtros, validação, listas,
connection pooling, ioc, di, etc.) <b>única e exclusivamente</b> através de <b><u><font color="blue">configuração programática</font></u></b> (100% Java), <b>abolindo por completo</b> o uso de <b>XML
e Annotations</b> para as configurações. O framework nasceu em 08/Jun/2005 e logo depois em 18/Jul/2005 publicamos um <a href="http://www.javaworld.com/javaworld/jw-07-2005/jw-0718-mentawai.html"
    target="_blank">artigo no site JavaWorld</a> enfatizando o uso de configuração programática para o controlador MVC (actions/resultados/conseqüências) assim como para validação. Nascia aí o <i><font
    color="blue">ApplicationManager</font></i>: configuração em código Java <b>independente</b> do restante da sua aplicação e <b>centralizada numa única classe</b>. Apesar de termos recebidos muitas
críticas pela aversão ao XML, as vantagens da configuração programática foram ficando cada vez mais claras para a equipe do Mentawai:</p>
<ul>
    <li>Mais <b>prazerosa e natural</b>, afinal estamos falando de código Java e não de uma especificação em XML.</li>
    <br />
    <li><b>Menos propensa a erros</b> e typos, já que uma configuração em Java pode ser compilada antes de ser carregada pela aplicação web.</li>
    <br />
    <li>Ótima <b>integração com IDEs</b>, permitindo usar recursos como <b>auto-complete, auto-compile</b> (build automático), <b>refactoring</b>, etc.</li>
    <br />
    <li><b>Flexibilidade total</b> que apenas uma linguagem de programação pode oferecer, o que te permite criar seus próprios métodos de configuração, loops, ifs, comentários, ou seja, você
    possui a <b><u>liberdade para fazer a configuração se adaptar a você</u></b> e não você se adaptar ao XML.</li>
    <br />
    <li>Utilizar <b>linguagens de script</b> como <b>JRuby, Groovy, BeanShell</b>, etc. para configurar sua aplicação, possibilitando uma <b>configuração dinâmica</b> que pode ser <b>recarregada
    automaticamente</b> pelo container a cada modificação.</li>
    <br />
    <li>O bom e velho <b>JavaDoc</b>, documentando todos os métodos que podem ser utilizados para configuração.</li>
    <br />
</ul>
<p>Isso <b><u>não significa</u></b> que o Mentawai não possui <i>Convention over Configuration (CoC)</i>. O <a href="http://forum.mentaframework.org/posts/list/765.page" target="_blank">Mentawai
possui CoC</a> e padrões para tudo, diminuindo bastante a necessidade de configuração. Entretanto, seja por uma questão de <b>preferência por explicitamente controlar as configurações</b> ou seja por uma
questão de <b>necessidade</b>, o que inevitavelmente acontece em qualquer projeto, quando houver configurações essas serão feitas através de <b>configuração programática</b> e não através de XML,
Annotations ou arquivos properties.</p>
<p>Outro pilar em que o Mentawai se apoiou desde o início foi o <b><u>comprometimento em abstrair e simplificar as principais tarefas recorrentes de todo projeto web</u></b>. Ao invés de
direcionar o usuário para <i>qualquer outro framework que já faz isso</i>, o Mentawai oferece soluções ou abstrações para as funcionalidades básicas de toda aplicação web: pool de conexões com o banco
de dados, autenticação, autorização, IoC, DI, Envio de Email, Upload de Arquivo, Paginação, Tags, etc. O Mentawai é <b><u>totalmente contra</u></b> a política do "<i>Já existe um framework pra
isso! Procure na Internet e se vire!</i>".</p>
<p>Hoje o Mentawai é utilizado por <a href="http://forum.mentaframework.org/posts/list/157.page" target="_blank">diversas empresas e pessoas no Brasil e no exterior</a>, possui uma <a
    href="http://forum.mentaframework.org" target="_blank">comunidade ativa</a> que já trocou perto de 10 mil mensagens no seu fórum de discussão, e continua evoluindo, sempre fiel aos princípios da
produtividade, simplicidade, abstração e configuração programática. Fique a vontade para conhecer o framework e veja como é fácil fazer a sua aplicação web utilizando o Mentawai.</p>
<p>Equipe Mentawai<br />
<i>21 de Abril de 2007</i></p>

<h2>JForum</h2>
<p><iframe frameborder="0" id="jforum-iframe" scrolling="no" height="2600" src="http://docs.mentaframework.org/posts/list/70.page"></iframe></p>



</div>

<div class="clear">
<hr />
</div>

<div id="footer">
<div class="xright">Copyright © 2011</div>
<div class="clear">
<hr />
</div>
</div>

</body>
</html>