http://netponto.pt<br />1ª Reunião Presencial - 15/08/2009<br />Introdução ao ASP .NET MVCCaio Proiete<br />
Caio Proiete<br />9 anos de experiência profissional em TI<br />Há 3 anos em Portugal<br />Microsoft Most Valuable Profess...
Caio Proiete<br />9 anos de experiência profissional em TI<br />Há 3 anos em Portugal<br />Microsoft Most Valuable Profess...
Agenda<br />Introdução<br />ASP .NET: WebForms e MVC<br />O que é MVC?<br />Funcionamento do ASP .NET MVC<br />WebForms: V...
Introdução: ASP .NET e WebForms<br />Não é a mesma coisa!<br />WebForms, é um framework do ASP .NET - A plataforma para de...
Agora temos o ASP .NET MVC<br />Que é um outro framework para o ASP .NET<br />E agora ficamos com duas opções:<br />ASP .N...
ASP .NET MVC: Características<br />Total controlo do HTML gerado<br />Total controlo das URLs (Clean URLs)<br />Permiteaut...
ASP .NET MVC: URLs simplificadas<br />No ASP .NET WebForms:<br />/Produtos.aspx?Categoria={dF7504E0-4F80-1173-9A0C-0305482...
O que é o ASP .NET MVC?<br />Actualmente, é um framework instalado à parte<br />Não vem com o Visual Studio 2008, nem com ...
O ASP .NET MVC inclui<br />Um novo template de projecto Web<br />
O ASP .NET MVC inclui<br />1 (um) novo assembly e namespace<br />System.Web.Mvc<br />Que depende de outros assemblies<br /...
OK, mas o que é esse MVC?<br />MVC = Model-View-Controller<br />É um padrão de arquitecturaaplicacional,design pattern<br ...
Separar responsabilidades?<br />Sim. Porexemplo, a apresentação dos dados para o utilizadordeveserresponsabilidade de uma ...
Model-View-Controller<br />Controller<br />(Entrada)<br />View<br />(Apresentação)<br />Model<br />(Lógica)<br />
Funcionamento do ASP .NET MVC<br />Requisição é redireccionada para o Controller<br />Controller<br />Request<br />
Funcionamento do ASP .NET MVC<br />Controller processa e forma um modelo de dados<br />Controller<br />Request<br />
Funcionamento do ASP .NET MVC<br />Esse modelo de dados é enviado para a View<br />Controller<br />Request<br />ViewData<b...
Funcionamento do ASP .NET MVC<br />A View cria uma representação visual desses dados<br />Controller<br />Request<br />Vie...
Funcionamento do ASP .NET MVC<br />E essa representação é enviada de volta para o navegador<br />Controller<br />Request<b...
EstruturaASP .NET MVC<br />demonstração<br />
WebForms: Vantagens<br />Desenvolvimentorápido (RAD)<br />Controlosque “trabalham” porvocê<br />Conceitosemelhante a desen...
WebForms: Desvantagens<br />Poucocontrolosobre o HTML gerado<br />Muitodifícilparaautomatizar testes naspáginas<br />Abstr...
Um exemplo de como NÃO utilizar ViewState<br />ASP .NET<br />WebForms<br />http://www.mulherconsciente.com.br<br />
~113 Kb só de ViewState (!)<br />/wEPDwULLTE3NDAyNzI0MzMPZBYCZg9kFgICAw9kFgYCAw8PFgIeCEltYWdlVXJsBSsvdXBsb2FkL0FuYU1hcmlhQ...
Criação de Controllers e Views<br />demonstração<br />
Criação de Rotas<br />demonstração<br />
Referências<br />Site Oficial<br />http://asp.net/mvc<br />Blog do Scott Guthrie (Microsoft)<br />http://weblogs.asp.net/s...
Referências<br />MSDN Virtual Lab: Introduction to ASP.NET MVC New!<br />http://go.microsoft.com/?linkid=9631340<br />MSDN...
Dúvidas?<br />
Upcoming SlideShare
Loading in …5
×

Introdução ao ASP .NET MVC - Caio Proiete

1,392 views

Published on

Apresentação de Introdução ao ASP .NET MVC na primeira reunião presencial da comunidade NetPonto

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,392
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
20
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Introdução ao ASP .NET MVC - Caio Proiete

  1. 1. http://netponto.pt<br />1ª Reunião Presencial - 15/08/2009<br />Introdução ao ASP .NET MVCCaio Proiete<br />
  2. 2. Caio Proiete<br />9 anos de experiência profissional em TI<br />Há 3 anos em Portugal<br />Microsoft Most Valuable Professional 2008-2009<br />Microsoft Certified Trainer desde 2004<br />
  3. 3. Caio Proiete<br />9 anos de experiência profissional em TI<br />Há 3 anos em Portugal<br />Microsoft Most Valuable Professional 2008-2009<br />Microsoft Certified Trainer desde 2004<br />{<br />
  4. 4. Agenda<br />Introdução<br />ASP .NET: WebForms e MVC<br />O que é MVC?<br />Funcionamento do ASP .NET MVC<br />WebForms: Vantagens e Desvantagens<br />Demonstração<br />Criação de Controllers, Views e Rotas<br />
  5. 5. Introdução: ASP .NET e WebForms<br />Não é a mesma coisa!<br />WebForms, é um framework do ASP .NET - A plataforma para desenvolvimento de aplicações web<br />
  6. 6. Agora temos o ASP .NET MVC<br />Que é um outro framework para o ASP .NET<br />E agora ficamos com duas opções:<br />ASP .NET WebForms<br />ASP .NET MVC<br />
  7. 7. ASP .NET MVC: Características<br />Total controlo do HTML gerado<br />Total controlo das URLs (Clean URLs)<br />Permiteautomatizar testes na interface gráfica com facilidade<br />Extremamenteextensível<br />
  8. 8. ASP .NET MVC: URLs simplificadas<br />No ASP .NET WebForms:<br />/Produtos.aspx?Categoria={dF7504E0-4F80-1173-9A0C-0305482C3301}<br />No ASP .NET MVC:<br />/Produtos/Livros<br />
  9. 9. O que é o ASP .NET MVC?<br />Actualmente, é um framework instalado à parte<br />Não vem com o Visual Studio 2008, nem com o .NET Framework 3.5. Nem mesmo no SP1 destes<br />Estará incluído no Visual Studio 2010<br />
  10. 10. O ASP .NET MVC inclui<br />Um novo template de projecto Web<br />
  11. 11. O ASP .NET MVC inclui<br />1 (um) novo assembly e namespace<br />System.Web.Mvc<br />Que depende de outros assemblies<br />System.Web.dll (2.0)<br />System.Core (3.5)<br />System.Web.Extensions (3.5)<br />System.Web.Abstractions (3.5 SP1)<br />System.Web.Routing (3.5 SP1)<br />
  12. 12. OK, mas o que é esse MVC?<br />MVC = Model-View-Controller<br />É um padrão de arquitecturaaplicacional,design pattern<br />Permiteseparar as responsabilidadesemumaaplicação<br />
  13. 13. Separar responsabilidades?<br />Sim. Porexemplo, a apresentação dos dados para o utilizadordeveserresponsabilidade de uma parte “X” da aplicação.<br />Já a parte de obteros dados da base de dados, responsabilidade de uma parte “Y” da aplicação<br />
  14. 14. Model-View-Controller<br />Controller<br />(Entrada)<br />View<br />(Apresentação)<br />Model<br />(Lógica)<br />
  15. 15. Funcionamento do ASP .NET MVC<br />Requisição é redireccionada para o Controller<br />Controller<br />Request<br />
  16. 16. Funcionamento do ASP .NET MVC<br />Controller processa e forma um modelo de dados<br />Controller<br />Request<br />
  17. 17. Funcionamento do ASP .NET MVC<br />Esse modelo de dados é enviado para a View<br />Controller<br />Request<br />ViewData<br />View<br />
  18. 18. Funcionamento do ASP .NET MVC<br />A View cria uma representação visual desses dados<br />Controller<br />Request<br />ViewData<br />View<br />
  19. 19. Funcionamento do ASP .NET MVC<br />E essa representação é enviada de volta para o navegador<br />Controller<br />Request<br />ViewData<br />View<br />Response<br />
  20. 20. EstruturaASP .NET MVC<br />demonstração<br />
  21. 21. WebForms: Vantagens<br />Desenvolvimentorápido (RAD)<br />Controlosque “trabalham” porvocê<br />Conceitosemelhante a desenvolverparaWindows Forms. Aproveitaconhecimentoprévio<br />
  22. 22. WebForms: Desvantagens<br />Poucocontrolosobre o HTML gerado<br />Muitodifícilparaautomatizar testes naspáginas<br />Abstração do funcionamento real das aplicações web (PostBacks, ViewState), quepodeinduzir a erros com facilidade<br />
  23. 23. Um exemplo de como NÃO utilizar ViewState<br />ASP .NET<br />WebForms<br />http://www.mulherconsciente.com.br<br />
  24. 24. ~113 Kb só de ViewState (!)<br />/wEPDwULLTE3NDAyNzI0MzMPZBYCZg9kFgICAw9kFgYCAw8PFgIeCEltYWdlVXJsBSsvdXBsb2FkL0FuYU1hcmlhQnJhZ2EuanBnLjM0MHgzNDAudGh1bWIuYXhkZGQCBQ9kFgYCBQ8WAh4LXyFJdGVtQ291bnQC/////w9kAgcPZBYCZg9kFgJmD2QWAgIBD2QWAgIVDxAPFgIeC18hRGF0YUJvdW5kZ2QPFhsCAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsWGxAFBEFjcmUFAkFDZxAFB0FsYWdvYXMFAkFMZxAFCEFtYXpvbmFzBQJBTWcQBQZBbWFww6EFAkFQZxAFBUJhaGlhBQJCQWcQBQZDZWFyw6EFAkNFZxAFEERpc3RyaXRvIEZlZGVyYWwFAkRGZxAFD0VzcMOtcml0byBTYW50bwUCRVNnEAUGR29pw6FzBQJHT2cQBQlNYXJhbmjDo28FAk1BZxAFDE1pbmFzIEdlcmFpcwUCTUdnEAUSTWF0byBHcm9zc28gZG8gU3VsBQJNU2cQBQtNYXRvIEdyb3NzbwUCTVRnEAUFUGFyw6EFAlBBZxAFCFBhcmHDrWJhBQJQQmcQBQpQZXJuYW1idWNvBQJQRWcQBQZQaWF1w60FAlBJZxAFB1BhcmFuw6EFAlBSZxAFDlJpbyBkZSBKYW5laXJvBQJSSmcQBRNSaW8gR3JhbmRlIGRvIE5vcnRlBQJSTmcQBQlSb25kw7RuaWEFAlJPZxAFB1JvcmFpbWEFAlJSZxAFEVJpbyBHcmFuZGUgZG8gU3VsBQJSU2cQBQ5TYW50YSBDYXRhcmluYQUCU0NnEAUHU2VyZ2lwZQUCU0VnEAUKU8OjbyBQYXVsbwUCU1BnEAUJVG9jYW50aW5zBQJUT2cWAWZkAgkPZBYCZg9kFgQCFQ8QDxYCHwJnZA8WGwIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgITAhQCFQIWAhcCGAIZAhoCGxYbEAUEQWNyZQUCQUNnEAUHQWxhZ29hcwUCQUxnEAUIQW1hem9uYXMFAkFNZxAFBkFtYXDDoQUCQVBnEAUFQmFoaWEFAkJBZxAFBkNlYXLDoQUCQ0VnEAUQRGlzdHJpdG8gRmVkZXJhbAUCREZnEAUPRXNww61yaXRvIFNhbnRvBQJFU2cQBQZHb2nDoXMFAkdPZxAFCU1hcmFuaMOjbwUCTUFnEAUMTWluYXMgR2VyYWlzBQJNR2cQBRJNYXRvIEdyb3NzbyBkbyBTdWwFAk1TZxAFC01hdG8gR3Jvc3NvBQJNVGcQBQVQYXLDoQUCUEFnEAUIUGFyYcOtYmEFAlBCZxAFClBlcm5hbWJ1Y28FAlBFZxAFBlBpYXXDrQUCUElnEAUHUGFyYW7DoQUCUFJnEAUOUmlvIGRlIEphbmVpcm8FAlJKZxAFE1JpbyBHcmFuZGUgZG8gTm9ydGUFAlJOZxAFCVJvbmTDtG5pYQUCUk9nEAUHUm9yYWltYQUCUlJnEAURUmlvIEdyYW5kZSBkbyBTdWwFAlJTZxAFDlNhbnRhIENhdGFyaW5hBQJTQ2cQBQdTZXJnaXBlBQJTRWcQBQpTw6NvIFBhdWxvBQJTUGcQBQlUb2NhbnRpbnMFAlRPZxYBZmQCHw8QDxYCHwJnZA8WAwIBAgICAxYDEAUIRMO6dmlkYXMFATFnEAUGT3V0cm9zBQEzZxAFClN1Z2VzdMO1ZXMFATJnFgFmZAIHD2QWEAIBDw8WAh4IRGVzdGFxdWUytxQAAQAAAP////8BAAAAAAAAAAwCAAAAU1JvY2hlLk11bGhlckNvbnNjaWVudGUuTW9kZWwsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBQEAAAAuUm9jaGUuTXVsaGVyQ29uc2NpZW50ZS5Nb2RlbC5EZXN0YXF1ZVByaW5jaXBhbAgAAAAJYW5pbWFjb2VzEzxJRD5rX19CYWNraW5nRmllbGQXPFRpdHVsbz5rX19CYWNraW5nRmllbGQWPFRleHRvPmtfX0JhY2tpbmdGaWVsZBQ8VXJsPmtfX0JhY2tpbmdGaWVsZBc8U3RhdHVzPmtfX0JhY2tpbmdGaWVsZB08RGF0YUluY2x1c2FvPmtfX0JhY2tpbmdGaWVsZB48RGF0YUFsdGVyYWNhbz5rX19CYWNraW5nRmllbGQDAAEBAQAAA7ABU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tSb2NoZS5NdWxoZXJDb25zY2llbnRlLk1vZGVsLkRlc3RhcXVlUHJpbmNpcGFsQW5pbWFjYW8sIFJvY2hlLk11bGhlckNvbnNjaWVudGUuTW9kZWwsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0IAw0PU3lzdGVtLkRhdGVUaW1lAgAAAAkDAAAACQAAAAYEAAAAMVBhcnRpY2lwZSBkYSBDYW1pbmhhZGEgZGFzIFZpdG9yaW9zYXMgZW0gTWFjZWnDsyEGBQAAAPUCPHA+Tm8gcHImb2FjdXRlO3hpbW8gZG9taW5nbywgZGlhIDE2IGRlIGFnb3N0bywgbXVsaGVyZXMgcXVlIHBhc3NhcmFtIHBlbG8gYyZhY2lyYztuY2VyIGRlIG1hbWEsIGFjb21wYW5oYWRhcyBwb3IgYW1pZ29zLCBmYW1pbGlhcmVzLCBwcm9maXNzaW9uYWlzIGRlIHNhJnVhY3V0ZTtkZSBlIHNpbXBhdGl6YW50ZXMgZGEgbHV0YSB2JmF0aWxkZTtvIHNhaXIgJmFncmF2ZTtzIHJ1YXMgZGUgTWFjZWkmb2FjdXRlOyBwYXJhIGNlbGVicmFyIHN1YSB2aXQmb2FjdXRlO3JpYS4gUGFydGljaXBlLCBlbnRyZSBuZXNzYSBsdXRhISBBIGNvbmNlbnRyYSZjY2VkaWw7JmF0aWxkZTtvIHNlciZhYWN1dGU7IGEgcGFydGlyIGRhcyA5aCBubyBBbGFnb2luaGEuPC9wPgYGAAAASWh0dHA6Ly93d3cubXVsaGVyY29uc2NpZW50ZS5jb20uYnIvTm9zc2EtTHV0YS9ub3RpY2lhcy1kZXRhbGhlLmFzcHg/aWQ9MzRBAEKeJvvnywgIDVBtiPwA6MsIBAMAAACwAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbUm9jaGUuTXVsaGVyQ29uc2NpZW50ZS5Nb2RlbC5EZXN0YXF1ZVByaW5jaXBhbEFuaW1hY2FvLCBSb2NoZS5NdWxoZXJDb25zY2llbnRlLk1vZGVsLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAA4Um9jaGUuTXVsaGVyQ29uc2NpZW50ZS5Nb2RlbC5EZXN0YXF1ZVByaW5jaXBhbEFuaW1hY2FvW10CAAAACAgJBwAAAAEAAAABAAAABwcAAAAAAQAAAAQAAAAENlJvY2hlLk11bGhlckNvbnNjaWVudGUuTW9kZWwuRGVzdGFxdWVQcmluY2lwYWxBbmltYWNhbwIAAAAJCAAAAA0DBQgAAAA2Um9jaGUuTXVsaGVyQ29uc2NpZW50ZS5Nb2RlbC5EZXN0YXF1ZVByaW5jaXBhbEFuaW1hY2FvCAAAAAhhbmltYWNhbxFkZXN0YXF1ZVByaW5jaXBhbBM8SUQ+a19fQmFja2luZ0ZpZWxkGzxJZEFuaW1hY2FvPmtfX0JhY2tpbmdGaWVsZCQ8SWREZXN0YXF1ZVByaW5jaXBhbD5rX19CYWNraW5nRmllbGQiPE9yZGVtQXByZXNlbnRhY2FvPmtfX0JhY2tpbmdGaWVsZB08RGF0YUluY2x1c2FvPmtfX0JhY2tpbmdGaWVsZB48RGF0YUFsdGVyYWNhbz5rX19CYWNraW5nRmllbGQEBAAAAAAAAyRSb2NoZS5NdWxoZXJDb25zY2llbnRlLk1vZGVsLkFycXVpdm8CAAAALlJvY2hlLk11bGhlckNvbnNjaWVudGUuTW9kZWwuRGVzdGFxdWVQcmluY2lwYWwCAAAACAgICA1xU3lzdGVtLk51bGxhYmxlYDFbW1N5c3RlbS5EYXRlVGltZSwgbXNjb3JsaWIsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0CAAAACQkAAAAKegAAAJkAAAAJAAAAAQAAAGAFi/wA6MsICgUJAAAAJFJvY2hlLk11bGhlckNvbnNjaWVudGUuTW9kZWwuQXJxdWl2bwwAAAATPElEPmtfX0JhY2tpbmdGaWVsZBU8Tm9tZT5rX19CYWNraW5nRmllbGQVPFBhdGg+a19fQmFja2luZ0ZpZWxkHDxDb250ZW50VHlwZT5rX19CYWNraW5nRmllbGQYPFRhbWFuaG8+a19fQmFja2luZ0ZpZWxkGjxJZFlvdVR1YmU+a19fQmFja2luZ0ZpZWxkHjxTdGF0dXNZb3VUdWJlPmtfX0JhY2tpbmdGaWVsZBk8RXhjbHVpZG8+a19fQmFja2luZ0ZpZWxkHTxEYXRhSW5jbHVzYW8+a19fQmFja2luZ0ZpZWxkHjxEYXRhQWx0ZXJhY2FvPmtfX0JhY2tpbmdGaWVsZB48QXJxdWl2b1N0cmVhbT5rX19CYWNraW5nRmllbGQbPFBhdGhGaXNpY28+a19fQmFja2luZ0ZpZWxkAAEBAQABAAAAAwMBCAUDAQ1xU3lzdGVtLk51bGxhYmxlYDFbW1N5c3RlbS5EYXRlVGltZSwgbXNjb3JsaWIsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0QU3lzdGVtLklPLlN0cmVhbQIAAACZAAAABgoAAAAVY29udml0ZV8zNjl4MjA1XzMuanBnBgsAAAAdL3VwbG9hZC9jb252aXRlXzM2OXgyMDVfMy5qcGcGDAAAAAtpbWFnZS9wanBlZwU2MDQ4NApQAGAFi/wA6MsICgoKC2QWAmYPZBYCZg9kFgYCAQ8WAh8BAgEWAgIBD2QWAgIBDw8WCB4EVGV4dAUBMR4PQ29tbWFuZEFyZ3VtZW50BR0vdXBsb2FkL2NvbnZpdGVfMzY5eDIwNV8zLmpwZx4IQ3NzQ2xhc3MFCSBzZWxlY3RlZB4EXyFTQgICZGQCAw8PFgQfAAUvL3VwbG9hZC9jb252aXRlXzM2OXgyMDVfMy5qcGcuMzY5eDIwNS50aHVtYi5heGQeB1Zpc2libGVnZGQCBQ8WAh4Fc3R5bGUFDWRpc3BsYXk6bm9uZTtkAgMPDxYCHgtNaXRvVmVyZGFkZTLgBQABAAAA/////wEAAAAAAAAADAIAAABTUm9jaGUuTXVsaGVyQ29uc2NpZW50ZS5Nb2RlbCwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwFAQAAACpSb2NoZS5NdWxoZXJDb25zY2llbnRlLk1vZGVsLk1pdG9zVmVyZGFkZXMJAAAABmltYWdlbRM8SUQ+a19fQmFja2luZ0ZpZWxkGTxQZXJndW50YT5rX19CYWNraW5nRmllbGQZPElkSW1hZ2VtPmtfX0JhY2tpbmdGaWVsZB08UmV ... (continua)<br />Multiplique por este texto por 6<br />~153 Kb<br />153 Kb - 113 Kb = 40 Kb<br />
  25. 25. Criação de Controllers e Views<br />demonstração<br />
  26. 26. Criação de Rotas<br />demonstração<br />
  27. 27. Referências<br />Site Oficial<br />http://asp.net/mvc<br />Blog do Scott Guthrie (Microsoft)<br />http://weblogs.asp.net/scottgu<br />Blog do Phil Haack (Microsoft)<br />http://haacked.com<br />NerdDinner ASP.NET MVC Tutorial<br />http://shrinkster.com/18m9<br />
  28. 28. Referências<br />MSDN Virtual Lab: Introduction to ASP.NET MVC New!<br />http://go.microsoft.com/?linkid=9631340<br />MSDN Virtual Lab: Advanced ASP.NET MVC New!<br />http://go.microsoft.com/?linkid=9640183<br />MSDN Virtual Lab: Building an Application with ASP.NET MVC New!<br />http://go.microsoft.com/?linkid=9636146<br />NerdDinner ASP.NET MVC Tutorial<br />http://shrinkster.com/18m9<br />
  29. 29. Dúvidas?<br />
  30. 30. Patrocinador desta reunião<br />http://ciclo.pt<br />
  31. 31. Obrigado!<br />Caio Proiete<br />caio.proiete@gmail.com<br />http://caioproiete.com<br />http://twitter.com/caioproiete<br />

×