Noutăţi în ASP.NET MVC 2

2,210 views
2,150 views

Published on

Prezintă noutăţile din ASP.NET MVC 2: areas, model validation și suportul pentru template-uri. Sesiune susţinută în cadrul evenimentului CodeCamp de iarnă la Iaşi, 20 februarie 2010.

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

  • Be the first to like this

No Downloads
Views
Total views
2,210
On SlideShare
0
From Embeds
0
Number of Embeds
480
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Model View Controller este un pattern arhitectural important in lumeaprogramatorilor de multi ani, utilizatpentruseparareaaplicatiei in 3 aspecteprincipale:Modelul: un set de clase care descriudatele cu care lucreazaaplicatia, regulile de business, cum sunt manipulate sisalvatedatele;View: reprezintainterfatautilizator a aplicatiei;Controller: reprezinta un set de clase care intretincomunicareadintreutilizatorsi flow-ulaplicatieisieste specific logiciiaplicatiei;
  • You need to specify namespaces when registering routes if you have duplicate controller names. The AreaRegistrationContext will automatically include a namespace value when registering routes in a child area. The namespace is the same namespace as the type used to register routes.
  • Reprezinta una dintre cele mai importante functionalitati oferite de ASP.NET MVC 2, similar lui Dynamic Data din ASP.NET WebForms.
  • Generateaza UI
  • Metadata despre model.
  • Server side validation Client side validation (enable with jQuery)
  • Noutăţi în ASP.NET MVC 2

    1. 1. Noutăți în ASP.NET MVC 2<br />Gabriel Enea<br />(developer la maxcode.nl, co-fondator al serviciului joobs.ro)<br />CodeCamp de iarnă la Iași <br />20 februarie 2010 @ Codecamp.ro<br />
    2. 2. Agendă<br />MVC, Noutăţi ASP.NET MVC 2, Exemple<br />
    3. 3. MVC<br />
    4. 4. Despre ASP.NET MVC<br />Februarie 2007<br />Scott Guthrie (Corporate Vice President in the Microsoft Developer Division)<br />OPEN SOURCE!<br />Nu este/nu înlocuiește ASP.NET WebForms!<br />EXTENSIBIL, TESTABIL, FLEXIBIL<br />Friendly URLs (Url Routing)<br />Stadiul curent: ASP.NET MVC 2 RC 2<br />Suport IDE: Visual Studio 2008 SP 1 / Visual Studio 2010 (inclus)<br />Dezvoltat peste: .NET Framework 3.5<br />
    5. 5. ASP.NET Framework astăzi…<br />
    6. 6. HELLO WORLD<br />DEMO<br />
    7. 7. ASP.NET MVC - Execuție<br />http://domain.ro/sayhello<br />Domain<br />Controller (acțiune)<br />Request<br />Model<br />View<br />Response<br />Model<br />
    8. 8. Ce-i nou în ASP.NET MVC 2?<br />Html.RenderAction<br />Areas<br />Templates<br />Model Validation<br />Asynchronous Controllers<br />
    9. 9. Html.RenderAction<br />Îmbunătățește implementareapattern-uluiMVC permițând apelul unei acțiuni dintr-un VIEW, rezultatul fiind afișat direct în VIEW.<br />
    10. 10. Html.RenderAction<br />Html.RenderPartial<br /><ul><li>generează UI direct</li></ul>Html.RenderAction<br /><ul><li>generează UI prin intermediul unui controller</li></ul>(nou în ASP.NET MVC 2)<br />
    11. 11. Html.RenderAction<br />DEMO<br />
    12. 12. Areas<br />Partiționează o aplicație mare în secțiuni (care pot fi dezvoltate independent) reducând complexitatea aplicației.<br />AreaRegistration.RegisterAllAreas()<br />
    13. 13. Areas<br />DEMO<br />
    14. 14. Templates<br />Asociază tipurilor de date simple (int, string, ..) sau complexe (clase…) template-uri pentru vizualizarea sau editarea lor.<br />
    15. 15. Templates<br />Metode pentru vizualizare<br />Html.Display()<br />Html.DisplayFor()<br />Html.DisplayForModel()<br />Metode pentru editare<br />Html.Editor()<br />Html.EditorFor()<br />Html.EditorForModel()<br />
    16. 16. Templates<br />class ModelMetadata {…}<br />ConvertEmptyStringToNull, DataTypeName , Description, DisplayFormatString, DisplayName, EditFormatString, HideSurroundingHtml, IsComplexType, IsNullableValueType, IsReadOnly, IsRequired, NullDisplayText, ShortDisplayName, ShowForDisplay, ShowForEdit, SimpleDisplayText, TemplateHint, Watermark<br />
    17. 17. Templates<br />Influențează metadata modelului<br />[HiddenInput](System.Web.Mvc)<br />[UIHint],[DataType],[ScaffoldColumn], [DisplayFormat] (System.ComponentModel.DataAnnotations)<br />[ReadOnly],[DisplayName] (System.ComponentModel)<br />
    18. 18. Templates<br />Moduri de specificare / Ordine de selectare<br />[UIHint(“MyPropertyTemplate”)]<br />DataTypeName (ModelMetadata)<br />Numele tip-ului de date (String, DateTime, Person, …)<br />Dacă obiectul nu e complex -> String<br />Dacă e complex și e interfață -> Object<br />Dacă e complex și nu e interfață se caută în ierarhie un tip valid<br />(direct) Html.DisplayForModel(“MyTemplate.ascx”);<br />
    19. 19. Templates<br />DEMO<br />
    20. 20. Validation Security?<br />
    21. 21. Model Validation<br />Oferă suport îmbunătățit și extensibil de validare la nivel de server și client.<br />Input Validation a devenit Model Validation.<br />
    22. 22. Model Validation<br />Providers<br /><ul><li>Data Annotation (implicit)
    23. 23. Enterprise Library Validation Block
    24. 24. Castle Validator
    25. 25. XML
    26. 26. …</li></li></ul><li>Model Validation<br />Data Annotation Validators<br /><ul><li>Required
    27. 27. Range
    28. 28. RegularExpression
    29. 29. StringLength
    30. 30. CustomValidator</li></li></ul><li>Model Validation<br />DEMO<br />
    31. 31. Altenoutăți în ASP.NET MVC 2<br />Securitate<br />HTML Encoding Syntax<br /><%: Model.NewPostByEvilPerson %><br />JsonResult<br />Performanţă<br />AsynchronousController Actions<br />Default Parameters pentru Controller Actions, <br />RESTfull support: HttpPost, HttpGet, HttpDelete, HttpPut, <br />RequiresHttps, Value Providers, Strongly-Typed Html Helpers<br />
    32. 32. Să recapitulăm, noutăți în ASP.NET MVC 2?<br />Html.RenderAction<br />Areas<br />Templates<br />Model Validation<br />Asynchronous Controllers<br />
    33. 33. Noutăți în ASP.NET MVC 2<br />?<br />Vă rugăm să completați formularele de feedback!<br />
    34. 34. Resurse ASP.NET MVC<br />www.asp.net/mvc<br />codeplex.com/aspnet<br />Book: Professional ASP.NET MVC 1.0(Rob Conery, Scott Hanselman, Phil Haack, Scott Guthrie)<br />ASP.NET MVC Training Kit (http://tinyurl.com/yh7muf)<br />Blog-uri: ScottGu, Rob Conery, Brad Wilson şi alţii…<br />
    35. 35. Noutăți în ASP.NET MVC 2<br />Gabriel Enea<br />(developer la maxcode.nl, co-fondator al serviciului joobs.ro)<br />Blog: gabrielenea.blogspot.com<br />Twitter: twitter.com/dotnet18<br />CodeCamp de iarnă la Iași <br />20 februarie 2010 @ Codecamp.ro<br />

    ×