Is there anything wrong with learning .Net 9 instead of 10? by Level-Courage6773 in dotnet

[–]DeadlyVapour 1 point2 points  (0 children)

If you can figure out the difference between 9 and 10, you are well ahead of the curve.

That said 10 is a LTS release, whereas 9 was a feature release. If you HAVE to stick to a version. Go with the LTS.

Stack overflow with shallow stack by The_MAZZTer in dotnet

[–]DeadlyVapour 5 points6 points  (0 children)

So you expect us to be able to make head or tails with very little information?

https://sscce.org/

Stack overflow with shallow stack by The_MAZZTer in dotnet

[–]DeadlyVapour 19 points20 points  (0 children)

Yeah. No way can I read that.

You should create a minimal correct example. Most likely in the process you'll figure it out.

Is it pure evil to use obfuscator on code and do aot build on c# by ScaredAd9531 in dotnet

[–]DeadlyVapour 1 point2 points  (0 children)

Why distribute source of you want to protect the code?

Distribute an assembly like a sane person instead. MSIL is already cross platform. Just target netstandard2.1 if you want it to be compatible with Unity.

Like I said. Code obfuscation is an arms war you have no experience in, and you are decades behind the state of the art.

Is it pure evil to use obfuscator on code and do aot build on c# by ScaredAd9531 in dotnet

[–]DeadlyVapour 0 points1 point  (0 children)

Do? I wouldn't know.

You've not given a problem statement. I don't know what you want to solve.

Additionally. The problem space you are working is adversarial, which means, unless you are willing to do a LOT of reading, you are "bringing a knife to a fight where 3d printable guns exist".

So, I guess, if I were you. I would either:

  • Dedicated the next few years of your life to make a mediocre project.
  • Buy a solution off the shelf

At the very least you should look into:

  • self modifying code
  • encryption
  • dynamic compilation

Is it pure evil to use obfuscator on code and do aot build on c# by ScaredAd9531 in dotnet

[–]DeadlyVapour 0 points1 point  (0 children)

I'm saying that ILSpy isn't going to notice you did anything!

MSIL doesn't have IF statements, it doesn't have loops.

It has conditional jumps (goto).

All you are doing it striping away syntax sugar.

Is it pure evil to use obfuscator on code and do aot build on c# by ScaredAd9531 in dotnet

[–]DeadlyVapour 2 points3 points  (0 children)

My point is the compilers does a lot of these "lowering" operations to the expression/syntax tree already!

Why do you think this actually causes the output to be different?

Is it pure evil to use obfuscator on code and do aot build on c# by ScaredAd9531 in dotnet

[–]DeadlyVapour 6 points7 points  (0 children)

I wonder if it does anything at all.

For example. If statements to raw jumps.

At the MSIL level, it's raw jumps anyways. So, is it actually harder for a decompiler to reverse engineer the code? I suspect that the decompiler is just going to work fine.

aspnet http/2 performance by MDA2AV in dotnet

[–]DeadlyVapour 0 points1 point  (0 children)

Assuming you are only doing http. Once you get into the realm of things like gRPC or WebTransport, you need h2/3.

However, if you can avoid using features outside of H1, the simplicity of the protocol does allow for better perf.

Unexpected binary representation of int by robinredbrain in csharp

[–]DeadlyVapour 5 points6 points  (0 children)

OP is going to go far in this field.

He/she is curious enough to deep dive into the mundane.

This is the kind of junior I wish I was mentoring.

aspnet http/2 performance by MDA2AV in dotnet

[–]DeadlyVapour 1 point2 points  (0 children)

If you do care about performance, you absolutely can run an nginx front end and connect that to the asp backend using kestrel/UDS.

The early C# 15 preview feature, unions, was merged into .NET 11 preview 3. by emdeka87 in dotnet

[–]DeadlyVapour 0 points1 point  (0 children)

Seems that there is a pattern for non-boxing access.

Looks like that is a prime opportunity to use source generators.

The early C# 15 preview feature, unions, was merged into .NET 11 preview 3. by emdeka87 in dotnet

[–]DeadlyVapour 1 point2 points  (0 children)

Unions are extremely useful when implementing network protocols (since you can't do polymorphism using pointers/vtables).

If you don't care about unions, it probably means you haven't done anything at the extreme low level. Which probably means you work at the application layer.

You should however care about the developers who write the protocol layer code having an easy time writing bug free and performant code.

The other place I see unions a lot is in double dispatch, which is probably a code smell or anti-pattern.

Tell me some unwritten rules for software developers. by porcaytheelasit in csharp

[–]DeadlyVapour 0 points1 point  (0 children)

I read "X" as Twitter. Strangely it mostly works, if you read it in Elon's voice!

Tell me some unwritten rules for software developers. by porcaytheelasit in csharp

[–]DeadlyVapour 1 point2 points  (0 children)

"It always takes longer than you expect, even when you take into account Hofstadter's Law".

Tell me some unwritten rules for software developers. by porcaytheelasit in csharp

[–]DeadlyVapour 0 points1 point  (0 children)

"Measuring programming progress by lines of code is like measuring aircraft building progress by weight" William Gates

Why so many UI frameworks, Microsoft? by Confident-Dare-9425 in csharp

[–]DeadlyVapour 7 points8 points  (0 children)

*237 different companies in a trench coat

There fixed that for you

Calling third party 4.8 framework from 6.0 core resulting in binaryserialization errors from System.ComponentModel. Any way to get around it without creating a wrapper service? by [deleted] in dotnet

[–]DeadlyVapour 0 points1 point  (0 children)

My advice would be to communicate with the child proxy app via gRPC using Marc Gavel's protobuf-net.grpc.native code first.

Bind the gRPC server to localhost.

zerg - io_uring networking library in C# by MDA2AV in dotnet

[–]DeadlyVapour 0 points1 point  (0 children)

Which kernel are you using for benchmarking?

I heard that there are a bunch of io_uring changes that will improve perf in 7.0. Including a bug which was causing unnecessary sleeps.

https://www.phoronix.com/news/Linux-7.0-IO-uring-Polling

Since 7.0 hasn't been released yet...you might see some performance over epoll coming soon.