1
resposta

C#( MVC, razor) X JavaScript(Jquery, whatever)

Oi Galera, Estou levando "toco" direto nesse C# MVC (ASP.NET MVC do Visual Studio 2015). E venho aqui pedi uma ajuda. :) Estou tendo contato agora com o razor (trabalho novo) e nada mais de webforms. Aqui, todo evento do ".cshtml" é utilizado um JavaScript (na verdade é um AngularJS) que se comunica com a controller. Eu não consigo fazer eventos simples que acione a controller sem JavaScript, exemplo: dei enter no ultimo campo da tela e a consulta no banco deve acontecer na sequencia sem nenhum botão. Isso é só um exemplo. No webforms isso é 100% resolvido dentro do Visual Studio com functions e procedures programáveis em código. Como faço eventos no VS (com razor e MVC)?

1 resposta

Olá, Vanessa!

Bem-vinda ao maravilhoso mundo do MVC ;-)

Como você deve saber, os webforms tinham um modelo de programação bem intuitiva baseada em eventos. Era muito parecido com windows forms (foi daí que a Microsoft tirou a ideia dos webforms). Era cômodo para os desenvolvedores usarem (e abusarem) desse modelo, enfiando eventos em tudo que era controle do ASP.NET. O arquivo code-behind de uma página (aspx.cs) ficava repleta de métodos pra tratar os eventos da página.

Com o MVC, os desenvolvedores perderam essa "moleza" (eu também senti isso na pele). Na realidade, a web (e o protocolo http) são stateless, isto é, por padrão eles não mantêm essa "ligação" nem "eventos" entre cliente e servidor. Então na verdade o servidor não conhece o cliente, e vice-versa. Não existem "eventos" em MVC (como o evento de "LostFocus" numa caixa de texto), porque esse é um conceito artificial criado pelo WebForms. (Foi assim que a Microsoft conseguiu trazer muitos programadores de Windows Forms para a web!)

O MVC trabalha com a "realidade" da programação web, que é: sem eventos. Ou seja, não tem jeito, você precisa usar JavaScript para realizar a mesma tarefa que os eventos suportavam com WebForms. Cada framework JavaScript tem uma maneira peculiar de buscar/enviar dados de/para o servidor (através do AJAX), então fique atenta a essas peculiaridades do seu projeto (Angular).

Mas veja pelo lado bom: os WebForms eram mais fáceis de programar, porém as aplicações se tornavam muito pesadas e lentas com o passar do tempo, gerando muita insatisfação dos usuários. O MVC permitiu aos desenvolvedores ASP.NET conhecer melhor a realidade do modelo de programação web, que é stateless, deixou as aplicações bem mais enxutas e melhorou muito a performance do ASP.NET.

Em poucas linhas, acho que é isso.

Boa sorte e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software