Permalänk

Arkitektur .Net projekt

Hej
Jag håller på att lära mig C# och fokuserar just nu på ASP.Net Core. Planerar att studera till systemvetare, men har förstått att .NET är bra att kunna på arbetsmarknaden. Kört några kurser på Pluralsight, senast en .net core MVC kurs. Känner att det börjar bli dags att ta bort stödhjulen och försöka göra ett eget projekt.

Har lite funderingar kring arkitektur, svårt att läsa sig till detta tycker jag.

Min plan är att göra en applikation i .Net Core MVC som visar väder för olika platser. Kanske lägger jag till inloggning i detta, och även på sikt gör en klientversion i React.

Tänkte för övningens skull göra en egen databas som innehåller data för ett antal platser, väderdatan tar jag genom något API eller webscraping.

Har förstått att man inte bör lägga logiken som uppdaterar databasen i själva .Net core applikationen, tex i controller eller så.
Min fundering är var man bör lägga denna typ av logik?

Ser framför mig en hel del olika applikationer som behöver denna typ av jobb, tex Tinder för att matcha medlemmar.

Var brukar man placera detta? Är detta vad man kallar för en "service worker"?

Permalänk
Medlem

Skapa ett "databaslager".
Du kan använda EntityFramework (ORM), och skapa tjänster som du sedan laddar in via dependency injection (singleton).
Dvs. t.ex. skapa upp en mapp "DataRepository" eller "MittDatabasLager" och definiera classer (databastjänster) som sedan laddas in via dependency injection.

När en controller sedan behöver skriva eller läsa mot databasen, injektar du respektive tjänst till controllern.

Beskrivet här: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dep...

Permalänk

Jo men jag vill att databasen ska uppdatera sig själv, säg en gång var 10e minut för att hela tiden innehålla fräsch data. Behöver schemalägga det på något sätt. Är det fortfarande lämpligt att göra vid dependency injection i backend delen?

Permalänk
Medlem
Skrivet av speedbrake88:

Jo men jag vill att databasen ska uppdatera sig själv, säg en gång var 10e minut för att hela tiden innehålla fräsch data. Behöver schemalägga det på något sätt. Är det fortfarande lämpligt att göra vid dependency injection i backend delen?

Okej, men då behöver du någon form av "background task executor". Det mest triviala hade varit t.ex.
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/hos...

Behöver du något mer "sofistikerat" kan du kolla på http://hangfire.io

Om du skall köra din applikation i Azure Cloud, hade jag rekommenderat att kolla på Azure Functions...

Beror helt på dina krav...

Dependency injection finns till för att göra livet enklare genom att du på ett enklare sätt kan åveranvända funktionalitet i din applikation. Det är ett "pattern" för utveckling. Har inte explicit något med någon specifik funktionalitet att göra utan är ett verktyg för all form av utveckling.