Gå till huvudinnehållet Gå till huvudmenyn

Sammanfattning av NDC-konferensen 2024

Av Linus Ekström Lästid: 4 minuter

NDC-konferensen är en konferens för personer som arbetar med mjukvaruutveckling, och det är något som vi på Epinova ofta deltar i. Denna konferens brukar locka talare i toppklass, och i år var inget undantag. I det här blogginlägget ger vi en översikt över nyheter och övergripande trender.

Artificiell intelligens

Som man kan förvänta sig var AI ett hett ämne med många sessioner om det. Detta område är fortfarande mycket nytt och förändras snabbt. Under sessionen gjordes en omröstning om hur många av deltagarna som faktiskt hade släppt funktionalitet som använde AI i produktionen, och endast 5-10% räckte upp handen.

Flera sessioner diskuterade hur tokenisering av språk fungerar i verkligheten, och det var intressant att förstå hur tokenisering kan skilja sig ganska dramatiskt beroende på inmatningsspråk och det språk som Large Language Model, eller LLM för kort, har tränats mest med. Till exempel har ett norskt team jämfört användning av innehåll på engelska och norska med en öppen AI-språkmodell (mestadels tränad på engelska) och en modell som mestadels tränats på norska, och de såg att tokenisering matchade ord när de hade indata i språkmodellen som LLM tränades i, medan samma modell skulle skapa en mindre uppenbar tokenisering när man arbetade med indata på ett annat språk. Dessutom skulle antalet token som skapas vara mycket högre på mindre bekanta språk. Detta har en direkt effekt på kostnaden för att använda AI-tjänsterna eftersom detta vanligtvis baseras på tokens.

Andra sessioner talade om LLM:s bräcklighet och hur de är mycket känsliga för input. Till exempel kommer uppmaningarna "Skapa en frågesport om [ämne] på svenska" och "Skapa en frågesport på svenska om [ämne]" att ge helt olika resultat.

Det finns också instabilitet i svaren, och även om du är mycket tydlig med din uppmaning kommer du att få konstiga/felaktiga svar då och då. Du måste validera svaret och ha logik för att hantera dessa fall, som att fråga LLM igen. LLM:er kan också returnera tomma svar, så det är viktigt att testa och tillämpa logik för att validera data och hur systemet beter sig.

Data och energi

Hållbarhet var också ett nytt ämne med både dedikerade föredrag om ämnet samt omnämnanden i andra sessioner inklusive keynotes. Det är intressant att höra hur molnleverantörer själva verkar fokusera på energiproduktion i en värld med snabbt ökande behov av detta som drivs av expansionen av AI.

  • Microsoft har anställt personer med kärnkraftsexpertis .
  • Google är ny som kör geotermisk energi för att driva sina datacenter
  • Det fanns sessioner om hur man kan minska utsläppen från en applikation genom att minska energianvändningen, med hjälp av energi som har låga koldioxidutsläpp baserat på tid och plats.
  • Microsoft visade hur förbättrad skalning för Azure Functions gör det enklare att inte behöva förallokera onödiga resurser genom att dynamiskt snabbt ändra resurser som kräver begäran.

Epinova höll nyligen ett seminarium i ämnet och det går att se inspelningen här .

Tillgänglighet

Det fanns några ämnen som rörde tillgänglighet. Även om detta ämne inte är nytt inom mjukvaruutvecklingsbranschen, gör den europeiska tillgänglighetslagen (EAA) som träder i kraft i juni 2025 detta till ett relevant ämne. Här är några höjdpunkter i sessionerna:

  • 15 % av världens befolkning (1,2 miljarder) har en permanent funktionsnedsättning. 13 biljoner dollar disponibel inkomst för dessa människor.
  • CSS-kapslingar ingår nu i CSS. Enligt en av talarna är detta en av de sista anledningarna till att använda en CSS-preprocessor så som SASS/LESS.
  • Massor av stöd för att göra interaktion som tidigare krävde JavaScript är nu inbyggt i HTML och CSS.

Om du vill veta mer om EAA har vi publicerat ett blogginlägg om ämnet.

Microsoft Aspire

Scott Hunter berättade om Microsoft Aspire som lanserades på årets Build-konferens. Microsoft Aspire försöker förenkla processen att bygga molnbaserade applikationer genom att automatiskt ansluta resurser till varandra med tanke på den aktuella miljön, vilket innebär att du inte behöver lägga så mycket tid på att hantera detta själv. Detta gör det mycket enklare att skicka en lokalt utvecklad applikation till molnet. Den innehåller funktioner som Aspire Dashboard för övervakning i realtid, programorkestrering och förkonfigurerade komponenter för motståndskraft och observerbarhet. Stacken stöder sömlös identifiering och distribution av tjänster till miljöer som Azure och Kubernetes.

I Scott Hunters session dag två pratade han också om förbättringar i skalning för Azure-funktioner samt andra förbättringar i utvecklarstöd för dessa för att få dem att fungera mer som webbappar. Nu har du tillgång till saker som ILogger, modelbinding för parametrar med mera. En positiv fördel med dessa förbättringar i skalning är att det är möjligt att tacka nej till det minsta antalet instanser för din funktion som minskar energiförbrukningen, som nämnts tidigare i blogginlägget.

Förbättringar av Entity Framework Core

En session gick igenom förbättringar i de senaste versionerna av Entity Framework Core, med version 8 som släpptes i slutet av förra året. Här är några höjdpunkter:

JSON-kolumn

EF Core har nu stöd för JSON-kolumner, så att du kan lagra och fråga JSON-data direkt i databasen. Den här funktionen är särskilt användbar för program som kräver flexibla datamodeller eller behöver lagra halvstrukturerade data. Med JSON-kolumner kan du effektivt lagra och hämta JSON-objekt, utföra komplexa frågor med hjälp av LINQ och utnyttja den fulla kraften i relationsdatabaser samtidigt som du behåller flexibiliteten i NoSQL-liknande datastrukturer.

Hierarkiskt ID

EF Core introducerar också stöd för hierarkiska ID:n, vilket gör det enklare att modellera och fråga hierarkiska datastrukturer som organisationsscheman, produktkategorier eller kapslade kommentarer. Den här funktionen förenklar hanteringen av trädliknande strukturer i databasen, vilket möjliggör effektivare datahämtning och manipulering. Genom att använda hierarkiska ID:n kan du förbättra prestanda och underhåll för dina program som förlitar sig på kapslade datarelationer.

Många-till-många-relationer

EF Core har nu robust stöd för många-till-många-relationer utan att det krävs en kopplingsentitetsklass. Den här förbättringen förenklar modelleringen av många-till-många-relationer mellan entiteter, till exempel studenter och kurser eller produkter och kategorier. Med den här funktionen kan du direkt definiera många-till-många-relationer i dina entitetsklasser, vilket gör dina datamodeller mer intuitiva och enklare att arbeta med.

Övrigt som vi hört talas om

Azure Logic Apps är en teknik som gör det enkelt att skapa och köra automatiserade arbetsflöden med lite eller ingen kod. Det finns många färdiga appar som du kan använda, till exempel med Teams. Logik-appar är ett alternativ till att använda Power Automate (som bygger på logikappar).  På Epinova har vi använt Logic Apps för att skicka statusaviseringar för lösningar som hostas i Azure till Slack. Du kan läsa en jämförelse mellan dessa två tekniker här.

Naturligtvis skulle det inte finnas någon teknisk konferens utan nya akronymer. En som jag minns är RAG Retrieval-Augmented Generation – en teknik för att förbättra noggrannheten och tillförlitligheten hos generativa AI-modeller. 

Semantisk kernel är ett utvecklingspaket med öppen källkod för att förenkla integreringen av AI-tjänster i dina program.

Det finns förbättringar i Application Insights som gör det möjligt att se potentiella kodoptimeringar baserat på kod som körs i ditt program. Du hittar den under Application Insights -> Prestanda -> Kodoptimeringar. Om du har Copilot kan du till och med ansluta detta direkt till Application Insights för att få ett förslag på koden som ska ändras, vilket gör detta till en mycket effektiv process för att optimera dina program.

Azure Load Testing är ett verktyg för att säkerställa prestanda och tillförlitlighet för dina Azure Functions under olika belastningar. Det gör att du kan simulera scenarier med hög trafik och identifiera potentiella flaskhalsar i ditt program. Den startar flera serverinstanser inom några sekunder och kan övervakas i App Insights Live Metrics.

Vi vill gärna höra vad du tycker om inlägget

Linus Ekström

Linus Ekström

VD | Solution Architect | OMVP

Läs alla blogginlägg av Linus Ekström