ASPNETcore Flashcards
Cosa è una Web APP API?
Consente ai tuoi prodotti o servizi di comunicare con altri prodotti o servizi
- Può essere considerata come un contratto tra un fornitore di informazioni e l’utente destinatario di tali dati
- Gli utenti sono altre APPLICAZIONI.
Cosa è una Web APP UI?
Fornisce informazioni in maniera dinamica
- Produce HTML e in esse sono contenuti dei dati ottenuti da un database.
- I PRINCIPALI UTENTI SONO LE PERSONE
Che differenza c’è tra HTTP e HTTPS?
HTTP
- Linguaggio di testo che consente la comunicazione tramite internet.
- Grazie ad esso, Il client (browser) manda una request al server (dove risiede il sito web)
- Una volta che il server ha ricevuto la richiesta, conosce esattamente la risorsa di cui il client ha bisogno (tramite l’URI) e ciò che il client vuole fare con quella risorsa tramite il metodo (GET o POST ecc..).
- Server manda un response al client con la risorsa se la trova nel body(HTML o JSON) e lo status
HTTPS
- è uguale all’ HTTP solo che la comunicazione tra client e server è CRITTOGRAFATA per non intercettare la comunicazione
Cosa è L’architettura REST?
Il funzionamento prevede una struttura degli URL ben definita che identifica univocamente una risorsa o un insieme di risorse
- Usa HTTP per gestire i dati remoti con l’utilizzo dei metodi specifici (GET,POST ecc..)
A cosa serve il file di progetto .csproject?
- Serve a dare alla piattaforma di build istruzioni su come deve essere pubblicata e complilata la nostra app.
- contiene attività specifiche che il compilatore dovrà svolgere.
Come avviene la compilazione del progetto?
- MSBuild legge le istruzioni dal .csproj
- MSBuild legge i file di codice sorgente (c#, js, ecc) e li passa a Roslyn
- Roslyn prende i file del codice sorgente e li trasforma in assembly .dll ovvero in linguaggio macchina
Dopo la compilazione di output escono due cartelle OBJ e BINcosa sono?
- OBJ: Directory Temporanea in cui il compilatore inserisce dei file intermedi, dei semi lavorati che serviranno per produrre il vero output.
- BIN: Troveremo alcuni file tra cui l’assembly dll che contiene tutto il codice c# compilato
Cosa è il Generic Host e quali sono i suoi componenti?
Generic HOST
- Il Generic host ha al suo interno possiamo attaccarci componenti esterni com ad esempio un Web Server
WEB SERVER
- I web server gestiscono le richieste HTTP, le trasforma un pò e le rappresenta con un oggetto che si chiama HTTP Context.
LOGGIN
- Loggin si trova all’ interno del web host e ha lo scopo di produrre messaggi diagnostici all’interno della console.
CONFIGURAZIONE
- Configurazione si trova all’interno della web host e ha lo scopo di inviare dei prarametri di funzionamento della nostra applicazione.
Come funziona il Generic Host?
- Viene effettuata la richiesta HTTP da www.miosito.it
- La richiesta arriva al Generic host che la passa al web server contenuto al suo interno.
- Il web server, trasforma la richiesta in un oggetto di tipo HTTPCONTEXT e la passa al codice dell’ applicazione.
- Il codice dell’ applicazione decide che cosa passare indietro con l’oggetto httpContext al web server che poi lo`mandera al client.
Come è organizzato il codice dell’ applicazione e Cosa sono i Middleware?
I middleware sono componenti software collegati tra loro in cascata di ASP.NET Core
hanno la facoltà di esaminare i dati della richiesta HTTP per reagire di conseguenza
Funzionamento
- il codice dell’ applicazione è organizzato su middleware messe in serie uno di seguito all’altro.
- L’oggetto HTTPCONTEXT che entrerà nell codice dell’applicazione passerà dentro al primo middleware,dove farà alcune cose, poi a quello successivo cosi via.
- Subito dopo l’ultimo middleware viene elaborata la RESPONSE che ripassera tornando indietro nei vari middleware.
- la response entrando di nuovo nei middleware, viene valutata,perchè potrebbero fare qualche operazione con essa.
- una volta passata su tutti i middleware la response torna al webhost e successivamente al client
Middleware
- Un middleware può fare moltissime cose oltre a leggere httpcontext come (accedere al DB, scrivere un file di log, collegarsi ad un web service ecc..)
- Maggiori saranno i middleware, maggiori saranno i tempi di risposta, perchè il percorso della richiesta sarà molto più lungo
- In base all’ambiente development o production possiamo fare a meno di determinati middleware.
- Si trovano nel metodo configure() della classe startup
Cosa significa il pattern MVC e come funziona?
Il pattern MVC promuove la separazione di responsabilità
Model
- Offre servizi applicativi, contiene la logica di business che regola l’accesso ai dati.
Controller
- Riceve l’input della richiesta e coordina la creazione della risposta
- Deve restare snello, quindi NON deve accedere in alcun modo al DB.
- Ottiene i dati dal model inserite nel ViewModel (DTO) e li passa alla view.
- I View model o DTO sono un insieme di proprietà
View
- Ha lo scopo di presentare i dati in HTML
Cosa è un ORM?
- ORM sta per Object Relational Mapper
- Consente l’accesso ai dati situati in database relazionale con un modello ad oggetti.
- nel caso di entity framework i dati possono essere recuperati con linq.
- Vantaggi
- ✓ Migliore disaccoppiamento
- ✓ Lavoriamo con un modello a oggetti
- Svantaggi
- ❌Performance leggermente inferiori
Func <t1 t2 … tresult> </t1>questa lambda expression cosa vuol dire?
- Il tipo Func è usato quando la lambda expression deve restituire un valore.
- TResult indica di che tipo dovrà essere il valore restituito
- T1, T2, …, Indica i parametetri di tipo che la lambda expression deve accettare.
Action T1, T2, … cosa indica nella lambda expression?
- Action è usato quando la lambda expression NON deve restituire nulla (equivalente ai tipi void)
- T1, T2, … sono i parametri di tipo che devono passare.
Come possiamo ottimizzare le prestazioni di EntityFramework?
- Usare l’extension method AsNoTracking() se dobbiamo solo leggere i risultati. Cosi evitiamo che EntityFramework Core si metta a tracciare le modifiche alle entità, che in questo caso sarebbe superfluo.
- Fare il mapping tra entità e viewmodel come un UNICA espressione all’interno dell’extension method SELECT, altrimenti nella query SQL potrebbero essere coinvolti troppi campi, anche quelli che non ci servono.