Archivi mensili: Aprile 2024

ORGANIZZARE LE VIEW IN COMPONENTI

ORGANIZZARE LE VIEW IN COMPONENTI CREARE TAG HELPER PERSONALIZZATI Creare un componente è importante perché così possiamo riutilizzare tale logica nelle View che compongono l’applicazione. Avremo creato un qualcosa che è testabile in isolamento, infatti come vedremo possiamo creare dei test automatici per comprovare il funzionamento di ogni nostro componente. Vediamo come si scrive il Tag Helper contenente la logica delle stelline del rating. Ci sono delle convenzioni da rispettare, il componente chiamandosi RatingTagHelper, nella View Razor il tag sarà rating. Quando l’engine Razor nel codice HTML trova un TagHelper [...]

Di |2024-04-01T04:23:39+00:00Aprile 1, 2024|0 Commenti

VALIDARE E PERSISTERE I DATI PARTE UNO

VALIDARE E PERSISTERE I DATI PROGETTARE UNA TASK-BASED UI Andremo a vedere come si realizza l’inserimento, la modifica e la cancellazione dei dati. Partiamo dal form di inserimento dei corsi, e subito dobbiamo chiederci che dati chiedere all’utente? Se presentiamo tutte insieme le informazioni da inserire, l’utente potrebbe rimanere disorientato con tutta la mole di dati da inserire, allora potremmo spezzare questa mole di dati in Form più piccoli, in modo da far inserire all’utente i dati che servono alla nostra applicazione gradualmente. Dopo l’inserimento del titolo che è forse l’informazione più importante, metteremo a disposizione [...]

Di |2024-04-05T18:52:09+00:00Aprile 5, 2024|0 Commenti

VALIDARE E PERSISTERE I DATI PARTE DUE

VALIDARE E PERSISTERE I DATI INSERIMENTO DI DATI CON ADO.NET Grazie al model binding nel form di inserimento del titolo quello che digita l’utente lo ritroviamo nella classe CourseCreateInputModel nel metodo Create di tipo HTTP POST di CoursesController. Questo è il codice del metodo Insert di ADO.NET. INSERIRE ENTITA’ CON ENTITY FRAMEWORK CORE Anche in questo caso andremo ad inserire un corso con il modello a oggetti a cui siamo abituati. Nel momento in cui vogliamo aggiungere una riga usiamo il metodo Add(…) del DbContext creando una entità Course. Tuttavia, la [...]

Di |2024-04-07T05:56:46+00:00Aprile 7, 2024|0 Commenti

VALIDARE E PERSISTERE I DATI PARTE TRE

VALIDARE E PERSISTERE I DATI VISUALIZZARE E PERSONALIZZARE GLI ERRORI DI VALIDAZIONE La validazione è intesa lato server, questo perché la correttezza dei dati viene verificata non nel Browser ma nell’applicazione ASP.NET Core. Il problema di ciò che abbiamo implementato sino adesso è che se anche la validazione non ha avuto successo, l’utente non viene avvisato in alcun modo. Microsoft ha predisposto dei TagHelper appositi per visualizzare gli errori di validazione. LA VALIDAZIONE LATO CLIENT La validazione lato server è essenziale e non dovremmo mai e poi mai [...]

Di |2024-04-10T20:24:02+00:00Aprile 10, 2024|0 Commenti

PROGETTARE LA FUNZIONALITA’ DI MODIFICA PARTE UNO

PROGETTARE LA FUNZIONALITA’ DI MODIFICA DEI DATI Andiamo a vedere con una slide cosa ci serve per realizzare il form di modifica. Partiamo dalla classe di Input Model. Teniamo separate le responsabilità ed evitiamo la tentazione di utilizzare altre classi. Il nostro input model per la modifica sarà CourseEditInputModel.cs Vediamo una Data Annotation Display che non serve per la validazione ma solo per visualizzare un’etichetta nella UI che faciliterà le traduzioni nei siti multilingue. Nella classe CourseEditInputModel.cs oltre alla Data Annotation Display, vi è un’altra novità. [...]

Di |2024-04-13T06:08:31+00:00Aprile 13, 2024|0 Commenti

PROGETTARE LA FUNZIONALITA’ DI MODIFICA PARTE DUE

PROGETTARE LA FUNZIONALITA' DI MODIFICA INSTALLARE UN EDITOR WYSIWYG Al momento per la descrizione abbiamo usato una normalissima Text Area. Questo potrebbe non andare bene perché se il docente volesse spiegare in maniera esaustiva i contenuti del suo corso non ne avrebbe la possibilità. Sostituiamo la casella di testa con un editor, quindi poter usare sottotitoli, mettere caratteri in grassetto etc. Vedremo che un editor WYSIWYG può anche rappresentare dei rischi per la sicurezza. La Text Area rimarrà all’interno del form, un editor non ha lo scopo di sostituirla, piuttosto di integrarla. L’utente tramite l’editor formatta [...]

Di |2024-04-16T14:32:36+00:00Aprile 16, 2024|0 Commenti

PROGETTARE LA FUNZIONALITA’ DI MODIFICA PARTE TRE

PROGETTARE LA FUNZIONALITA’ DI MODIFICA SALVARE UN FILE CARICATO DALL’UTENTE Vedremo come sia possibile salvare un’ immagine, in modo che sia fruibile a tutti gli utenti dell’applicazione. Per salvare l’immagine ho creato una nuova interfaccia nel servizio infrastrutturale IImagePersister.cs. Ti mostro il codice. Restituisce un Task<string> perché questo servizio infrastrutturale sa in quale posizione persistere l’immagine e come raggiungerla. La classe che implementa l’interfaccia si chiama InsecureImagePersister.cs, e tra poco capirai il perché sia insicura. Il metodo utilizzerà uno Stream di dati, vediamo cosa si intende. A prescindere da dove si trovino i file binari dell’immagine, [...]

Di |2024-04-17T20:01:32+00:00Aprile 17, 2024|0 Commenti

TECNICHE PER LAVORARE CON I DATI PARTE UNO

Durante la fase di Refactoring abbiamo definito due nuovi metodi nel servizio infrastrutturale IDatabaseAccessor.cs che ti mostro con una immagine, prima però voglio illustrarti brevemente quali saranno gli argomenti di questo post. Parleremo del problema della concorrenza, ossia quando due utenti cercano di modificare contemporaneamente le stesse informazioni, e vedremo che ci sono due approcci per affrontare il problema, la concorrenza pessimistica e la concorrenza ottimistica. In questo progetto utilizzeremo il secondo approccio.  I metodi in questione sono QueryScalarAsync<T> e CommandAsync, questi metodi che fanno parte della fase di progettazione ora vanno implementati nella classe SqliteDatabaseAccessor.cs. [...]

Di |2024-04-23T03:47:31+00:00Aprile 23, 2024|0 Commenti

TECNICHE PER LAVORARE CON I DATI PARTE DUE

TECNICHE PER LAVORARE CON I DATI CREARE LA PRIMA MIGRATIONS CON EFCORE Quando ci chiedono di implementare una nuova funzionalità, capita sovente la necessità di aggiungere nuove colonne al database. Abbiamo visto che esistono due approcci, il primo Database-First consiste nel collegarsi al database ed eseguire gli script necessari per aggiungere una nuova colonna in una tabella. Utilizzando l’approccio Code-First prima si modifica il codice dell’applicazione poi con il meccanismo delle Migrations di EFCore si apportano le modifiche al database. Vediamo come creare la prima Migrations. Sotto la cartella Migrations puoi [...]

Di |2024-04-27T08:19:19+00:00Aprile 27, 2024|0 Commenti

AUTENTICAZIONE E AUTORIZZAZIONE PARTE UNO

ASP.NET CORE AUTENTICAZIONE E AUTORIZZAZIONE COMPRENDERE LE FASI DI AUTENTICAZIONE E AUTORIZZAZIONE Autenticazione e autorizzazione sono parti cruciali per la maggior parte delle applicazioni web, prendiamo ad esempio i contenuti delle lezioni, essi non devono essere mostrati a chiunque, ma solo a un sottoinsieme di utenti, ossia coloro che il corso lo hanno acquistato. Cosi pure la modifica che dovrà essere prerogativa solo di chi ha creato il corso. Iniziamo dall’autenticazione. Supponiamo che si vada a votare, quindi ci rechiamo al seggio elettorale. Lo scrutatore non ci lascia votare subito, ma prima vuole accertarsi della nostra identità. Per farlo [...]

Di |2024-05-03T10:43:48+00:00Aprile 28, 2024|0 Commenti
Torna in cima