SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Noutăți în ASP.NET MVC 2 Gabriel Enea (developer la maxcode.nl, co-fondator al serviciului joobs.ro) CodeCamp de iarnă la Iași  20 februarie 2010 @ Codecamp.ro
Agendă MVC, Noutăţi ASP.NET MVC 2, Exemple
MVC
Despre ASP.NET MVC Februarie 2007 Scott Guthrie (Corporate Vice President in the Microsoft Developer Division) OPEN SOURCE! Nu este/nu înlocuiește ASP.NET WebForms! EXTENSIBIL, TESTABIL, FLEXIBIL Friendly URLs (Url Routing) Stadiul curent: ASP.NET MVC 2 RC 2 Suport IDE: Visual Studio 2008 SP 1 / Visual Studio 2010 (inclus) Dezvoltat peste: .NET Framework 3.5
ASP.NET Framework astăzi…
HELLO WORLD DEMO
ASP.NET MVC - Execuție http://domain.ro/sayhello Domain Controller (acțiune) Request Model View Response Model
Ce-i nou în ASP.NET MVC 2? Html.RenderAction Areas Templates Model Validation Asynchronous Controllers
Html.RenderAction Îmbunătățește implementareapattern-uluiMVC permițând apelul unei acțiuni dintr-un VIEW, rezultatul fiind afișat direct în VIEW.
Html.RenderAction Html.RenderPartial ,[object Object],Html.RenderAction ,[object Object],(nou în ASP.NET MVC 2)
Html.RenderAction DEMO
Areas Partiționează o aplicație mare în secțiuni (care pot fi dezvoltate independent) reducând complexitatea aplicației. AreaRegistration.RegisterAllAreas()
Areas DEMO
Templates Asociază tipurilor de date simple (int, string, ..) sau complexe (clase…) template-uri pentru vizualizarea sau editarea lor.
Templates Metode pentru vizualizare Html.Display() Html.DisplayFor() Html.DisplayForModel() Metode pentru editare Html.Editor() Html.EditorFor() Html.EditorForModel()
Templates class ModelMetadata {…} ConvertEmptyStringToNull, DataTypeName , Description, DisplayFormatString, DisplayName, EditFormatString, HideSurroundingHtml, IsComplexType, IsNullableValueType, IsReadOnly, IsRequired, NullDisplayText, ShortDisplayName, ShowForDisplay, ShowForEdit, SimpleDisplayText, TemplateHint, Watermark
Templates Influențează metadata modelului [HiddenInput](System.Web.Mvc) [UIHint],[DataType],[ScaffoldColumn], [DisplayFormat] (System.ComponentModel.DataAnnotations) [ReadOnly],[DisplayName] (System.ComponentModel)
Templates Moduri de specificare / Ordine de selectare [UIHint(“MyPropertyTemplate”)] DataTypeName (ModelMetadata) Numele tip-ului de date (String, DateTime, Person, …) Dacă obiectul nu e complex -> String Dacă e complex și e interfață -> Object Dacă e complex și nu e interfață se caută în ierarhie un tip valid (direct) Html.DisplayForModel(“MyTemplate.ascx”);
Templates DEMO
Validation      Security?
Model Validation Oferă suport îmbunătățit și extensibil de validare la nivel de server și client. Input Validation a devenit Model Validation.
Model Validation Providers ,[object Object]
Enterprise Library Validation Block
Castle Validator
XML
…,[object Object]
Range
RegularExpression
StringLength

Weitere ähnliche Inhalte

Ähnlich wie Noutăţi în ASP.NET MVC 2

3173119 aplicatii-de-retea
3173119 aplicatii-de-retea3173119 aplicatii-de-retea
3173119 aplicatii-de-reteasorinm10
 
OSOM - Performance in testing by jmeter
OSOM - Performance in testing by jmeterOSOM - Performance in testing by jmeter
OSOM - Performance in testing by jmeterMarcela Oniga
 
Javascript ajax tutorial
Javascript ajax tutorialJavascript ajax tutorial
Javascript ajax tutorialVlad Posea
 
Java enterprise real world
Java enterprise real worldJava enterprise real world
Java enterprise real worlddpmihai
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Webdanielnastase
 
Vista4Devs Academic Tour Romani
Vista4Devs Academic Tour RomaniVista4Devs Academic Tour Romani
Vista4Devs Academic Tour RomaniAndrei Iacob
 
Asp.net mvc bad practices
Asp.net mvc   bad practicesAsp.net mvc   bad practices
Asp.net mvc bad practicesRadu Vunvulea
 
2010.11.27 - ITSpark ofline meeting #1, Cluj - Service Manager 2010 Introduct...
2010.11.27 - ITSpark ofline meeting #1, Cluj - Service Manager 2010 Introduct...2010.11.27 - ITSpark ofline meeting #1, Cluj - Service Manager 2010 Introduct...
2010.11.27 - ITSpark ofline meeting #1, Cluj - Service Manager 2010 Introduct...ITSpark Community
 
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Codecamp Romania
 
Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5Sabin Buraga
 
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
 
Cloud computing caracteristici si modele v greavu
Cloud computing caracteristici si modele   v greavuCloud computing caracteristici si modele   v greavu
Cloud computing caracteristici si modele v greavuMalairauValeria
 
Programare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatiiProgramare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatiiSabin Buraga
 
Google Web Toolkit - tutorial
Google Web Toolkit - tutorialGoogle Web Toolkit - tutorial
Google Web Toolkit - tutorialanisoarasava
 
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6Sabin Buraga
 

Ähnlich wie Noutăţi în ASP.NET MVC 2 (20)

3173119 aplicatii-de-retea
3173119 aplicatii-de-retea3173119 aplicatii-de-retea
3173119 aplicatii-de-retea
 
Asp.Net Mvc
Asp.Net MvcAsp.Net Mvc
Asp.Net Mvc
 
HTML5? HTML5!
HTML5? HTML5!HTML5? HTML5!
HTML5? HTML5!
 
OSOM - Performance in testing by jmeter
OSOM - Performance in testing by jmeterOSOM - Performance in testing by jmeter
OSOM - Performance in testing by jmeter
 
Javascript ajax tutorial
Javascript ajax tutorialJavascript ajax tutorial
Javascript ajax tutorial
 
Java enterprise real world
Java enterprise real worldJava enterprise real world
Java enterprise real world
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Web
 
Vista4Devs Academic Tour Romani
Vista4Devs Academic Tour RomaniVista4Devs Academic Tour Romani
Vista4Devs Academic Tour Romani
 
FlexDoc
FlexDocFlexDoc
FlexDoc
 
Asp.net mvc bad practices
Asp.net mvc   bad practicesAsp.net mvc   bad practices
Asp.net mvc bad practices
 
2010.11.27 - ITSpark ofline meeting #1, Cluj - Service Manager 2010 Introduct...
2010.11.27 - ITSpark ofline meeting #1, Cluj - Service Manager 2010 Introduct...2010.11.27 - ITSpark ofline meeting #1, Cluj - Service Manager 2010 Introduct...
2010.11.27 - ITSpark ofline meeting #1, Cluj - Service Manager 2010 Introduct...
 
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
 
Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5
 
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
 
Music Finder
Music FinderMusic Finder
Music Finder
 
Cloud computing caracteristici si modele v greavu
Cloud computing caracteristici si modele   v greavuCloud computing caracteristici si modele   v greavu
Cloud computing caracteristici si modele v greavu
 
Programare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatiiProgramare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatii
 
Google Web Toolkit - tutorial
Google Web Toolkit - tutorialGoogle Web Toolkit - tutorial
Google Web Toolkit - tutorial
 
Prezentare IOC - etapa 3
Prezentare IOC - etapa 3Prezentare IOC - etapa 3
Prezentare IOC - etapa 3
 
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
 

Mehr von Enea Gabriel

Moving forward with ASP.NET Core
Moving forward with ASP.NET CoreMoving forward with ASP.NET Core
Moving forward with ASP.NET CoreEnea Gabriel
 
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014Enea Gabriel
 
Improving the availability of your website
Improving the availability of your websiteImproving the availability of your website
Improving the availability of your websiteEnea Gabriel
 
Applying EF Code First at Your Job
Applying EF Code First at Your JobApplying EF Code First at Your Job
Applying EF Code First at Your JobEnea Gabriel
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2Enea Gabriel
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstElements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstEnea Gabriel
 

Mehr von Enea Gabriel (7)

Moving forward with ASP.NET Core
Moving forward with ASP.NET CoreMoving forward with ASP.NET Core
Moving forward with ASP.NET Core
 
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014
 
Improving the availability of your website
Improving the availability of your websiteImproving the availability of your website
Improving the availability of your website
 
Applying EF Code First at Your Job
Applying EF Code First at Your JobApplying EF Code First at Your Job
Applying EF Code First at Your Job
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstElements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code First
 
FII absolvent!
FII absolvent!FII absolvent!
FII absolvent!
 

Noutăţi în ASP.NET MVC 2

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

Hinweis der Redaktion

  1. 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;
  2. 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.
  3. Reprezinta una dintre cele mai importante functionalitati oferite de ASP.NET MVC 2, similar lui Dynamic Data din ASP.NET WebForms.
  4. Generateaza UI
  5. Metadata despre model.
  6. Server side validation Client side validation (enable with jQuery)