Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introdução ao ASP .NET MVC - C. Augusto Proiete

Introdução ao ASP .NET MVC - C. Augusto Proiete

Apresentação de Introdução ao ASP .NET MVC na primeira reunião presencial da comunidade NetPonto, por C. Augusto Proiete.

Comunidade NetPonto

August 15, 2009
Tweet

More Decks by Comunidade NetPonto

Other Decks in Programming

Transcript

  1. Caio Proiete +9 anos de experiência profissional em TI Consultor

    da Novabase Formador da Ciclo Microsoft MVP, MCT http://caioproiete.net
  2. 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
  3. 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
  4. 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
  5. ASP .NET MVC: Características • Total controlo do HTML gerado

    • Total controlo das URLs (Clean URLs) • Permite automatizar testes na interface gráfica com facilidade • Extremamente extensível
  6. ASP .NET MVC: URLs simplificadas • No ASP .NET WebForms:

    • /Produtos.aspx?Categoria={dF7504E0-4F80- 1173-9A0C-0305482C3301} • No ASP .NET MVC: –/Produtos/Livros
  7. 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
  8. 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)
  9. OK, mas o que é esse MVC? • MVC =

    Model-View-Controller • É um padrão de arquitectura aplicacional, design pattern • Permite separar as responsabilidades em uma aplicação
  10. Separar responsabilidades? • Sim. Por exemplo, a apresentação dos dados

    para o utilizador deve ser responsabilidade de uma parte “X” da aplicação. • Já a parte de obter os dados da base de dados, responsabilidade de uma parte “Y” da aplicação
  11. Funcionamento do ASP .NET MVC Request ViewData Controller View A

    View cria uma representação visual desses dados
  12. Funcionamento do ASP .NET MVC Request ViewData Controller Response View

    E essa representação é enviada de volta para o navegador
  13. WebForms: Vantagens • Desenvolvimento rápido (RAD) • Controlos que “trabalham”

    por você • Conceito semelhante a desenvolver para Windows Forms. Aproveita conhecimento prévio
  14. WebForms: Desvantagens • Pouco controlo sobre o HTML gerado •

    Muito difícil para automatizar testes nas páginas • Abstração do funcionamento real das aplicações web (PostBacks, ViewState), que pode induzir a erros com facilidade
  15. ~113 Kb só de ViewState (!) /wEPDwULLTE3NDAyNzI0MzMPZBYCZg9kFgICAw9kFgYCAw8PFgIeCEltYWdlVXJsBSsvdXBsb2FkL0FuYU1hcmlhQnJhZ2EuanBnLjM0MHgzNDAudGh1bWIuYXhkZGQCBQ9kFgYCBQ8WAh4LXyFJdGVtQ291bnQC/////w9 kAgcPZBYCZg9kFgJmD2QWAgIBD2QWAgIVDxAPFgIeC18hRGF0YUJvdW5kZ2QPFhsCAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsWGxAFBEFjcmUFAkFDZxAFB0FsYWdvYXMFAkFMZxAFCEFtYXpvbmFzB QJBTWcQBQZBbWFww6EFAkFQZxAFBUJhaGlhBQJCQWcQBQZDZWFyw6EFAkNFZxAFEERpc3RyaXRvIEZlZGVyYWwFAkRGZxAFD0VzcMOtcml0byBTYW50bwUCRVNnEAUGR29pw6FzBQJHT2cQBQlNYXJhbmjDo28FAk1BZxAFDE1pbmFzIEdlcmFpcw UCTUdnEAUSTWF0byBHcm9zc28gZG8gU3VsBQJNU2cQBQtNYXRvIEdyb3NzbwUCTVRnEAUFUGFyw6EFAlBBZxAFCFBhcmHDrWJhBQJQQmcQBQpQZXJuYW1idWNvBQJQRWcQBQZQaWF1w60FAlBJZxAFB1BhcmFuw6EFAlBSZxAFDlJpbyBkZSBKYW

    5laXJvBQJSSmcQBRNSaW8gR3JhbmRlIGRvIE5vcnRlBQJSTmcQBQlSb25kw7RuaWEFAlJPZxAFB1JvcmFpbWEFAlJSZxAFEVJpbyBHcmFuZGUgZG8gU3VsBQJSU2cQBQ5TYW50YSBDYXRhcmluYQUCU0NnEAUHU2VyZ2lwZQUCU0VnEAUKU8OjbyBQYXV sbwUCU1BnEAUJVG9jYW50aW5zBQJUT2cWAWZkAgkPZBYCZg9kFgQCFQ8QDxYCHwJnZA8WGwIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgITAhQCFQIWAhcCGAIZAhoCGxYbEAUEQWNyZQUCQUNnEAUHQWxhZ29hcwUCQUxnE AUIQW1hem9uYXMFAkFNZxAFBkFtYXDDoQUCQVBnEAUFQmFoaWEFAkJBZxAFBkNlYXLDoQUCQ0VnEAUQRGlzdHJpdG8gRmVkZXJhbAUCREZnEAUPRXNww61yaXRvIFNhbnRvBQJFU2cQBQZHb2nDoXMFAkdPZxAFCU1hcmFuaMOjbwUCTUFnEAU MTWluYXMgR2VyYWlzBQJNR2cQBRJNYXRvIEdyb3NzbyBkbyBTdWwFAk1TZxAFC01hdG8gR3Jvc3NvBQJNVGcQBQVQYXLDoQUCUEFnEAUIUGFyYcOtYmEFAlBCZxAFClBlcm5hbWJ1Y28FAlBFZxAFBlBpYXXDrQUCUElnEAUHUGFyYW7DoQUCUFJnEAU OUmlvIGRlIEphbmVpcm8FAlJKZxAFE1JpbyBHcmFuZGUgZG8gTm9ydGUFAlJOZxAFCVJvbmTDtG5pYQUCUk9nEAUHUm9yYWltYQUCUlJnEAURUmlvIEdyYW5kZSBkbyBTdWwFAlJTZxAFDlNhbnRhIENhdGFyaW5hBQJTQ2cQBQdTZXJnaXBlBQJTRWcQ BQpTw6NvIFBhdWxvBQJTUGcQBQlUb2NhbnRpbnMFAlRPZxYBZmQCHw8QDxYCHwJnZA8WAwIBAgICAxYDEAUIRMO6dmlkYXMFATFnEAUGT3V0cm9zBQEzZxAFClN1Z2VzdMO1ZXMFATJnFgFmZAIHD2QWEAIBDw8WAh4IRGVzdGFxdWUytxQAAQ AAAP////8BAAAAAAAAAAwCAAAAU1JvY2hlLk11bGhlckNvbnNjaWVudGUuTW9kZWwsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBQEAAAAuUm9jaGUuTXVsaGVyQ 29uc2NpZW50ZS5Nb2RlbC5EZXN0YXF1ZVByaW5jaXBhbAgAAAAJYW5pbWFjb2VzEzxJRD5rX19CYWNraW5nRmllbGQXPFRpdHVsbz5rX19CYWNraW5nRmllbGQWPFRleHRvPmtfX0JhY2tpbmdGaWVsZBQ8VXJsPmtfX 0JhY2tpbmdGaWVsZBc8U3RhdHVzPmtfX0JhY2tpbmdGaWVsZB08RGF0YUluY2x1c2FvPmtfX0JhY2tpbmdGaWVsZB48RGF0YUFsdGVyYWNhbz5rX19CYWNraW5nRmllbGQDAAEBAQAAA7ABU3lzdGVtLkNvbGxlY3Rpb 25zLkdlbmVyaWMuTGlzdGAxW1tSb2NoZS5NdWxoZXJDb25zY2llbnRlLk1vZGVsLkRlc3RhcXVlUHJpbmNpcGFsQW5pbWFjYW8sIFJvY2hlLk11bGhlckNvbnNjaWVudGUuTW9kZWwsIFZlcnNpb249MS4wLjAuMCwgQ3Vs dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0IAw0PU3lzdGVtLkRhdGVUaW1lAgAAAAkDAAAACQAAAAYEAAAAMVBhcnRpY2lwZSBkYSBDYW1pbmhhZGEgZGFzIFZpdG9yaW9zYXMgZW0gTWFjZWnDsy EGBQAAAPUCPHA+Tm8gcHImb2FjdXRlO3hpbW8gZG9taW5nbywgZGlhIDE2IGRlIGFnb3N0bywgbXVsaGVyZXMgcXVlIHBhc3NhcmFtIHBlbG8gYyZhY2lyYztuY2VyIGRlIG1hbWEsIGFjb21wYW5oYWRhcyBwb3IgYW1pZ2 9zLCBmYW1pbGlhcmVzLCBwcm9maXNzaW9uYWlzIGRlIHNhJnVhY3V0ZTtkZSBlIHNpbXBhdGl6YW50ZXMgZGEgbHV0YSB2JmF0aWxkZTtvIHNhaXIgJmFncmF2ZTtzIHJ1YXMgZGUgTWFjZWkmb2FjdXRlOyBwYXJhIGNlb GVicmFyIHN1YSB2aXQmb2FjdXRlO3JpYS4gUGFydGljaXBlLCBlbnRyZSBuZXNzYSBsdXRhISBBIGNvbmNlbnRyYSZjY2VkaWw7JmF0aWxkZTtvIHNlciZhYWN1dGU7IGEgcGFydGlyIGRhcyA5aCBubyBBbGFnb2luaGEuPC9w PgYGAAAASWh0dHA6Ly93d3cubXVsaGVyY29uc2NpZW50ZS5jb20uYnIvTm9zc2EtTHV0YS9ub3RpY2lhcy1kZXRhbGhlLmFzcHg/aWQ9MzRBAEKeJvvnywgIDVBtiPwA6MsIBAMAAACwAVN5c3RlbS5Db2xsZWN0aW9uc y5HZW5lcmljLkxpc3RgMVtbUm9jaGUuTXVsaGVyQ29uc2NpZW50ZS5Nb2RlbC5EZXN0YXF1ZVByaW5jaXBhbEFuaW1hY2FvLCBSb2NoZS5NdWxoZXJDb25zY2llbnRlLk1vZGVsLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1 cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAA4Um9jaGUuTXVsaGVyQ29uc2NpZW50ZS5Nb2RlbC5EZXN0YXF1ZVByaW5jaXBhbEFuaW1hY2FvW10CAA AACAgJBwAAAAEAAAABAAAABwcAAAAAAQAAAAQAAAAENlJvY2hlLk11bGhlckNvbnNjaWVudGUuTW9kZWwuRGVzdGFxdWVQcmluY2lwYWxBbmltYWNhbwIAAAAJCAAAAA0DBQgAAAA2Um9jaGUuTXVsaGVyQ29 uc2NpZW50ZS5Nb2RlbC5EZXN0YXF1ZVByaW5jaXBhbEFuaW1hY2FvCAAAAAhhbmltYWNhbxFkZXN0YXF1ZVByaW5jaXBhbBM8SUQ+a19fQmFja2luZ0ZpZWxkGzxJZEFuaW1hY2FvPmtfX0JhY2tpbmdGaWVsZCQ8SWR EZXN0YXF1ZVByaW5jaXBhbD5rX19CYWNraW5nRmllbGQiPE9yZGVtQXByZXNlbnRhY2FvPmtfX0JhY2tpbmdGaWVsZB08RGF0YUluY2x1c2FvPmtfX0JhY2tpbmdGaWVsZB48RGF0YUFsdGVyYWNhbz5rX19CYWNraW5n RmllbGQEBAAAAAAAAyRSb2NoZS5NdWxoZXJDb25zY2llbnRlLk1vZGVsLkFycXVpdm8CAAAALlJvY2hlLk11bGhlckNvbnNjaWVudGUuTW9kZWwuRGVzdGFxdWVQcmluY2lwYWwCAAAACAgICA1xU3lzdGVtLk51bGxhY mxlYDFbW1N5c3RlbS5EYXRlVGltZSwgbXNjb3JsaWIsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0CAAAACQkAAAAKegAAAJkAAAAJAAAAAQA AAGAFi/wA6MsICgUJAAAAJFJvY2hlLk11bGhlckNvbnNjaWVudGUuTW9kZWwuQXJxdWl2bwwAAAATPElEPmtfX0JhY2tpbmdGaWVsZBU8Tm9tZT5rX19CYWNraW5nRmllbGQVPFBhdGg+a19fQmFja2luZ0ZpZWxkHDx Db250ZW50VHlwZT5rX19CYWNraW5nRmllbGQYPFRhbWFuaG8+a19fQmFja2luZ0ZpZWxkGjxJZFlvdVR1YmU+a19fQmFja2luZ0ZpZWxkHjxTdGF0dXNZb3VUdWJlPmtfX0JhY2tpbmdGaWVsZBk8RXhjbHVpZG8+a19fQ mFja2luZ0ZpZWxkHTxEYXRhSW5jbHVzYW8+a19fQmFja2luZ0ZpZWxkHjxEYXRhQWx0ZXJhY2FvPmtfX0JhY2tpbmdGaWVsZB48QXJxdWl2b1N0cmVhbT5rX19CYWNraW5nRmllbGQbPFBhdGhGaXNpY28+a19fQmFja2l uZ0ZpZWxkAAEBAQABAAAAAwMBCAUDAQ1xU3lzdGVtLk51bGxhYmxlYDFbW1N5c3RlbS5EYXRlVGltZSwgbXNjb3JsaWIsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhN WM1NjE5MzRlMDg5XV0QU3lzdGVtLklPLlN0cmVhbQIAAACZAAAABgoAAAAVY29udml0ZV8zNjl4MjA1XzMuanBnBgsAAAAdL3VwbG9hZC9jb252aXRlXzM2OXgyMDVfMy5qcGcGDAAAAAtpbWFnZS9wanBlZwU2MD Q4NApQAGAFi/wA6MsICgoKC2QWAmYPZBYCZg9kFgYCAQ8WAh8BAgEWAgIBD2QWAgIBDw8WCB4EVGV4dAUBMR4PQ29tbWFuZEFyZ3VtZW50BR0vdXBsb2FkL2NvbnZpdGVfMzY5eDIwNV8zLmpwZx4IQ3NzQ2xhc 3MFCSBzZWxlY3RlZB4EXyFTQgICZGQCAw8PFgQfAAUvL3VwbG9hZC9jb252aXRlXzM2OXgyMDVfMy5qcGcuMzY5eDIwNS50aHVtYi5heGQeB1Zpc2libGVnZGQCBQ8WAh4Fc3R5bGUFDWRpc3BsYXk6bm9uZTtkAgMP DxYCHgtNaXRvVmVyZGFkZTLgBQABAAAA/////wEAAAAAAAAADAIAAABTUm9jaGUuTXVsaGVyQ29uc2NpZW50ZS5Nb2RlbCwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51 bGwFAQAAACpSb2NoZS5NdWxoZXJDb25zY2llbnRlLk1vZGVsLk1pdG9zVmVyZGFkZXMJAAAABmltYWdlbRM8SUQ+a19fQmFja2luZ0ZpZWxkGTxQZXJndW50YT5rX19CYWNraW5nRmllbGQZPElkSW1hZ2VtPmtfX0JhY2 tpbmdGaWVsZB08UmV ... (continua) ~153 Kb 153 Kb - 113 Kb = 40 Kb Multiplique por este texto por 6
  16. 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
  17. 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