For my reading list (will likely be extended in the future) as covariance and especially contravariance often give me headaches (even after all these years of C#):
Archive for the ‘C#’ Category
Since covariance and especially contravariance often give me headaches (especially with Action and Func), some links
Posted by jpluimers on 2025/02/12
Posted in .NET, C#, Development, Software Development | Leave a Comment »
If you need to learn ASP.NET core or looking for specific examples, then try GitHub dodyg/practical-aspnetcore repository
Posted by jpluimers on 2025/02/05
[Wayback/Archive] dodyg/practical-aspnetcore: Practical samples of ASP.NET Core 2.1, 2.2, 3.1, 5.0, 6.0 and 7.0 projects you can use. Readme contains explanations on all projects.
By the time you read this, all examples should have been rewritten to use minimal API footprint so it easier to get just the essentials from each example.
Via [Wayback/Archive] dodyg on Twitter: “I just realized this repo has about around 1500 samples in total because for each version of ASP.NET Core the samples get modified in some ways beyond project increment, e.g for .NET 6, all samples gets rewritten to use minimal API.”
–jeroen
Posted in .NET, ASP.NET, ASP.NET core, C#, Development, Software Development, Web Development | Leave a Comment »
Deploy .NET Framework 3.5 by using Deployment Image Servicing and Management (DISM) instead of Chocolatey and some notes on PowerShell colours
Posted by jpluimers on 2025/01/07
Since every now and then, like testing software developed with older tools, you need to run older software.
This always works: [Wayback /Archive] Deploy .NET Framework 3.5 by using Deployment Image Servicing and Management (DISM) | Microsoft Learn
DISM /Online /Enable-Feature /FeatureName:NetFx3 /AllUse
/Allto enable all parent features of the specified feature.
(The /All is needed because software requiring .NET Framework 3.5 also require the parent features).
Notes:
- Tested on Windows 10 and Windows 11 in 2022.
- It can take a really long time (more than just a few minutes!) even on fast connections.
- Installing through Chocolatey with `choco install
dotnet3.5fails on Windows 11 (have not tried on Windows 10) with the classical red on black PowerShell default error theme*:
ERROR: The term 'wmic' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
The install of DotNet3.5 was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\DotNet3.5\Tools\ChocolateyInstall.ps1'.
Posted in .NET, .NET 3.0, .NET 3.5, C#, Chocolatey, Development, Power User, PowerShell, Software Development, Windows, Windows 10, Windows 11 | Leave a Comment »
Old programming books had cool little “puns” in their references, modern lack them in their indices. On the why, and history of them.
Posted by jpluimers on 2025/01/01
I wrote a two earlier blog posts around puns in programming book indices before:
- the 1992 Turbo Pascal 7.0 Language Guide having both entry in the manual about Recursion (“recursive loop, see recursive loop”) which of course is similar to “infinite loop” and entries for “infinite loop See loop, infinite” and “loop, infinite See infinite loop”.
- infinite loop in “LaTeX: A Document Preparation System” by Leslie Lamport, printed in 1994.
In the last one, I promised to list more occurrences which I now finally had time for to do.
But let me first elaborate more on the observation that modern computer books (like for instance on C# and Delphi beyond version 1) lack these kinds of index pun.
On the Delphi side, the index entry joke for recursion got removed no later than Delphi 3 (I am still looking for a Delphi 2 version of the Object Pascal Language Guide, see further below) even before the book being fully redone electronically and the index pages generation being automated in
I think I even understand why that is: the process of creating of indices. By the start of this century, more and more indices were automatically being generated and for the last 2 decades or so, all of them are. Back in the days however, indices were mostly done by hand. Nowadays, with everything automated, it is actually pretty tricky in most environments to add such an “infinite loop” index entry like in the Turbo Pascal book, as it would require two things at once:
Posted in .NET, C, C#, C++, Conference Topics, Conferences, Delphi, Delphi 1, Delphi 2, Development, EKON, Event, History, LaTeX, LifeHacker, LISP, Mathematics, Pascal, Perl, PL/I (a.k.a. PL/1), Power User, science, Software Development, Turbo Pascal, Typesetting | Tagged: 1, 7 | 4 Comments »
HInvoke and avoiding PInvoke | drakonia’s blog
Posted by jpluimers on 2024/12/26
On my research list [Wayback/Archive] HInvoke and avoiding PInvoke | drakonia’s blog.
A very minimalistic approach of calling .net runtime functions or accessing properties using only hashes as identifiers. It does not leave any strings or import references since we dynamically resolve the required member from the
mscorlibassembly on runtime.
Posted in .NET, C#, Development, Encryption, Hashing, Power User, Red team, Security, Software Development | Tagged: CyberSecurity, dinvoke, hinvoke, infosec, maldev, pentest, Pentesting, redteam | Leave a Comment »
GitHub Profile Roast 🔥🔥🔥
Posted by jpluimers on 2024/09/19
Who needs AI (:
[Wayback/Archive] GitHub Profile Roast 🔥🔥🔥
Sourcecode at [Wayback/Archive] GitHub – codenoid/github-roast: Spicy GitHub Roast 🔥
Via [Wayback/Archive] Dennis Schubert: “okay, I finally found a good u…” – Mastodon
okay, I finally found a good use for an LLM. no, really.
github-roast.pages.dev
this thing is brutal
In addition, I learned about [Wayback/Archive] lokal.so · GitHub: Supercharged HTTP/TCP/UDP Tunneling Software
Posted in AI and ML; Artificial Intelligence & Machine Learning, C#, C++, Development, JavaScript/ECMAScript, LLM, PHP, Python, Ruby, Rust, Scripting, Software Development | Leave a Comment »
If I ever need to do OAuth: aspnet-contrib/AspNet.Security.OAuth.Providers: OAuth 2.0 social authentication providers for ASP.NET Core
Posted by jpluimers on 2024/08/21
This is cool: [Wayback/Archive] aspnet-contrib/AspNet.Security.OAuth.Providers: OAuth 2.0 social authentication providers for ASP.NET Core.
Based on ideas at [Wayback/Archive] TerribleDev/OwinOAuthProviders: OAuth providers for Owin.
Via [Wayback/Archive] David Fowler 🇧🇧🇺🇸 on Twitter: “Since we’re on the auth topic, there’s a repository maintained by @martin_costello and @kevin_chalet for interacting with pretty much every oauth provider on the planet github.com/aspnet-contrib/AspNet.Security.OAuth.Providers… #dotnet #aspnetcore”.
OAuth 2.0 providers covered at the time of writing are in the [Wayback/Archive] AspNet.Security.OAuth.Providers/README.md: Providers at dev · aspnet-contrib/AspNet.Security.OAuth.Providers.
–jeroen
Posted in .NET, .NET Core, Authentication, C#, Development, OAuth, Power User, Security, Software Development | Leave a Comment »
David Fowler on Twitter: “Playing around with using static interface methods and the new IParsable to make generic callsites for HTTP APIs. Before .NET 7 there was no way to write generic code that did {Type}.TryParse/{Type}.Parse. The type system didn’t have a way to describe these contracts. #dotnet”
Posted by jpluimers on 2024/07/25
Reminder to check out this [Wayback/Archive] David Fowler on Twitter: “Playing around with using static interface methods and the new IParsable to make generic callsites for HTTP APIs. Before .NET 7 there was no way to write generic code that did {Type}.TryParse/{Type}.Parse. The type system didn’t have a way to describe these contracts. #dotnet” (and OCR the images):
Posted in .NET, .NET Core, C#, C# 11, Development, Software Development | Leave a Comment »
Interesting thread on the usefulness of running a syslog server and being able to write to it
Posted by jpluimers on 2024/07/04
For my link archive:
- [Wayback/Archive] jilles.com 🔜 MCH2022 🏳️🌈 on Twitter: “My Ubiquity setup stopped working (again). This happens way to often in my opinion. I have setup a monitoring environment to debug the issues and consider it not reliable enough for the amount of money I spend on it.”

- [Wayback/Archive] Rick on Twitter: “@jilles_com Waar heb je problemen mee? En ik tijdelijk een syslog server draaien. Dan je kun je gemakkelijker de logs doorspitten (kiwi heeft een simpele gratis versie)”
- [Wayback/Archive] jilles.com on Twitter: “@RickvanSoest Ik draai een grafana setup met syslog, snmp ingest en een losse traceroute om uit te sluiten of het aan de provider of de hardware ligt.”
- [Wayback/Archive] jilles.com on Twitter: “@RickvanSoest Software upgrades die falen. In dit geval een PoE switch die op z’n gat lag. In dit geval iets dat met een reboot gefixt is. Maar in geval van de upgrade was het een compleet nieuwe configuratie.”
In todays cross-platform world, it pays if your tooling can send logging to syslog.
Though originating from the CP/M and SunOS background, I have done most of my professional development work in Windows back-ends and front-ends, so here are some links relevant to that:
- Via [Wayback/Archive] .net – how to write to kiwi syslog server log c# – Stack Overflow:
- [Wayback/Archive] Janik Vonrotz – Forward Windows event log entries to syslog server
- Via [Wayback/Archive] features [Ararat Synapse]:
- Edit 20240811: new location of this unit, Thanks [Wayback/Archive] Steven Kamradt!
[Wayback/Archive] delphi-synapse/slogsend.pas at master · dimmaq/delphi-synapse (note this is from an old fork , I have to dig for a more recent synapse git repository as their main repository is SVN based [Wayback/Archive] Ararat Synapse download | SourceForge.net)
[Wayback/Archive] synapse/slogsend.pas at master · geby/synapse · GitHub - [Wayback/Archive] slogsend
BSD SYSLOG protocol
Used RFC: RFC-3164
- Edit 20240811: new location of this unit, Thanks [Wayback/Archive] Steven Kamradt!
- Via [Wayback/Archive] Syslog & Windows Event Log Utilities – I made this – Delphi-PRAXiS [en]:
--jeroen
Posted in .NET, C#, Delphi, Development, DVCS - Distributed Version Control, git, Software Development, Source Code Management, Subversion/SVN | 2 Comments »
Script alternatives to the Windows-L keyboard shortcut (SwitchUser / LockWorkstation)
Posted by jpluimers on 2024/05/23
More than a decade ago I wrote about Programmatic alternatives to Windows-L keyboard shortcut (SwitchUser / LockWorkstation).
Still, I see many scripts invoke rundll32.exe or to call the [Wayback/Archive] LockWorkStation function (winuser.h) inside user32.dll. Don’t!
The BOOL LockWorkStation()function has a calling convention that is incompatible with rundll32.exe () which will corrupt the call stack likely will lead to random problems as after two decades, this post from Raymond Chen still holds: [Wayback/Archive] What can go wrong when you mismatch the calling convention? – The Old New Thing
Posted in .NET, Batch-Files, C#, CommandLine, Development, Power User, PowerShell, PowerShell, Scripting, Security, Software Development, Windows, Windows 10, Windows 11, Windows 7, Windows 8, Windows 8.1, Windows Server 2016 | Leave a Comment »





