Fati Iseni's Avatar

Fati Iseni

@fiseni.com

Software Engineer | Microsoft MVP | .NET https://fiseni.com

1,120
Followers
446
Following
204
Posts
02.08.2023
Joined
Posts Following

Latest posts by Fati Iseni @fiseni.com

Post image

I'm playing with extension properties, and I'm curious why overloading is not allowed. It works just fine for methods.

#csharp #dotnet

24.02.2026 18:53 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
GitHub - fiseni/Pozitron.Extensions.MediatR: A simple library that extends MediatR with various publishing strategies. A simple library that extends MediatR with various publishing strategies. - fiseni/Pozitron.Extensions.MediatR

Published a new version, added support for MediatR v14.0.0
#dotnet @jimmybogard.com
github.com/fiseni/Pozit...

13.12.2025 11:09 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

This was heavily downvoted on reddit :)

17.10.2025 19:44 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

If an argument lasts more than 5 minutes, then both sides are wrong.

14.10.2025 22:06 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
GitHub - SimonCropp/Excelsior: Excelsior is a Excel spreadsheet generation library with a distinctive data-driven approach. Excelsior is a Excel spreadsheet generation library with a distinctive data-driven approach. - SimonCropp/Excelsior

I think my data-binding library for creating Excel spreadsheets is almost ready for a 1.0

github.com/SimonCropp/E...

Already using it in anger at work.
Spreadsheet code that would have taken a few hours to build now takes a few minutes.

08.10.2025 23:42 ๐Ÿ‘ 7 ๐Ÿ” 3 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

The diff usually comes from the compiler version. I mean, nothing wrong to always target the new tfms or at least recompile the libs. But, I think we overhype this mass NuGet update each year :)

The only true valid reason to update tfms is if we utilize new APIs in BCL.

11.10.2025 20:44 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

That's what I expected, almost identical.

If your lib doesn't have dependencies, the effect of targeting the new tfm is negligible (usually none).

11.10.2025 20:21 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

What are the reaults if your lib doesn't target net10 explicitly, but the consumer is using net10 runtime?

11.10.2025 20:14 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0
GitHub - fiseni/NuSeal: A .NET library that helps you protect your NuGet packages with commercial licenses. A .NET library that helps you protect your NuGet packages with commercial licenses. - fiseni/NuSeal

Published v0.4.0

There are breaking changes. The base infrastructure is updated, and the workflow is streamlined.
I don't expect some drastic changes anymore. I think this one will be a good candidate for a stable release.

#dotnet #csharp

github.com/fiseni/NuSeal

05.10.2025 13:55 ๐Ÿ‘ 3 ๐Ÿ” 2 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

In my experience, it produces very inefficient code. Also, no new approaches, no new ideas. Overall, it slows me down.

I'm sure in other areas perhaps is helpful.

28.09.2025 19:43 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

To be honest, this is more obvious to me. It's easy to miss, but not "strange".

The other case was more obscure. The "dead code" contributing to allocations. Much easier to remain unnoticed.

26.09.2025 13:34 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Just a reminder.

Now, I'm seeing this issue everywhere :)

26.09.2025 09:37 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

Lovely ๐Ÿ‘

26.09.2025 09:30 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Ok I see you started working on deterministic packaging. You're like a perpetual machine ๐Ÿ˜…

24.09.2025 10:18 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

cc @kirillosenkov.com

23.09.2025 12:22 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

For #msbuild folks. Is there a way to use arbitrary task name in UsingTask, and specify FQDN of implementation by other means?

Ideally, I wouldn't want to use RoslynCodeTaskFactory and load/instantiate the impl manually. That approach seems flaky.
#dotnet #csharp

23.09.2025 06:42 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
GitHub - fiseni/NuSeal: A .NET library that helps you protect your NuGet packages with commercial licenses. A .NET library that helps you protect your NuGet packages with commercial licenses. - fiseni/NuSeal

Ideally, I'd like to create the snapshots with MS Excel. But I have to figure out reliable deterministic outputs.

Btw, what's your thought on this? I'd love ur feedback here, I'm still refining the idea and open to suggestions.
github.com/fiseni/NuSeal

23.09.2025 06:13 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

Not yet.

I plan to be dual licensed from start. So, I don't think I'll publish anything until I fix all the supporting infrastructure.

23.09.2025 00:05 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

The SpreadCheetah is limited in functionality (also you can't open or append existing files). ClosedXML covers more stuff.

PS. Not announced yet, but for the last 4-5 months I'm working on a new excel lib. I intend to fully implement OpenXML spec. I assume it will take me one more year.

22.09.2025 23:53 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

How comitted are you to ClosedXML? It's a full featured library but not very perf oriented. I mean it's understandable, it exists for a long time, before all the perf focus in .NET

19.09.2025 13:21 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

It's a compile time action, so there is no runtime overhead at all. The perf implications are based on whatever is generated.

Anyhow, I do agree with you. It hurts the "discoverability", the flow might get altered and so on.

10.09.2025 11:18 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I can't say I'm some big proponent of it. But, I observe conflicting statements in the industry.

They prefer declarative code instead of imperative. In the same time hate annotations/attributes.

You can't be more declarative than having annotations. Choose your poison.

10.09.2025 10:32 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

There is a difference though.. these are not about reflection, neither aspect oriented through IL weaving..
These just produce source code, which is debuggable like anything else. It's magic, but not the burried one, hidden under carpet.

10.09.2025 09:25 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

The library is taking shape. Released v0.3
Now there is support for validation mode (error/warning), scope (direct/transitive), and other improvements.

Check it out. I'm keen to hear from library authors and their requirements.

#dotnet #csharp

09.09.2025 10:33 ๐Ÿ‘ 2 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Ok now it makes sense. It seems System.Text.Json is included in the MSBuild runtime that VS uses. Example location c:\Program Files\Microsoft Visual Studio\{Version}\{Edition}\MSBuild\Current\Bin. It contains also System.Buffers, System.Memory, etc.

07.09.2025 15:01 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Strip out unnecessary assemblies in tasks ยท Issue #17 ยท fiseni/NuSeal Let me provide some context first. To publish MSBuild custom tasks as a NuGet package we need to pack the assembly that contains the task along all its dependencies. The convention is to pack these...

I'd love if someone could confirm whether it's safe not to include System.Text.Json and its dependencies. The context is NuGet packages that publish MSBuild tasks.

#dotnet #csharp #msbuild

github.com/fiseni/NuSea...

07.09.2025 13:31 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
GitHub - fiseni/NuSeal: A .NET library that helps you protect your NuGet packages with commercial licenses. A .NET library that helps you protect your NuGet packages with commercial licenses. - fiseni/NuSeal

๐Ÿ“ฆ Announcing NuSeal

A library to protect your NuGet packages with custom licensing!

NuSeal provides the infrastructure for creating and validating licenses. It validates the licenses during build time.
#dotnet #csharp

github.com/fiseni/NuSeal

03.09.2025 16:40 ๐Ÿ‘ 7 ๐Ÿ” 3 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1
Preview
Documentation for lifetime of `SecurityKey` asymmetric algorithms? ยท Issue #1539 ยท AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet In dotnet/runtime there was a report that RSA was not behaving as expected. The issue amounted to using an instance of RSA to RsaSecurityKey, which resulted in the RSA instance being put in InMemor...

I found an issue that was closed. Frankly, I don't understand the rationale here.

github.com/AzureAD/azur...

31.08.2025 18:55 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Post image

Btw, I noticed one peculiar issue. It seems the RSA is cached in RsaSecurityKey. If you re-create a new instance, it will fail during validation. Here is a simple example.

If I disable the CacheSignatureProviders, then works each time. Not sure why is cached, but finding the root cause was tedious.

31.08.2025 18:46 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I'm constructing from scratch. I fixed it.
Sorry for the rant, but I can see how new devs can feel totally confused.

31.08.2025 18:41 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0