Alla inlägg
Alla bloggposter
-
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.jsonoch*.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.108till10.0.204istä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.jsonfö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.
-
📖 Sammanfattning av boken: Someday is Today
Här kommer en sammanfattning av boken Someday Is Today: 22 Simple, Actionable Ways to Propel Your Creative Life – June 7, 2022 by Matthew Dicks (Author), som jag fick ett tips från youtube.com - Gabe Bult - I’m begging you to manage your time. Bra tips för hur man kan hitta kreativ tid i vardagen.
-
🧠 Google I/O - Software engineering at the tipping point
Föreläsaren Adam Bender beskriver hur mjukvaruutveckling befinner sig vid en avgörande brytpunkt där AI, ökande komplexitet och snabbt växande ekosystem förändrar hur vi bygger system. Här är en tydlig sammanfattning av videon “Software engineering at the tipping point” från Google I/O 2026, youtube.com.
-
HISTORISKT: Nu skrotas den orättvisa dansbandsmomsen! 💃🕺
Vilken dag det var igår! Den 20 maj 2026 kommer gå till historien som dagen då dansbands-Sverige äntligen fick upprättelse. Efter decennier av kamp, demonstrationer och politiska turer klubbades beslutet igenom i riksdagen: Dansbandsmomsen sänks från 25 % till 6 %!
-
🚀 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 packagebort. 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?
-
Skapa animerade ikoner med AI
Idag är det väldigt enkelt att skapa snygga animerade ikoner. att bara fråga en AI om att skapa “SVG ikoner, som är animerade i flat ui design”, ger ett snyggt resultat..
-
Hur många unika värden har vi i en lista?
För att räkna ut hur många unika värden som finns i en lista med hjälp av LINQ i C#, så kan du använda metoden
.Distinct(). -
CSS-klasser vs. data-testid: Så väljer du rätt selectors för robusta E2E-tester
CSS-klasser är till för styling, inte för testning – dags att vi använder
data-testid
-
Git branch rensning
Här kommer ett enkelt sätt hur man kan rensa upp bland git-brancher lokalt på sin dator, via PowerShell:
-
Installera Podman Desktop i Windows 11
Podman desktop är en kontainer-lösning (containers) där man kan köra sina olika kontainrar genom (lite som docker vad jag förstått det som…). Det används för att sätta upp t.ex. lokal utvecklings-miljö där man inte kan ha alla servrar och databaser och liknande publicerade och åtkomliga från sin lokala maskin.
-
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.
-
Bilderbok: Astrid och isslottens värld
Hur jag skapade “Astrid och Isslottens värld” – en AI-genererad bilderbok med bara HTML, JavaScript och CSS
När min tjejs systerbarn upptäckte hur roligt det är att läsa AI-genererade bilderböcker, fick jag en idé: varför inte skapa en egen interaktiv bok direkt på webben? Resultatet blev “Astrid och Isslottens värld” (https://www.pownas.se/chat-gpt/bilderbok/astrid-och-isslottens-varld), en sagobok där både text och bilder är skapade av AI – och allt byggt med bara en HTML-, en JavaScript- och en CSS-fil (se: Pownas - GitHub).
-
Rich text editor - document.execCommand()
Hur jag skapade en Rich Text Editor med webbläsarens inbyggda API:er och Copilot
Att bygga en egen rich-text-editor är ett klassiskt webbutvecklarprojekt – men idag är det enklare än någonsin tack vare moderna webbläsar-API:er och smart hjälp från GitHub Copilot.
-
dotnet list package
En liten påminnelse om
dotnet list packagesom ä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 runochaspire configblir utvecklingsflödet snabbare och smidigare. -
Dagens `arbetsplats` i Lund
Kategorier: DagbokIdag blev det en trevlig “arbetsplats” en hotell morgon på ett hotell i Lund:
-
📘 Varför har ingen berättat detta för mig? — En bok som förändrade mitt sätt att tänka
Kategorier: livsstil“Varför har ingen berättat detta för mig?” av Dr. Julie Smith är en bok som verkligen lever upp till sin titel. Det är inte bara en samling psykologiska insikter, utan en handbok för hur man tar hand om sitt mentala välmående — för alla, inte bara de som mår dåligt.
-
Google imagen 4 public preview
Kategorier: AiIdag ramlade jag via Feber över Googles nya imagen 4 preview.
-
Kvinnor speglar den energi och närvaro män ger
Hittade en fin artikel på facebook. Tror mycket av det stämmer. 😊
-
GitHub Agent-mode underlättar vardagsprogrammeringen - Kodglädje in på småtimmarna
De senaste veckorna har jag upptäckt något som förändrat mitt sätt att programmera. GitHub Copilot Agent-Mode har inte bara förvandlat min produktivitet – den har återväckt min passion för kodning.
-
GitHub Agent mode inspiration i helgen
En inspirerande helg med GitHub Agent Mode
I fredags fick jag en gnista av inspiration från GitHub Agent Mode. Det ledde till att jag spenderade helgen med att testa denna spännande funktion på min privata kodbas, och det hela skedde via min iPad.
-
Massor av ny kunskap och inspiration efter DevSum 2025
En inspirerande konferensupplevelse
Mellan onsdag och fredag deltog jag i min första utvecklare konferens: DevSum 2025, en konferens fylld av kunskap, inspiration och spännande möten. Evenemanget samlade utvecklare, teknologientusiaster och branschledare för att diskutera det senaste inom teknik och programmering. Det blev tre intensiva dagar med både djupdykningar i tekniska ämnen och insikter om framtidens möjligheter.
-
Jämföra 2st listor med varandra
Här är ett enkelt sätt att jämföra två listor med varandra för att se vilka objekt som saknas i ena eller andra listan:
-
SEO - Search Engine Optimizing - Metadata taggar
Info om vilka meta-data taggar man kan använda på en webbsida.
-
Använda HTML attribut data-* och dess DOM dataset.property
Info om hur man kan använda HTML attributen
data-*och dess DOM propertydataset.property. -
JavaScript formatering av datum med toLocaleDateString()
Info om datum och tid, formatering i JavaScript (för t.ex. Api användning):
-
Webbaserade verktyg för .NET!
Det senaste året har varit väldigt mycket pluggande och lära känna .NET och React.
-
Första december - ny Advent of Code!
Idag öppnades julkalendern! Både “Advent of code” (https://adventofcode.com/2020) , samt min goda Johan Bülow Lakrids kalender! 😋
-
Skriva snygga kod-kommentarer
Ett tips när man kodar i Visual Studio, är att skriva enkla och snygga kommentarer så att andra, och speciellt du själv, kan förstå koden vid senare tillfällen.
-
Första steget mot Youtube stjärna 🌟
Kategorier: YoutubeIdag tog jag och gjorde det. Jag skapade min egna Youtube kanal: “Pownas lär dig”.
-
Nya sidan blev dock inte min egen...
Det blev visst inte min egna hemsida jag började koda om. Då jag de senaste tre dagarna har suttit och byggt om min pappas hemsida istället.
-
Youtube kanal
Kategorier: YoutubeJag har nu tankar på att bygga upp min Youtube kanal till något som faktiskt går att använda av andra.
-
Blog... Web log
Kategorier: HemsidanBlog… Web log. Eller kanske: We Blog? 🤔
Med andra ord är det inte säkert att jag kommer skriva så aktivt i denna Webb-loggboken (även kallad: Web Blogg boken, beroende på hur den särskrivs). Men ska försöka ge lite olika kodexempel då och då i min resa mot att bli en riktig utvecklare.
-
Dags för en ny era för hemsidan
Idag händer det… Det är äntligen dags för en ny era. Jag ska ge mig på att koda om min hemsida ifrån grunden.
Hemsidan har inte fått någon remake sedan den publicerades i december 2014, så nu är det äntligen dags!