ASPNETcore Flashcards

1
Q

Cosa è una Web APP API?

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Cosa è una Web APP UI?

A

Fornisce informazioni in maniera dinamica

  • Produce HTML e in esse sono contenuti dei dati ottenuti da un database.
  • I PRINCIPALI UTENTI SONO LE PERSONE
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Che differenza c’è tra HTTP e HTTPS?

A

HTTP

  • Linguaggio di testo che consente la comunicazione tramite internet.

  1. Grazie ad esso, Il client (browser) manda una request al server (dove risiede il sito web)
  2. 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..).​
  3. 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Cosa è L’architettura REST?

A

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..)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

A cosa serve il file di progetto .csproject?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Come avviene la compilazione del progetto?

A
  1. MSBuild legge le istruzioni dal .csproj
  2. MSBuild legge i file di codice sorgente (c#, js, ecc) e li passa a Roslyn
  3. Roslyn prende i file del codice sorgente e li trasforma in assembly .dll ovvero in linguaggio macchina
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Dopo la compilazione di output escono due cartelle OBJ e BINcosa sono?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Cosa è il Generic Host e quali sono i suoi componenti?

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Come funziona il Generic Host?

A
  1. Viene effettuata la richiesta HTTP da www.miosito.it
  2. La richiesta arriva al Generic host che la passa al web server contenuto al suo interno.
  3. Il web server, trasforma la richiesta in un oggetto di tipo HTTPCONTEXT e la passa al codice dell’ applicazione.
  4. Il codice dell’ applicazione decide che cosa passare indietro con l’oggetto httpContext al web server che poi lo`mandera al client.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Come è organizzato il codice dell’ applicazione e Cosa sono i Middleware?

A

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

  1. il codice dell’ applicazione è organizzato su middleware messe in serie uno di seguito all’altro.
  2. L’oggetto HTTPCONTEXT che entrerà nell codice dell’applicazione passerà dentro al primo middleware,dove farà alcune cose, poi a quello successivo cosi via.
  3. Subito dopo l’ultimo middleware viene elaborata la RESPONSE che ripassera tornando indietro nei vari middleware.
  4. la response entrando di nuovo nei middleware, viene valutata,perchè potrebbero fare qualche operazione con essa.
  5. 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Cosa significa il pattern MVC e come funziona?

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Cosa è un ORM?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Func <t1 t2 … tresult> </t1>questa lambda expression cosa vuol dire?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Action T1, T2, … cosa indica nella lambda expression?

A
  • Action è usato quando la lambda expression NON deve restituire nulla (equivalente ai tipi void)
  • T1, T2, … sono i parametri di tipo che devono passare.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Come possiamo ottimizzare le prestazioni di EntityFramework?​

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quando utilizzare il blocco using?

A
  • Il blocco using è necessario quando abbiamo oggetti che implementano IDisposable e che quindi possiedono il metodo DIspose(). (SQLConnection, MemoryStream)
  • Il Garbage Collector di Common Language Runtime recupera la memoria usata dagli oggetti gestiti, MA i tipi che usano risorse non gestite implementano l’ IDisposable (interfaccia per consentire il rimborso delle risorse necessarie per queste risorse non gestite).
17
Q

Quando eseguire operazioni in maniera asincrona?

cioè alla possibilità di eseguire attività in background che non interferiscono con il flusso di elaborazione principale.

A

Operazioni Asincrone quando dobbiamo ricorrere a periferiche di I/O

Le periferiche di I/O (input/output) sono tutti gli strumenti che permettono di scambiare le informazioni tra il computer e il mondo esterno. (rete, disco)

  • Collegarsi e inviare query a un database ( usa la rete o il disco)
  • Leggere un file di testo (usa il disco)
  • inviare una richiesta a un webservice (usa la rete)
  • inviare un’email (usa la rete)

operazioni NON Asincrone quando l’operazione fa usa della CPU

operazioni che non danno vantaggi nell’ssere eseguite in maniera asincrona

  • calcolare le cifre del PI greco (cpu)
  • ordinare gli oggetti di una lista (cpu)
  • ridimensionare un immagine (cpu)
18
Q

parlami del DbSet

A
  • Implementa il pattern repository
  • Consente tutte le operazioni CRUD (Create, Read, Update e Delete)
    • db.Courses.Add(course);
    • db.Courses.Remove(course);
    • db.Courses.Update(course);
19
Q

Cosa è un Web Service?

A

Un Web service è un COMPONENTE APPLICATIVO in grado di mettersi al servizio di un applicazione comunicando su di una medesima rete tramite il protocollo HTTP

  • Un Web service consente quindi alle applicazioni che vi si collegano di usufruire delle funzioni che mette a disposizione.​
  • Web service che chiameremo “cambiavalute”. Il nostro Web service fornisce le seguenti operazioni: cambio euro/dollaro e viceversa.
  • Questo Web service potrebbe essere offerto da un istituto bancario ed una nostra applicazione potrebbe utilizzarlo per effettuare le operazioni di cambio senza doversi preoccupare dei tassi in vigore al momento dell’operazione.