Archivi mensili: Marzo 2024

LA DEPENDENCY INJECTION IN ASP.NET CORE

SFRUTTARE LA DEPENDENCY INJECTION DI ASP.NET CORE Iniziamo con un immagine che ci mostra il motore di un automobile, osserva quante piccole parti ci sono. Se gli ingegneri hanno deciso di fare tante piccole componenti è perché ognuna di esse ha un ciclo di vita diverso dalle altre. Prendiamo ad esempio le candele, hanno un ciclo di vita diverso rispetto al motore e i progettisti hanno deciso che tramite un'interfaccia rappresentata dalla filettatura, la candela non deve essere fusa nel motore ma facilmente sostituibile semplicemente svitando la vecchia e alloggiando la nuova. In questa sezione vedremo che anche ASP.NET [...]

Di |2024-03-03T08:47:37+00:00Marzo 3, 2024|0 Commenti

ACCESSO AI DATI CON ADO.NET PARTE UNO

ACCESSO AI DATI CON ADO.NET CREARE UN DATABASE SQLLITE È arrivato il momento di utilizzare un database relazionale, e se usiamo un database è perché vogliamo persistere i dati della nostra applicazione in maniera durevole. Per questo progetto utilizzeremo SQLite che è una tecnologia molto snella, basato su file non richiede l’installazione di alcun prerequisito. Useremo un approccio database-first prima creeremo il database e le tabelle poi ci andremo a collegare con il codice C#. IL DATABASE MYCOURSE.DB Il database deve rimanere privato, nessuno se lo deve scaricare quindi il posto migliore per posizionarlo è in una nuova cartella [...]

Di |2024-03-04T19:50:09+00:00Marzo 4, 2024|0 Commenti

ACCESSO AI DATI CON ADO.NET PARTE DUE

ACCESSO AI DATI CON ADO.NET CARICARE PIU’ TABELLE DI RISULTATI IN UN DATASET Vediamo come sia possibile caricare più DataTable in un DataSet. In questo esempio ne vengono caricati due in quanto due sono le query, ma se ne possono caricare anche più. Questo è il codice: Il codice è stato commentato. PROTEGGERE L’APPLICAZIONE DALLA SQL INJECTION Quando selezioniamo un corso imponendo che l’id ci venga passato, in realtà quel valore fa parte della query string o di un form e l’utente ha facoltà di modificarlo. Supponiamo che ci sia un utente malintenzionato. La realtà è [...]

Di |2024-03-09T04:11:35+00:00Marzo 9, 2024|0 Commenti

ENTITY FRAMEWORK CORE PARTE UNO

ENTITY FRAMEWORK CORE A COSA SERVE UN ORM COME ENTITY FRAMEWORK CORE Nel corso degli anni sono state introdotte nuove tecnologie come gli ORM ed Entity Framework Core è uno di essi. Non sono tecnologie alternative ad ADO.NET ma sono basate su ADO.NET, operando a un livello leggermente più alto. Ci consentono delle agevolazioni, come ad esempio lavorare con un modello ad oggetti, interrogando i nostri dati con query fortemente tipizzate. Gli ORM dato che lavorano ad un livello più alto introducono un piccolo costo di prestazione, se il nostro sito ha migliaia di utenti e non vogliamo introdurre [...]

Di |2024-03-11T19:17:03+00:00Marzo 11, 2024|0 Commenti

ENTITY FRAMEWORK CORE PARTE DUE

ENTITY FRAMEWORK CORE CREARE DELLE QUERY LINQ Linq è l’altra tecnologia che useremo per interrogare il database e ottenere indietro le informazioni sui corsi. Linq non invia query SQL, abbiamo a disposizione dei veri e propri metodi C# che ci consentiranno di selezionare, filtrare, ordinare dei dati. Linq ci permette di interrogare una qualsiasi fonte dati. Vediamo l’interfaccia IEnumerable<T>. Il requisito minimo per usare Linq è che la classe implementi l’accesso sequenziale con IEnumerable<T>. Partiamo con Where, che è un extension Method in grado di filtrare un elenco di elementi [...]

Di |2024-03-14T15:20:53+00:00Marzo 14, 2024|0 Commenti

ENTITY FRAMEWORK CORE PARTE TRE

ENTITY FRAMEWORK CORE MAPPARE LE CLASSI DI ENTITA’ L’approccio Database First non è pienamente supportato da Entity Framework e questo perché il Tool che abbiamo usato è distruttivo. Supponiamo di voler aggiungere una colonna ad una nostra tabella, però vogliamo che la medesima colonna ce la ritroviamo nella corrispettiva classe di entità, se eseguiamo di nuovo il Tool usato in precedenza, tutte le classi di entità verrebbero soprascritte facendoci perdere ogni eventuale modifica apportata. Quindi ATTENZIONE se creiamo una nuova colonna nel database dobbiamo essere noi a mappare manualmente la corrispettiva proprietà nella classe di entità. APPROCCIO CODE FIRST [...]

Di |2024-03-16T22:06:07+00:00Marzo 16, 2024|0 Commenti

LA CONFIGURAZIONE IN ASP.NET CORE MVC

LA CONFIGURAZIONE IN ASP.NET CORE MVC ACCEDERE AI VALORI DI CONFIGURAZIONE CON IL SERVIZIO ICONFIGURATION La configurazione è un servizio che ci consentirà di tenere i parametri di funzionamento dell’applicazione al di fuori del codice C#. Li terremo in un file JSON senza essere costretti a ricompilare l’applicazione dopo una modifica. In questo modo se l’applicazione l’abbiamo venduta a un cliente potrà modificare la configurazione senza conoscere il funzionamento interno. Creiamo un file appsettings.json, l’applicazione è già predisposta a leggere i valori da questo file, ovviamente se presente. Ecco il codice per ottenere la ConnectionString al database. Nota come [...]

Di |2024-03-18T20:51:41+00:00Marzo 18, 2024|0 Commenti

IL LOGGING IN ASP.NET CORE

LOGGING IN ASP.NET CORE MVC USARE IL SERVIZIO DI LOGGING Il servizio di logging che come al solito riceviamo nel costruttore di un nostro componente, ci consente di scrivere una riga di testo con dei parametri quando nella nostra applicazione si verificano degli eventi che reputiamo interessanti. Siamo noi a decidere cosa dove e quando scrivere in questo log, informazioni utili quando l’applicazione verrà messa nel server di produzione. Il servizio di Logging si affida a dei provider per emettere le righe scritte nel log, se il provider supporta il Logging strutturato possiamo filtrare le righe in base ai [...]

Di |2024-03-22T05:11:17+00:00Marzo 22, 2024|0 Commenti

CACHING IN ASP.NET CORE

CACHING IN ASP.NET CORE Come abbiamo visto collegarsi a un database richiede un certo tempo, migliori sono le risorse hardware del server su cui risiede l’applicazione più questo tempo sarà contenuto. Per quanto possa essere potente una macchina, c’è comunque un limite fisico che verrà raggiunto con tanti utenti che utilizzano l’applicazione. Quando si arriva a ciò ci sono diverse soluzioni da mettere in pratica come ad esempio la scalabilità verticale, oppure orizzontale, mettiamo due macchine di modo che entrambe possano servire gli utenti. La soluzione della scalabilità funziona, tuttavia la nostra applicazione richiede maggiori risorse e quindi un [...]

Di |2024-03-24T18:41:19+00:00Marzo 24, 2024|0 Commenti

RICERCA IN ASP.NET CORE

RICERCA IN ASP.NET CORE SFRUTTARE IL MODEL BINDING PER RICEVERE L’INPUT DELL’UTENTE Adesso andremo a vedere una parte molto importante ossia come ricevere l’input dai nostri utenti. Iniziamo a parlare del model binding che è un meccanismo basato su convenzioni, molto semplice e intuitivo da usare che ci consente di raccogliere l’input dell’utente e usarlo nelle Action dei nostri Controller. Come abbiamo detto il model binding si basa su convenzioni, a posto di id potevamo scegliere un altro nome, l’importante è che il nome del template corrisponda al nome del parametro. Facciamo degli esempi. [...]

Di |2024-03-26T20:15:55+00:00Marzo 26, 2024|0 Commenti
Torna in cima