O slideshow foi denunciado.

ASP.NET Core - Razor Pages

1

Compartilhar

Carregando em…3
×
1 de 24
1 de 24

ASP.NET Core - Razor Pages

1

Compartilhar

Baixar para ler offline

Descrição

Non stiamo parlando di un ritorno a WebForm ma di un'evoluzione (o meglio) di un'alternativa al pattern MVC. Le Razor Pages possono essere un buon motore per smuovere le migrazioni di vecchie applicazioni, utilizzando un paradigma di pagina (vicino a quello che chi utilizza WebForm già conosce) ma con una visione e pulizia degna delle migliori applicazioni MVC .
Ecco che le Razor Pages si stanno ritagliano il loro spazio, ed in questa sessione cercheremo di affrontare i pro e contro del loro utilizzo, capendone al meglio i casi duso ideali.

Transcrição

  1. 1. saturday 2018 ASP.NET CORE RAZOR PAGES Andrea Dottor @dottor
  2. 2. TROPPI NOMI Web Pages MVC View Pages View Pages (Views without MVC Controllers) Razor Pages
  3. 3. OBBIETTIVI (INIZIALI) https://github.com/aspnet/Mvc/issues/494
  4. 4. OBBIETTIVI Ridurre il numero di cartelle e file all'interno di un progetto  Semplificare la struttura del progetto Avere un modello di sviluppo page-focused Semplificare la migrazione da altre tecnologie verso ASP.NET Core
  5. 5. DAL 2016 COME SONO CAMBIATE LE COSE?
  6. 6. TEMPLATE DI PROGETTO
  7. 7. Razor Pages is the recommended way to build UI for web apps in ASP.NET Core https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages/razor-pages-start?view=aspnetcore-2.1
  8. 8. Controller, view e view-model in un "unico" file  Le action get/post utilizzate dalla view sono nella classe contenuta nel file cs collegato  La classe collegata è "anche" il model della pagina  La classe estende PageModel  E' possibile richiamare action di un controller standard Non è più necessario utilizzare il ViewData/ViewBag per passare parti del model alla view  Tutte le proprietà del file cs sono visibili dalla View Le proprietà marcate con il BindPropertyAttribute sfruttano il meccanismo di Model-Binding, sia per essere popolate che per la validazione RAZOR PAGES
  9. 9. PAGEMODEL
  10. 10. Controller e View possono diventare di difficile gestione in applicazioni di grosse dimensioni L'avere molta logica/complessità in un unico controller si scontra con i principi di Single Responsibility Principle or Open/Closed Principles "PROBLEMATICHE" DI ASP.NET MVC
  11. 11. MVC
  12. 12. RAZOR PAGES
  13. 13. GESTIONE GET E POST OnGet → Quando entro nella pagina OnPost, OnPostAsync → Quando devo gestire il submit di una form OnPost* → Quando devo gestire altre form nella pagina
  14. 14. ROUTING Route basato su convenzioni  L'url replica la struttura di cartelle e file del file-system
  15. 15. VIEWDATA E TEMPDATA Marcare le proprietà della utilizzando il ViewDataAttribute o il TempDataAttribute per far che questi valori siano passati/recuperati nel/dal ViewData e TempData
  16. 16. POSSIBILI RISPOSTE AI GET E POST RedirectToPage è l'equivalente del RedirectToAction di MVC Page per ritornare la pagina corrente Valgono anche le classiche risposte usate in MVC  BadRequest, Content, File, NotFound, …
  17. 17. DEMO
  18. 18. RAZOR CLASS LIBRARY Possibilità di includere e distribuire le RazorPages in Class Library  Permette di includere/pluggare funzionalità nell'applicativo solo referenziando il package che contiene le pagine La Razor Class Library viene sviluppata alla pari di un'Area, quindi con la struttura delle cartelle nel seguente modo:  Areas/<<nome-feature>>/Pages/Pagina.cshtml  Si possono includere anche pagine di layout.  E' possibile utilizzare pagine di layout esterne (se non ne viene specificata una presente all'interno dell'area)
  19. 19. RAZOR CLASS LIBRARY
  20. 20. DEMO
  21. 21. L'80% del codice è condiviso tra MVC e Razor Pages ASP.NET Core permette di utilizzare entrambe le funzionalità nello stesso progetto  Es: Razor Pages per la UI e MVC per le API MVC NON MORIRÀ
  22. 22. CONCLUSIONI
  23. 23. www.dottor.net andrea@dottor.net @dottor Andrea Dottor Microsoft MVP Developer Technologies CONTATTI

Descrição

Non stiamo parlando di un ritorno a WebForm ma di un'evoluzione (o meglio) di un'alternativa al pattern MVC. Le Razor Pages possono essere un buon motore per smuovere le migrazioni di vecchie applicazioni, utilizzando un paradigma di pagina (vicino a quello che chi utilizza WebForm già conosce) ma con una visione e pulizia degna delle migliori applicazioni MVC .
Ecco che le Razor Pages si stanno ritagliano il loro spazio, ed in questa sessione cercheremo di affrontare i pro e contro del loro utilizzo, capendone al meglio i casi duso ideali.

Transcrição

  1. 1. saturday 2018 ASP.NET CORE RAZOR PAGES Andrea Dottor @dottor
  2. 2. TROPPI NOMI Web Pages MVC View Pages View Pages (Views without MVC Controllers) Razor Pages
  3. 3. OBBIETTIVI (INIZIALI) https://github.com/aspnet/Mvc/issues/494
  4. 4. OBBIETTIVI Ridurre il numero di cartelle e file all'interno di un progetto  Semplificare la struttura del progetto Avere un modello di sviluppo page-focused Semplificare la migrazione da altre tecnologie verso ASP.NET Core
  5. 5. DAL 2016 COME SONO CAMBIATE LE COSE?
  6. 6. TEMPLATE DI PROGETTO
  7. 7. Razor Pages is the recommended way to build UI for web apps in ASP.NET Core https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages/razor-pages-start?view=aspnetcore-2.1
  8. 8. Controller, view e view-model in un "unico" file  Le action get/post utilizzate dalla view sono nella classe contenuta nel file cs collegato  La classe collegata è "anche" il model della pagina  La classe estende PageModel  E' possibile richiamare action di un controller standard Non è più necessario utilizzare il ViewData/ViewBag per passare parti del model alla view  Tutte le proprietà del file cs sono visibili dalla View Le proprietà marcate con il BindPropertyAttribute sfruttano il meccanismo di Model-Binding, sia per essere popolate che per la validazione RAZOR PAGES
  9. 9. PAGEMODEL
  10. 10. Controller e View possono diventare di difficile gestione in applicazioni di grosse dimensioni L'avere molta logica/complessità in un unico controller si scontra con i principi di Single Responsibility Principle or Open/Closed Principles "PROBLEMATICHE" DI ASP.NET MVC
  11. 11. MVC
  12. 12. RAZOR PAGES
  13. 13. GESTIONE GET E POST OnGet → Quando entro nella pagina OnPost, OnPostAsync → Quando devo gestire il submit di una form OnPost* → Quando devo gestire altre form nella pagina
  14. 14. ROUTING Route basato su convenzioni  L'url replica la struttura di cartelle e file del file-system
  15. 15. VIEWDATA E TEMPDATA Marcare le proprietà della utilizzando il ViewDataAttribute o il TempDataAttribute per far che questi valori siano passati/recuperati nel/dal ViewData e TempData
  16. 16. POSSIBILI RISPOSTE AI GET E POST RedirectToPage è l'equivalente del RedirectToAction di MVC Page per ritornare la pagina corrente Valgono anche le classiche risposte usate in MVC  BadRequest, Content, File, NotFound, …
  17. 17. DEMO
  18. 18. RAZOR CLASS LIBRARY Possibilità di includere e distribuire le RazorPages in Class Library  Permette di includere/pluggare funzionalità nell'applicativo solo referenziando il package che contiene le pagine La Razor Class Library viene sviluppata alla pari di un'Area, quindi con la struttura delle cartelle nel seguente modo:  Areas/<<nome-feature>>/Pages/Pagina.cshtml  Si possono includere anche pagine di layout.  E' possibile utilizzare pagine di layout esterne (se non ne viene specificata una presente all'interno dell'area)
  19. 19. RAZOR CLASS LIBRARY
  20. 20. DEMO
  21. 21. L'80% del codice è condiviso tra MVC e Razor Pages ASP.NET Core permette di utilizzare entrambe le funzionalità nello stesso progetto  Es: Razor Pages per la UI e MVC per le API MVC NON MORIRÀ
  22. 22. CONCLUSIONI
  23. 23. www.dottor.net andrea@dottor.net @dottor Andrea Dottor Microsoft MVP Developer Technologies CONTATTI

Mais Conteúdo rRelacionado

Audiolivros relacionados

Gratuito durante 30 dias do Scribd

Ver tudo

×