Lars Hanisch
banner
flensrocker.de
Lars Hanisch
@flensrocker.de
Developer & Architect on .NET and Angular.
Playing guitar in a rock band to escape.
Reposted by Lars Hanisch
To celebrate the incredible work and dedication of the open source community this Christmas, I'm delighted to announce a small giveaway!
December 1, 2025 at 11:00 AM
In my home town every year a #regatta with historical sailing ships is taking place. It's called the "Rum Regatta". The winner gets some crap, because they took it too serious. The second ship gets a huge bottle of rum. Noone wants to win.

And sometimes they sell a special kind of #rum.

#Flensburg
November 29, 2025 at 9:42 PM
It's the basic building block for writing higher level injectFoo functions.
Powerfull!
The inject function is the most underrated feature added to Angular in years
November 29, 2025 at 6:36 PM
Reposted by Lars Hanisch
My cartoon for this week’s @theguardian.com books.

Lots more here: www.theguardian.com/books/series/tom-gauld-s-cultural-cartoons
November 29, 2025 at 11:59 AM
Should I feel guilty? 🤣🎶🎸🥳
And it's up! All together now...

🎶 Somebody told me
the user provider
should use an adaptor
to proxy the query
factory builder... 🎶

www.youtube.com/watch?v=p03o...
November 29, 2025 at 6:14 AM
Introduce yourself with 5 concerts you’ve seen.

AC/DC
Van Halen
Prince
Motörhead
ZZ Top
Introduce yourself with 5 concerts you’ve seen.

Nick Cave
Lankum
The Fields of the Nephilim
Africa Black Mambazo
Clayton Blizzard (small venue)
Introduce yourself with 5 concerts you’ve seen.

Lau
The Tiger Lillies
George Clinton
Efterklang
Yeasayer

(I've deliberately left out the big names - Pink Floyd and Prince won't tell you the first thing about me.)
November 27, 2025 at 8:05 PM
I have created my first repository on Codeberg.org some weeks ago.
I really consider becoming a member.
November 27, 2025 at 11:45 AM
Reposted by Lars Hanisch
If "everyone knows .unwrap() is a footgun", then why is it in #rust at all?

Make the user use .unwrap_or, or match, or some other error flow mechanism so they're forced to make a decision.

If they want to "panic!()", make them type it out. Let them ponder their life choices in those 9 chrs.
November 26, 2025 at 2:55 PM
Server Sent Events could be powerfull, if they weren't limited to 6 (six) connections per server (not tab!).
November 24, 2025 at 5:15 PM
Of course the number generator cannot emit an event for foo, only a NumberForFooIssued event, which can be picked up by the FooAggregate to generate the actual FooNumberAssigned event for itself.

Some kind of two phase commit in an event sourcing world...
So store some FooNextNumberExpected event, used by another aggregate (the number generator for this specific field) as a trigger to raise a FooNumberAssigned event and a NumberIncremented event for itself (obviously snapshotted because of many numbers)?

Or are there other patterns in real life? 2/2
November 20, 2025 at 6:42 PM
Consecutive numbers in #EventSourcing:
Say your business needs gapless numbers (think accounting), how would you generate them in ES?

I don't think you can use an extern number generator because of "outside of transaction which stores the events", so there can be gaps. 1/2
November 19, 2025 at 3:36 PM
The time of the year when the sunsets are getting awesome again.
#sunset
November 16, 2025 at 3:37 PM
Learning a lot the last weeks.
How to use #Microsoft #Orleans, setting up #Aspire for #Postgres, #NATS, #Garnet as #Redis, migrations and finally implementing logical replication in Postgres as an outbox for the events back into Orleans streams.
#EventSourcing and #CQRS is fun!
And mermaid diagrams!
codeberg.org
November 15, 2025 at 10:31 PM
👇 This. 👇 I feel the same.

Software is everywhere, in our cars, our heart pacemaker, you name it. Don't we have the responsibility to provide the best what we are able to do?
Whenever you just accept generated code without understanding and checking it, think about "This is fine!".
One thing I started noticing recently is that competent engineers give up their credibility due to AI.

Twice already highly competent engineers I respect sent a PR that turned out to have very subtle issues. These issues would not be possible if a human understood it.
November 15, 2025 at 8:42 PM
Important lessons from maths back in school, which help me almost every day:

not (A or B) = not A and not B
not (A and B) = not A or not B

Know your boolean algebra!
November 15, 2025 at 4:19 PM
I will try to generate some BenchmarkDotNet tests on the weekend, generating 100s of types to see how it affects performance.
Unless someone has already done that... 😎
Hey #dotnet people with knowledge of System.Text.Json!

How many types can a TypeInfoResolverChain contain before it gets useless? Some things like HttpJsonOptions only allow one JsonSerializerOptions and so I have to chain all those generated contexts into one (100s of types).
Is that ok? #json
November 13, 2025 at 9:01 PM
Repost for different timezones...

#dotnet #json
Hey #dotnet people with knowledge of System.Text.Json!

How many types can a TypeInfoResolverChain contain before it gets useless? Some things like HttpJsonOptions only allow one JsonSerializerOptions and so I have to chain all those generated contexts into one (100s of types).
Is that ok? #json
November 13, 2025 at 5:16 PM
Hey #dotnet people with knowledge of System.Text.Json!

How many types can a TypeInfoResolverChain contain before it gets useless? Some things like HttpJsonOptions only allow one JsonSerializerOptions and so I have to chain all those generated contexts into one (100s of types).
Is that ok? #json
November 13, 2025 at 10:24 AM
Reposted by Lars Hanisch
Today we ship Aspire 13! Why 13? It’s a number that’s bigger than 10 but less than 14.

It marks the start of a new chapter for the project. We’re expanding beyond .NET, bringing the same, code-centric experience to Python, JavaScript, and more.

aspire.dev/whats-new/as...

#aspire @aspire.dev
Aspire—Your Stack, Streamlined
Aspire streamlines your development workflow with code-first control, modularity, and observability for distributed applications.
aspire.dev
November 11, 2025 at 5:12 PM
Reposted by Lars Hanisch
Was nervt dich gerade an der Arbeit in der Softwareentwicklung am meisten? Was macht dir am meisten Sorgen?

In Gesprächen mit anderen, die in der Softwareentwicklung arbeiten (Devs, Testers, Scrum Masters, etc.) bekomme ich immer wieder das Gefühl, viele sind unzufrieden mit der aktuellen...
[1/3]
November 10, 2025 at 9:39 AM
Reposted by Lars Hanisch
Hey #dotnet, would you like it if #msbuild (and dotnet build, etc) natively integrated with your CI/CD pipelines for integrated warning/error reporting and such? I've vibe-coded some stuff here that might be interesting to folks: github.com/dotnet/msbui...
November 8, 2025 at 5:20 PM
Reposted by Lars Hanisch
It’s been a while since I wrote a blog post, and this one matters. Ever wished you could run multiple agents in parallel without wrecking your repo? I break down how Git worktrees + Copilot CLI make that happen for me.

👉 blog.itdepends.be/parallel-wor...

#AIAgent #Copilot #GitHub
Parallel Workflows with Git Worktrees and AI Agents - IT depends - blog
How I use git worktrees to run AI agents in parallel while maintaining my chaotic developer workflow.
blog.itdepends.be
November 8, 2025 at 10:28 PM
Even if you are not into event driven systems, you should watch this talk by @noctovis.bsky.social

Thank you, @oskardudycz.bsky.social for making me aware of this.

#EventDriven #EventVersioning

youtu.be/6TCbJtPnits
Change Is Inevitable: Versioning Event-Driven Systems — Laila Bougria
YouTube video by JetBrains
youtu.be
November 8, 2025 at 10:26 AM
Reposted by Lars Hanisch
This talk is a must-watch for people in the Event-Driven space. I saw @noctovis.bsky.social giving it live at this year's DDDEU, and I truly believe that she nailed the versioning topic 👇🙂

www.youtube.com/watch?v=6TCb...
Change Is Inevitable: Versioning Event-Driven Systems — Laila Bougria
YouTube video by JetBrains
www.youtube.com
November 7, 2025 at 7:39 AM
Reposted by Lars Hanisch
I just created a feed for the NG-DE conference!
#ngde
November 6, 2025 at 10:59 AM