OOP2 Flashcards
Vad är en delegat?
En delegat refererar till en metod eller en grupp av metoder.
Du kan kalla på metoden genom att anropa delegaten, istället för metoden den
refererar.
En delegat i sig är speciell typ av klass, och deklareras därför vanligtvis
utanför andra klasser.
Vad är bra att veta om delegater?
● Delegater ger oss möjlighet att plugga in ny funktionalitet till existerande
klasser
● Delegater används huvudsakligen till att implementera sk. call-backs och
events
● Delegater kan seriekopplas, då flera metoder kan kallas när delegaten körs
● En delegat bryr sig inte om klassen på objektet den refererar
● Delegater kan också användas för att kalla anonyma metoder eller
lambdas
Vad är Func, Action
Func-delegaten används när du vill definiera en metod som tar in ett eller flera argument och returnerar ett värde
Action-delegaten används när du vill definiera en metod som inte returnerar något värde, utan bara utför en uppgift eller åtgärd
Action är en delegattyp som inte returnerar något värde, medan Func är en delegattyp som returnerar ett värde.
vad är LINQ?
Det är ett språk som är liknande Sql. Men skillnaden är att LINQ är typsäkert och när man kompilerar koden så kan fel upptäckas tidigare. Istället för att skriva Sql-strängar så skriver man LINQ tillsammans med c#. LINQ är även mer flexibelt än Sql.
Vad är en extension methods?
En metod som läggs till i en befintlig klass utan att modifiera orginal-klassen.
Vad är events?
Det är en mer specifik användinng av delegater. Syftet är att en klass kan säga att nu har detta hänt. Så nu kör jag detta eventet. Det är att länka delegater till händelser. Detta för att göra det asymkrot.
Vad är generics? <T></T>
Generics är att man skapar en kodmall som kan användas för att hantera olika datatyper.
T.ex. kan man skapa en List-klass som kan hantera olika datatyper (int, string, objekt etc.) utan att man behöver skapa en separat lista för varje datatyp.
Vad är ORM? Object Relational Mapper
Det är ett sätt att koppla ihop databas med ett programmeringsspråk. Ta tex Entity Framework där vi skapar en databas med hjälp av c#. Detta minskar behovet av att skriva sql-kod och att man får använda sig av objekt istället för tabeller.
Vad är ett API?
Ett API (Application Program Interface) fungerar som en bro mellan exempelvis två system och är ett kontrollerat sätt att överföra information på. För att två system ska kunna kommunicera med varandra. Json använder man sig av.
Entity Framework
Är ett ORM system. Är ett ramverk för databashantering i .NET. Är till för att förenkla arbetet med databaser. Istället för SQL-kod så använder vi c# kod. Man anväder även LINQ i detta.
Vad är DbContext?
Detta är en klass i EF. Detta är kopplingen till en specifik databas.
Vad är en entitet? Entity?
Detta är en rad i en tabell i en databas. En entitet kan mappas till en tabell i databasen. Det går att använda c# klasser till detta.
Har properties som kan användas för att hämta och sätta värden.
Vad är DbSet?
Är en generisk klass som är koppling till databaserna. Är en IEnumerable. Representerar en samling av etentiterer.
Vi kan använda oss av LINQ för att köra våra queries.
public DbSet <Person> Persons {get; set;}</Person>
Vad är code-First?
Code First är en databasdesignmetod där utvecklaren skapar modellen för
databasen genom att skapa klasser och konfigurera relationer mellan dem i
källkoden. Dessa klasser representerar tabellerna och deras fält i databasen.
När du har skapat klasserna och konfigurerat relationerna kan du använda Entity
Framework för att skapa databasen automatiskt
Conventions?
Det handlar om att vi kommit överrens om att vi tex ska skriva databasen på en visst sätt. Tex primarykey och foreignkey.
Data Annotations Attributes?
Attributter sätter man ovanför en klass eller en property. Här kan man bestämma om en string property ska ha ett visst DisplayName. Dvs det som ska vissas på tex hemsidan.
vad är ett protokoll och säg några typer av protokoll
Språk är ett typ av protokoll. EN bestämmelse över hur saker ska ske och i vilken ordning. Ett system som talar om hur två datorer skickar data mellan varandra.
Några typer av protokoll.
TCP/IP
HTTP(s)
HTTP
OSI model?
Du använder detta för att synkronisera olika nätverkstyper. För varje steg så läggs ett lager till. När datan kommer tillbaka så tar vi bort ett lager för varje steg.
Det finns sju olika lager
Physical - Kablar osv. Representerar binär kod.
Data Link - MAC Adress. Styr åtkomst till nätverksmedia och styr dataflödet.
Network - IP address, Identifierar enheter och dirigerar datatrafiken.
Transport - Ser till så att data kommer fram
Session - Inleder, genomför och slutför kommunikationen.
Presentation - Teckenkommandon, format, kryptering
Application - Gjorda för att fungera i nätet.
Klient server exempel?
Ett vanligt exempel på ett klient-serverprogram är en webbserver. En webbserver är en serverprogramvara som väntar på förfrågningar från webbklienter (vanligtvis webbläsare) och skickar tillbaka webbsidor.
Vad är Rest.Api?
REST står för Representational State Transfer.
Enkelt uttryckt: En snabb genväg till att komma åt en
databas eller applikation på webben, enligt bestämda
mönster.
REST bygger till stor del på hur HTTP fungerar och de
metoder som är definierade.
Vad är Dependency Injection?
Dependency Injection är en teknik för att hantera beroenden mellan objekt i en programvaruarkitektur.
Det innebär att objekt som behöver andra objekt för att fungera får dessa objekt injicerade (skickade som argument) istället för att själva skapa eller hitta dem.
Detta gör det möjligt att testa objekten oberoende och att byta ut beroenden utan att ändra källkoden.
Vad är ASP.Net ?
ASP.NET är ett ramverk för utvecklare som vill skapa professionella webbapplikationer med Microsoft-tekniker.
webbläsare skickar förfrågan till webbserver och wwebbservern svarar med en response
serverkontroller, integrerad utvecklingsmiljö (IDE), användarautentisering och -autorisering, sessionshantering, cachning och mycket mer. Det har också stöd för flera programmeringsmodeller, inklusive Web Forms, MVC (Model-View-Controller) och Web Pages.
Vad är en controller?
Tar emot request och skickar tillbaka responses
Controllerns uppgift är att hantera inkommande anrop och besluta hur modellen och vyn ska interagera.
Inom ASP.NET är en controller en klass som ärver från en viss bascontroller och är ansvarig för att hantera anrop från en användare och returnera en lämplig respons.
Fungerar som en mellanhand mellan modellen och vyn.
Action?
En publikmetod i en controller som hanterar en inkommande request.
ActionResult = En ActionResult i ASP.NET är en abstrakt klass som representerar resultatet av en controller action.
Det är den primära returnerade typen från en controller action och den används för att bestämma vilken åtgärd som ska utföras när en användare begär en viss resurs från en webbapplikation.
Scaffolding?
Den skapar en viss klass utefter en mall som du vill ha till ditt api/program. Tänk codegenerator.
vad är middeleware?
Middleware är en komponent i ASP.NET Core som tillhandahåller en funktion som bearbetar HTTP-begäranden och -svar innan de når en controller eller när de returnerar till klienten.
Middleware är en serie komponenter som samverkar med varandra för att hantera begäranden och svar, och kan användas för att genomföra allt från säkerhetskontroller till loggning och korsdomänhantering
Vad är en DTO ?
Data transfer object.
Är ett objekt som bär data mellan processer. En DTO använder sig av inkappsling för att inte vissa en viss data. Tex 4 sista i ditt personnummer osv. Eller vart du bor om det inte ska vara synligt. En modelclass kan ha viss funktion i sig som man inte vill visa/använda sig av
På vilket sätt funkar routingen annorlunda i MVC jämför med WebAPI?
I MVC används den för att matcha begäran med en specifik åtgärd (action) i en kontroller (controller) baserat på URL:en,
I WebAPI används den för att matcha begäran med en specifik API-metod baserat på HTTP-metod och URL.
Vad är MVC?
Model view controller.
Model -
View()-metoden kommer från ASP.NET MVC-ramverket och används för att returnera en vy som ska visas i webbläsaren.
Blazor Server?
Blazor Server är en modell där applikationskoden körs på servern och användargränssnittet uppdateras via en WebSocket-anslutning till klienten.
Detta innebär att klienten inte behöver ladda om sidan för att uppdatera användargränssnittet.
Blazor Server är därför lämplig för applikationer med hög interaktivitet eller med många användare som delar samma data och logik.
Blazor Wasm
Blazor WebAssembly är en modell där hela applikationen distribueras till klienten och körs i webbläsaren.
Detta innebär att användargränssnittet uppdateras direkt på klienten utan att behöva kommunicera med servern.
Blazor WebAssembly är därför lämplig för applikationer med låg interaktivitet eller för att skapa offlineappar.
Http request/response
HTTP står för Hypertext Transfer Protocol och är en protokollstandard som används för att överföra data över webben.
En HTTP-förfrågan (request) är en begäran från en klient (till exempel en webbläsare) till en server för att hämta en resurs,
medan en HTTP-svar (response) är svaret som servern ger tillbaka till klienten efter att ha utfört begäran.
Cookies
Information från en server som sparas på din dator och som sen skickas tillbaka. Skickas genom HTTP och all info genom headers.
Sparar ofta information om dig, inställningar. Kan även spåra dig.
Session management
Håller reda på specifik data. Vad du har stoppat in din shoppingcart osv.
Personalization
Inställningar på en hemsida
Tracking
Sparar det som du har sökt letat efter på olika hemsidor.
Sessions
JSON web tokens
Designmönster. varför/när/vad
Http protocol, headers, body.
stateless?
Datan lagras inte mellan requests. Uppkopplingen bryts efter att vi fått ett response.
JWT
Header, Payload,Signature
Autentisering
Autentisering handlar om att verifiera en persons eller en enhets identitet. Det handlar alltså om att säkerställa att den som försöker få tillgång till en viss resurs verkligen är den hen påstår sig vara
Autentisering innebär att verifiera identiteten hos en användare som försöker få tillgång till en applikation eller en resurs
Auktorisering
Auktorisering handlar alltså om att bestämma vad en viss person eller enhet har tillåtelse att göra, till exempel vilka filer hen har tillgång till eller vilka åtgärder hen kan utföra på ett system.
Auktorisering däremot handlar om att bestämma vilken åtkomst nivå en användare har när de har blivit autentiserade
Förklara interface och varför vi använder det ?
Interface är ett kontrakt som innehåller metoder, egenskaper och händelser som en klass måste implementera. Detta för att kunna uppfylla den specifika funkonaliteten. Det skapar även abstraktion och separation av ansvar. Koden blir även flexibel och man kan göra den mer skalbar.
Abstrakta klasser
:Abstrakta klasser är klasser som inte kan skapas som objekt direkt, utan måste användas som en mall för att skapa nya klasser som implementerar dess funktionalitet.
Serialization och deserialization?
Serialization är när man vill skicka data/överföra och deserialization är när man vill ta emot data.
Tex när vi skickar json data från en klient till en server så måste datan först serialiseras. Då konverterar vi objektet i programvaran till en json-sträng. Vi skickar nu över J-Sonsträngen(objeket) där vi deserializtion för att återskapa objektet från json-strängen.
Vad är lambda?
Syftet är att skapa korta, enkla funktioner som kan användas inne i andra metoder eller sammanhang.
säg att vi har en lista med nummer. Här kan vi använda oss av lamda om vi vill se vilka nummer som är lika med eller större än 5.
var list = new List<int> {1,2,3,4,5,6,7,8}
var filteredList = list.where(x => x > 5 );</int>
Vad är asyncron programmering? Förklara Task, await
Asynkron är koden man skrivit kan köras i bakgrunden utan att blockera tex huvudtråden eller användargränsnittet. Detta gör det möjligt att svara på användarens interaktioner medan uppgifterna körs i bakgrunden.
Task är en form av asynkroitet där man retunerer an viss task av en viss typ,.
await är att man väntar på resultatet av en asynkron operation utan att blockera tråd/användargränssnitt. Tråden väntar på operationen ska slutföras för att sedan fortsätta att utföra annan kod.
MVC, Blazor server, blazor wasm. Förklara när man ska använda vad och vad som är skillnanden.
Mvc kan vi använda när vi till exempel vill bygga en ehandel. Modellen användee vi för produkterna och varukorgen. En kontroller som hanterar logiken för att visa och hantera varukorgen. Och en view för att visa produkterna och varukorgsbeställningen.
Blazor wasm kan vi använda när vi vill skapa tex ett spel som kan flytta en gubbe och plocka upp poäng.
Blazor server kan vi använda för att tex skapa ett chattprogram. Här använder vi oss signalr som gör det möjligt att skicka och ta emot meddelanden. Så istället för request response så gör signalR detta samtidigt.