SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
1.
http://netponto.pt<br />1ª Reunião Presencial - 15/08/2009<br />Introdução ao ASP .NET MVCCaio Proiete<br />
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.
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.
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.
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.
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.
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.
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.
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.
O ASP .NET MVC inclui<br />Um novo template de projecto Web<br />
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.
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.
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 />
15.
Funcionamento do ASP .NET MVC<br />Requisição é redireccionada para o Controller<br />Controller<br />Request<br />
16.
Funcionamento do ASP .NET MVC<br />Controller processa e forma um modelo de dados<br />Controller<br />Request<br />
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.
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.
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 />
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.
Um exemplo de como NÃO utilizar ViewState<br />ASP .NET<br />WebForms<br />http://www.mulherconsciente.com.br<br />
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.
Criação de Controllers e Views<br />demonstração<br />
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.
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 />