.NET

Inlägg om .NET plattformen, ramverk och verktyg.

Få koll på din kod: En guide till OpenTelemetry, Traces och Spans i .NET 10

I moderna, distribuerade system räcker det sällan med traditionell felloggning. När ett anrop från en användare studsar genom en API-gateway, två mikrotjänster och en databas, och något går fel – hur vet du var flaskhalsen eller kraschen uppstod?

Svaret är Observability (observerbarhet), och branschstandarden för detta är OpenTelemetry (OTel). I den här guiden ska vi bryta ner de centrala koncepten Traces och Spans, och titta på hur vi implementerar dem i .NET 10.

.NET Framework 4.8 eller .NET 10? Arkitekturvalet fram till 2032

Det finns ett klassiskt ordspråk inom IT-världen: “Om det fungerar, rör det inte.” Men när vi pratar om publika webbtjänster och interna API:er som förväntas rulla stabilt, säkert och prestandalätt fram till år 2032, så håller inte det gamla tänket längre.

Står du inför valet att låta dina applikationer ligga kvar på det beprövade .NET Framework 4.8 eller att migrera till det moderna .NET 10? Det korta svaret är att det finns en inbyggd paradox mellan målet att minimera livscykelhantering (LCM) och målet att ha ett modernt, säkert system.

Här bryter vi ner varför steget till .NET 10 är helt rätt väg att gå – särskilt om du kör i en lokal on-prem-miljö med både Windows-servrar och containers.

.NET-versionsförvirring? Så styr `global.json` och `*.runtimeconfig.json`

Har du någon gång kliat dig i huvudet när pipelinen kraschar för att en .NET SDK saknas, eller funderat på om din app faktiskt kommer att starta på produktionsservern efter den senaste säkerhetspatchen?

Du är inte ensam. .NET-världen är full av versionsnummer: 10.0.106, 10.0.301, 10.0.108. Men sanningen är att .NET har ett väldigt smart (och ibland missförstått) system för att hålla isär byggtid och körtid.

Allt kokar ner till två filer: global.json och *.runtimeconfig.json. Låt oss reda ut vem som gör vad!

Förstå .NET SDK-versioner: Vad är skillnaden på 10.0.108, 10.0.204 och 10.0.300?

Har du någon gång tittat på versionsnumret för en .NET SDK och undrat varför det hoppar från 10.0.108 till 10.0.204 istället för att följa vanlig semantisk versionshantering (SemVer)?

Det är lätt att tro att det bara är slumpmässiga siffror, men sanningen är att de tre sista siffrorna i en .NET SDK-version döljer viktig information. Genom att förstå hur Microsoft paketerar sina utvecklingsverktyg kan du både säkra dina applikationer och förhindra att dina CI/CD-pipelines plötsligt går röda.

I det här inlägget reder vi ut begreppet Feature Bands och hur du bäst konfigurerar din global.json för en stabil och säker utvecklingsmiljö.

DevSum 2026 – Dag 2: AI-dissonans, produktivitet utan backloggar och pragmatisk testning

Om den första dagen på DevSum handlade mycket om djupgående kodstrukturer och .NET-specifika verktyg, lyfte dag två blicken mot de större och ibland mer obekväma sanningarna i vår bransch. Det blev en dag fylld av produktkritik, välbehövliga sanningar om hur vi spenderar vår tid och mycket handfasta strategier för att skriva tester som faktiskt gör nytta.

Här är min sammanfattning av de mest tankeväckande sessionerna från dag två!

DevSum 2026 – Dag 1: Från olympiskt mindset till .NET Aspire och modernisering

Att kliva in på Kistamässan för årets upplaga av DevSum är alltid fyllt av förväntan. Det är en av de bästa platserna för oss utvecklare och arkitekter att tanka ny inspiration, diskutera utmaningar med kollegor i branschen och djupdyka i de senaste teknikerna. Årets schema gjorde mig inte besviken – det blev en intensiv resa som spände över allt från mental styrka och teamkultur till djupgående arkitekturmönster och avancerad testning i .NET.

Här är mina viktigaste lärdomar och reflektioner från en riktigt intressant dag!

Är det dags att lämna .NET Framework för .NET 10?

Sitter er organisation fortfarande med system byggda på det klassiska .NET Framework (t.ex. version 4.8)? Ni är inte ensamma. Det har varit en otroligt stabil plattform som har tjänat företag väl i över ett decennium. Men tekniklandskapet har förändrats…

Historien om .NET 11 – En tjuvtitt på framtidens Previews

Detta är ett exklusivt bonusinlägg i min bloggserie "Historien om .NET". Efter att ha nått hela vägen fram till dagens nutid med .NET 10 igår, kan vi inte låta bli att vända blicken mot horisonten. Just nu pågår utvecklingen för fullt av .NET 11 och C# 15. I den här posten går vi igenom vad Microsoft hittills har släppt i sina tidiga Previews och vad vi kan förvänta oss av nästa stora plattformssteg.

Historien om .NET 10 – Storskalig kontroll och modern arkitektur

Detta är det sjunde inlägget i min bloggserie om “Historien om .NET”. Idag har vi nått fram till den absoluta nutiden och kliver in i november 2025 då .NET 10 och C# 14 gjorde sin storslagna entré. Som en efterlängtad LTS-release (Long Term Support) cementerade den plattformens mognad och gav mjukvaruarkitekter verktygen som krävs för att tygla storskaliga mikrotjänststrukturer och monorepos med järnhand.

Historien om .NET 9 – AI-åldern och nästa generations caching

Detta är sjätte inlägget i min bloggserie om “Historien om .NET”. Idag kliver vi in i november 2024 då .NET 9 och C# 13 släpptes lös. Som en funktionsrik STS-version (Standard-Term Support) tog Microsoft plattformen rakt in i AI-eran, samtidigt som de revolutionerade hur vi hanterar distribuerad data med det nya HybridCache-systemet. Fokus på smartare trådsäkerhet, molnoptimering och efterlängtad kodsyntax.

Historien om .NET 8 – Den fulländade Cloud Native-plattformen

Detta är femte inlägget i min bloggserie om “Historien om .NET”. Idag spolar vi fram till november 2023 då .NET 8 och C# 12 dundrade in på scenen. Som en stabil LTS-release (Long Term Support) knöt den ihop säcken för Microsofts vision om en modern, plattformsoberoende miljö och introducerade funktioner som gjorde plattformen redo för framtidens molnarkitekturer och AI. Fokus på “Cloud Native”, fullfjädrad Blazor och efterlängtad kodsyntax.

Historien om .NET 7 – Fokuserad på extrem prestanda och innovation

Detta är fjärde inlägget i min bloggserie om “Historien om .NET”. Idag tar vi steget in i november 2022 då .NET 7 och C# 11 släpptes. Även om det var en STS-version (Short Term Support), blev det en av de mest innovationsrika releaserna där Microsoft banade väg för molnbaserad mikroprestanda med Native AOT och inbyggda Enterprise-verktyg.

Historien om .NET 6 – Den mogna LTS-versionen

Detta är tredje inlägget i min blogg serie om “Historien om .NET”. Här går vi in på nyheternba i moderna .NET6.0 och C# 10, som släpptes noveber 2021. En enorm prestandabomb till LTS-version som revolutionerade webbutvecklingen genom introduktionen av Minimala API:er.

Historien om .NET 5 – Startskottet för den moderna eran

Detta är andra inlägget i min blogg serie om “Historien om .NET”. Vi hoppar dock över de tidigaste skedena av .NET Framework och .NET Core, de kan du läsa om i första bloggposten. Istället så hoppar vi rakt in i den moderna .NET5.0 och C# 9. Det var här den moderna dotNET (.NET) äntligen sammanfogade allt sedan november 2020.

Historien bakom det moderna .NET: Från arv till revolution

Jag tänkte börja en liten blogg serie, om historian bakom det moderna dotNET (.NET). Vad var det som hände när man gick från den gamla “legacy” .NET Framework v1-v4 till en sväng förbi .NET Core v1-v3, vidare med den moderna .NET5 som sedan inkrementerat ett nummer varje år i november, till dagens .NET10. Där vi har landat idag (sedan 2025-11).

🔐 Säkra din Software Supply Chain: Så automatiserar du SBOM med Microsoft Sbom Tool och CycloneDX

I en tid där cyberattacker allt oftare riktas mot mjukvarukedjan (Software Supply Chain) har begreppet SBOM (Software Bill of Materials) gått från att vara ett “bra att ha” till ett absolut krav. Att veta exakt vilka komponenter, öppna källkodspaket och beroenden din applikation består av är grundbulten i modern applikationssäkerhet.

Bygg en egen blixtsnabb (och gratis) SBOM- och Sårbarhetsscanner för .NET

I dagens landskap av “Supply Chain Security” är kraven på kontroll över tredjepartsberoenden högre än någonsin. Att veta exakt vilka paket dina applikationer använder – och om de innehåller kända säkerhetshål – är inte längre valfritt. Många företag betalar dyra licenser för tredjepartstjänster och API:er för att lösa detta.

🚀 Framtidssäkra din kodbas

Från flera röriga .NET 5-8 C#-projekt till en modern .NET 10-arkitektur.

Från legacy till framtid: Låt Windows Servers livscykel bli språngbrädan till .NET 10

Att hålla koll på livscykeln för sina servrar är en klassisk IT-utmaning. Windows Server styrs av Microsofts Fixed Lifecycle Policy, vilket innebär 10 års total support innan systemet når sitt End of Life (EOL) och kranen för säkerhetsuppdateringar stängs helt.

NuGet eller NoGet: En policy för hantering av paketberoenden i .NET-projekt

Inom modern .NET-utveckling är lösningen ofta ett dotnet add package bort. Det är fantastiskt för produktiviteten, men varje ny dependency är också ett långsiktigt åtagande.

Så frågan är inte “NuGet eller NoGet” som ett svartvitt val, utan hur vi gör medvetna val.

ASP.NET Core 2.3 deprecieras – planera migration innan 2027-04-13

ASP.NET Core utvecklades som den moderna, öppna och plattformsoberoende efterföljaren till klassisk ASP.NET. Nu är det dags att agera för team som fortfarande använder ASP.NET Core 2.3.

Så här skapade jag påskspelet **Liggi 🐤** på en enda dag

Det var lördagen den 4 april 2026 – dagen innan påskdagen – och vi hade besök hemma. Jag lade märke till hur min sambos systerdotter mest satt klistrad vid sin surfplatta, och då slog det mig plötsligt: varför inte kanalisera den där skärmtiden till något unikt? Varför inte bygga ett eget, litet påskspel till henne direkt på webben?

Installera IIS Hanteraren i Windows 11

Här kommer en liten guide över hur man kan aktivera och installera IIS fjärr hanteraren via Windows 11.

.NET 10 – är nu live!

Nu är äntligen .NET 10 här – släppt och live! 🎉 11 november 2025 släppte Microsoft den senaste LTS-versionen: .NET 10. Det här är en stor milstolpe för plattformen – en stabil, långsiktigt stödd bas för företag och projekt som vill ligga i framkant vad gäller prestanda, säkerhet och produktiv utvecklarupplevelse.

Så byggde jag appen Privatekonomi

– från idé till komplett privatekonomi-app i .NET

Jag har länge velat ha ett verktyg som ger mig verklig kontroll över min privatekonomi – något som är snabbt, privat, körs lokalt eller i mitt eget moln och samtidigt är roligt att använda. Det blev startskottet för Privatekonomi: en Blazor Server-applikation med .NET 9, MudBlazor och .NET Aspire som orkestrerar alla tjänster. I den här bloggposten berättar jag hur jag byggde systemet på 1,5 vecka med GitHub copilot, vilka designval jag gjort och visar en massa skärmbilder.

dotnet list package

En liten påminnelse om dotnet list package som är ett enkelt kommando man kan köra för att kolla om man är på senaste NuGet-paket versioner, är då att använda sig av:

Aspire v9.4.0 – nu med CLI och AI-stöd

Den 29 juli 2025 släpptes .NET Aspire 9.4 – den största uppdateringen hittills! Nu finns ett fristående CLI-verktyg (native AOT) som gör det enkelt att skapa, köra och konfigurera dina appar direkt från terminalen. Med kommandon som aspire new, aspire add, aspire run och aspire config blir utvecklingsflödet snabbare och smidigare.

Webbaserade verktyg för .NET!

Det senaste året har varit väldigt mycket pluggande och lära känna .NET och React.

Tillbaka till startsidan