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