quinta-feira, 31 de julho de 2008

Dissecando Win Forms Binding e BindingSource

Navegando pela internet procurando informações sobre o funcionamento de binding em Windows Forms (que é um pouco diferente do ASP.net) encontrei uma joia rara no code project, com direito a comentários sobre o funcionamento interno dos recursos do binding source. Para quem quer se aprofundar no assunto, é imperdível.

http://www.codeproject.com/KB/miscctrl/databinding_tutorial.aspx

Realmente é uma obra de um doente, deus dos nerds, mas quem disse que ele não é? Afinal, quem começa a desenvolver aos 11 anos (ele diz isso no profile dele) não pode ser considerado um cara normal!
Eu estava jogando bola e empinando papagaio quando eu tinha 11 anos. :-)

sábado, 19 de julho de 2008

ASP.NET MVC (Melhores momentos)

Olá pessoal!

Depois de um bom tempo sem blogar, agora, formado :-)
surgiu mais tempo para retormar alguns projetos, e um deles é o blog.

Nesse post, vou mudar um pouco o foco e falar sobre desenvolvimento MVC. Que é um modelo muito usado em projetos Open-Source:
http://en.wikipedia.org/wiki/Model-view-controller

Vendo o crescimento de plataformas como o Rubi-on-Rails baseados nesse padrão arquitetural, a Microsoft se preparou logo para a criação de um padrão de desenvolvimento Web que atendesse a esse público e criou o ASP.NET MVC. Vale atentar para o fato de que já existe um padrão MVC para .NET: o MonoRail.

Como nos últimos tempos muita gente tem falado sobre MVC, resolvi preparar um guia de links para intruduzir as pessoas nessa tecnologia e apresentar blogs que falam sobre o tema:

Considerações iniciais sobre o ASP.NET MVC Framework (Ricardo Oneda): http://www.linhadecodigo.com.br/Artigo.aspx?id=1602

Desvendando o MVC (Ricardo Oneda):
http://www.linhadecodigo.com/Artigo.aspx?id=1634

Criando Aplicativos Web Sem WebForms (Chris Tavares):
http://msdn.microsoft.com/pt-br/magazine/cc337884.aspx


Bom, depois desses artigos, muita coisa rolou no desenvolvimento do projeto ASP.NET MVC. Vieram os Previews 2 e 3, e nos últimos dias, liberaram o preview 4, e segundo os comentários do Scott Guthrie ( o Beta 1 não deve demorar muito ).

Para acompanhar o que há de mais quente nessa tecnologia, o blog dos Scotts (o Guthire e o Hansellman) são as melhores fontes de informações. Um com as novidades e alguns tutoriais, e o outro com vídeos e aplicações completas.
Scott Gu
http://weblogs.asp.net/scottgu/search.aspx?q=MVC&o=Relevance

Scott Hanselman
http://www.hanselman.com/blog/


Vale lembrar que se você gosta de WebForms e "não quer se separar dele", não se preocupe, os dois modelos coexistirão.

O que ninguem ainda sabe é se o ASP.NET vai sustentar duas bibliotecas de controles diferentes ou se os projetos MVC e WebForms convergirão nesse ponto.
Acho complicado unir as duas tecnologias, afinal, o comportamento de um System.Web.UI.Controls.TextBox (com viewstate e tudo mais) seria um pouco diferente no MVC, já que o viewstate não é suportado, e todo o ciclo de vida de um WebForm não é seguido dentro do padrão MVC. Talvez eles mantenham as tags "asp:" por questões de portabilidade de código, mas seu funcionamento interno será distindo. Em paralelo a isso, o MVC tem implementado uma coletânea de ExtensionMethods denominados HtmlHelper methods para renderizar controles. Nesse ponto, voltamos a era ASP.

Outra coisa que intriga um pouco é a forma como o time do projeto ASP.NET MVC vai lidar com AJAX, que foi uma das grandes investidas do ASP.NET 3.5 e mantém uma comunidade atuante, mas não é compatível com MVC. Acredito que o MVC vai procurar ser "plugável" nesse ponto, mas que vai passar a bola para o ASP.NET AJAX através de alguns "açúcares sintáticos". Se eu pudesse apostar, diria que eles vão utilizar um novo recurso denominado Filters Interceptors para implementar funcionalidade ajax nos Controllers, mas tenho grande curiosidade em ver como as views vão tratar isso.

O grande problema que envolve o AJAX é que ele pode desvirtuar a filosofia MVC se ele aproximar demais a View dos Controlers. Afinal, Em teoria, um controller deve ser "agnóstico" quanto a views. E o ajax é uma tecnologia que funciona nas views e não deveria, em tese, ter qualquer relação com os controllers clientes, mas não acredito que tenha um meio de descascar esse abacaxi facilmente.

Para não dizer que tudo são flores, indico também a leitura de um artigo do Dennes torres apresentando sua análise sobre o padrão:
http://www.devaspnet.com.br/colunas/coluna0136.aspx

Eu não concordo em tudo do que ele fala, principalmente na conclusão, acredito que grandes projetos tem um potencial de serem melhor escritos em MVC do que WebForms através de TDD, mas acho uma leitura importante para manter um olhar crítico sobre a tecnologia e não se encantar apenas por ser novidade, em outras palavras, manter seus pés no chão. :-)

Até a Próxima!