Asp.net

Sou um programador fervoroso por Java. Porem, sempre estou atento a novas tecnologias, estudando. Nao gosto muito da M$ e suas tecnologias. Sempre critico varias de suas decisoes e estrategias. No entanto, sou da opiniao de que para falar mal tem que conhecer. Por isso sempre estou estudando o mundo windows, suas API’s e plataformas de desenvolvimento. Por isso fui ver qual e que era do ASP.NET

Quando conheci o modelo de programacao MVC para WEB achei uma grande adaptacao, muito bem planejada. Realmente foi um grande salto para a programacao web convencional, tanto que existem inumeros frameworks com suporte a ele, ate em outras linguagens, como coldfusion e ate php.

Ja a M$, desdo  inicio de sua tecnologia, foi adepta do modelo baseado em eventos. A API WIn32 eh baseado nesse conceito, o VB usa muito dessa ideia tb. Agora eles conseguiram levar isso para o mundo WEB, atraves do tal de ASP.NET. Tomo a liberdade de transcrever um exemplo disso neste forum java (perdoem-me)
<script runat="server" language="VB">
Sub myAnchor_OnClick(Source As Object, e As EventArgs)
    ' do something
End Sub
</script>
...
<FORM runat="server">
<A id="myAnchor" runat="server"
OnServerClick="myAnchor_OnClick">
Click</A>
</FORM>
O exemplo nada mais eh que um texto linkado, onde a acao , apos o link ser clicado, eh executado no servidor. Desta forma, todo o tratamento de montar o formulario, simular a acao com um post e simular a acao no servidor eh feito pelo framework do ASP.NET. Criticas a parte, tambem sou muito mais a separacao de logica/apresentacao do MVC. Entretanto gostaria de saber se alguem conhece algum framework que apresente uma solucao semelhante, onde estivesse centrado em html, mas que permitisse um modelo de eventos executado no servidor.

Cheguei ate a dar uma olhada nos frameworks WINGS e ECHO, mas eles me pareceram mais uma adaptacao do SWING, centrado em widgets de interface e usando LayouManagers para posicionamento. Eu queria realmente algo nessa ideia, do runat=server, porem usando HTML mesmo para posicionamento e construcao.

Isso tudo porque realmente, para falar mal, tem que conhecer. Ai em qualquer discussao que tiver um VB looooser, vou poder argumentar: "Ta, se voce gosta de programar orientado a evento, tudo bem, da para fazer isso via JSP tb, basta usar o framework X."

O Struts tem muita coisa parecida com o asp.net, o mesmo esquema de componentes.

Esse runat=server nao tem nada demais, ele apenas serve para dizer ao pre-processador da pagina que deve transformar um <asp:textbox> em <input type=text>.

Se for para executar alguma acao ( como um clique em um botao ), eh associado um evento javascript. Repare na pagina gerada, ha codigo javascript “embaralhado”, nada mais que isso.
Asp.net tem uns lances interessantes, mas nada que nao exista similar em Java, ou nada que seje complicado de implementar.
Note que os posicionamentos usam layers, ou tags “div”, e muitas soh funcionam no internet explorer.

Rafael

[quote=“Rafael Steil”]O Struts tem muita coisa parecida com o asp.net, o mesmo esquema de componentes.

Esse runat=server nao tem nada demais, ele apenas serve para dizer ao pre-processador da pagina que deve transformar um asp:textbox em .

Se for para executar alguma acao ( como um clique em um botao ), eh associado um evento javascript. Repare na pagina gerada, ha codigo javascript “embaralhado”, nada mais que isso.
Asp.net tem uns lances interessantes, mas nada que nao exista similar em Java, ou nada que seje complicado de implementar.
Note que os posicionamentos usam layers, ou tags “div”, e muitas soh funcionam no internet explorer.

Rafael[/quote]

Com certeza tudo vai sendo transformado em padroes da web, como um HTML + Javascript (pelo menos eh esperado). Agora o que eh interessante realmente eh a geracao automatica desses mecanismos de eventos. Conheco as tags do struts e elas nao apresentam esse mesmo modelo de programacao. O Struts eh um framework inspirado no MVC.

O Struts tem coisas muito boas, por exemplo, a geracao automatica de validacao, usando javascript. Mas o struts usa um mecanismo de acoes. Ainde eh necessario definir um formulario com uma acao e realizar um post.

Ja com a proposta do framework do ASP.NET ele nao usa essa ideia. Sim, por baixo dos panos existe o formulario e o POST. Imagine uma listbox que eh preenhida, pelo servidor, com valores dependendo , digamos, de um checkbox. Usando o struts tenho que criar o checkbox, escrever um javascript para dar um post na pagina toda vez que o checkbox for alterado. Ja com a proposta do ASP.NET, faria somente uma acao do tipo onserverclick e apontaria a funcao , no servidor, para ser processada. Tudo seria feito por baixo do pano, parecendo um sistema baseado em eventos.

Volto a repetir que nao acho isso uma boa tecnica de programacao. Acho o struts uma excelente ferramenta, mas ele nao apresenta o mesmo paradigma do ASP.NET, alias tem pouca coisa a ver.

O ASP.NET, com as suas tags runat-server, alem de converter um asp:textbox para um input type=textbox bota mais uma penca de javascript para simular as acoes no componente. Quem faz essa traducao nua e crua realmente eh o struts, que converte suas tags html:blabla para o equivalente em html, preenchendo os values dos input com o valor do bean.

Sim, no final das contas eh tudo uma “simulacao” de ambiente desktop. Grande parte das “maravilhosas” funcionalidades do asp.net sao coisas perfeitamente implementaveis em quaisquer outras tecnologias.

Aquele papinhos que os ms-lovers dizem nas palestras sobre as maravilhas desse ambiente nao passa de bulshit marqueteira.

Rafael

[quote=“Rafael Steil”]Sim, no final das contas eh tudo uma “simulacao” de ambiente desktop. Grande parte das “maravilhosas” funcionalidades do asp.net sao coisas perfeitamente implementaveis em quaisquer outras tecnologias.

Aquele papinhos que os ms-lovers dizem nas palestras sobre as maravilhas desse ambiente nao passa de bulshit marqueteira.

Rafael[/quote]

Com certeza, e simulacao ruim. Quanto a tecnologia, tudo eh implementavel de maneira igual, desdo seculo passado, usando CGI’s. O efeito eh o mesmo. Nem por isso vou parar de usar servlets e JSP, onde o ganho em produtividade e corretude do codigo eh maior. O ASP.NET apresenta uma alternativa ao fluxo de desenvolvimento que satisfaz completamenta os usuarios de suas ferramentas , os programadores VB. Os programadores VB adoravam fazer seus botaozinhos com um onClick e vao poder fazer o mesmo botaozinho numa pagina, com um onServerClick.

Nao podemos deixar ser arrastados pela onda. Todos tem que se aprimorar. A propria sun faz isso. Apos o .NET apresentar autoboxing (conversao automatica de tipos primitivos) a sun correu atras e ta implementando isso no Tiger. Sempre vivi muito bem sem o autoboxing. Podemos chamar a sun com seu altoboxing de bullshit marketeira?

Vale lembrar que autoboxing é de longe uma ideia nova, Auto (un)boxing é apenas marketing para algo que o C++ tem a quase 1 decada, uma versão reduzida de conversão implicita e operador de conversão.