Resumidamente e simplificando muito, uma aplicação web é um programa que funciona segundo os princípios do protocolo http.
https://github.com/blabos/Docs/wiki/Protocolo-HTTP Ao acessar uma página na internet, você tem um cliente (browser) que faz uma requisição ao servidor. Este por sua vez, recebe a requisição, processa e gera uma resposta para o browser, normalmente html. O browser então faz o download dessa resposta e renderiza para você. Portanto, existe o lado cliente e o lado servidor. O lado cliente é responsável por "chamar" a página e renderizar a resposta, que normalmente contém html, javascript, css, etc. No lado servidor, pode haver qualquer coisa pra processar a requisição, de Perl a assembly, desde que respeitado o http. Conhecço casos de aplicações web em C++. Python, Perl, PHP, C, C++, Lisp são linguagens que normalmente rodam no servidor, processando a requisição e gerando a resposta. Você pode fazer isso da forma que achar melhor. Existem entretanto, padrôes e convenções amplamente aceitas no mercado. O MVC é uma delas. O MVC é uma forma de organizar o código do lado do servidor, separando o que é dado, o que é processamento e o que é visualização, de forma que uma equipe possa trabalhar em paralelo, entre outros benefícios. Não é a única forma de fazer, mas tem-se mostrado uma boa forma de fazer. PHP e Perl antigos eram uma desgraça, pois você misturava html com SQL, com validação de parâmetro, com cookie, com o diabo a quatro. Funciona. Mas na hora de dar manutenção vc sofre. MVC é o que chamamos de padrão de engenharia de software. Fazendo uma analogia, vc pode construir uma casa com paredes redondas e fora do prumo, mas o padrão é ter paredes retas com Π/2 radianos entre si. Catalyst e Mojolicious são frameworks, ferramentas que te ajudam a construir uma aplicação. Com eles vc vai ter facilidades para montar seu piso, paredes e teto, de acordo com a necessidade da sua construção. Os frameworks normalmente implementam as partes repetitivas, chatas e genéricas do ato de fazer uma aplicação, enquanto que o seu código vai implementar os dados, a lógica e a cara específica da sua aplicação. Ao invés da bitola do vergalhão da fundação você vai se preocupar com a cor, o tamanho, quantos quartos, etc vai ter a sua casa. Você já deve ter notado que pra dominar esse processo você vai precisar aprender sobre várias "camadas" de tecnologia. Entretanto dá pra começar com um pouquinho de cada e ir se aprofundando. Você não vai precisar de um PhD pra fazer um site, mas quanto mais souber, mais fácil/rápido/barato fica. Note que assim como na construção, onde há operários especializados pra cada tarefa, (pedreiro, carpinteiro, vidraceiro, etc) é normal ter vários especialistas trabalhando numa aplicação, como DAs, DBAs, programadores, designers (design é a coisa, designER é quem faz design), testers e assim por diante. Imagina se fundação, teto, encanamento e fiação fossem sendo adicionados aleatoriamente e misturados. Hum, mas eu queria essa lâmpada um palmo pra direita. Sinto muito, vou ter que quebrar o piso, tirar a torneira do banheiro e por na sala. Por isso a importância dos padrões, facilitados por frameworks. Espero ter dado um pequeno overview, abusando da licença poética. Qualquer coisa, só falar. []'s 2011/5/24 Teddy Hammer <[email protected]>: > Ae galera! > Vcs comentaram sobre Mojolicious e o CatalystFramework. Dei uma olhada por > cima e não sei se entendi o que realmente eles fazem. > O código deles é embutido dentro do HTML ou eles fazem o Designer da página, > por exemplo, de um formulário de cadastro, como por exemplo o DreamWeaver > faz? > Se não for, como vcs fazem o desenvolvimento (tipo como faz um Web Design !) > das páginas? Vcs usam qual ferramenta pra isso? > > Alguém pode me explicar como isto eh feito? > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > > =begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
