Developer Recipes Handbook
Keeping track of interesting places I put my feet on in the software development world.
Search This Blog
Wednesday, July 27, 2022
Sunday, March 27, 2022
Sunday, December 5, 2021
C# method to increment version object
public Version IncrementVersion()
{
var random = new Random();
//for demonstration purposes - this should come as a parameter
var version = new Version(random.Next(0, 10), random.Next(0, 10), random.Next(0, 10), random.Next(0, 10));
var versionComponents = version.ToString().Split('.');
int.TryParse(versionComponents?.LastOrDefault(), out int lastVersionComponent);
var incrementedVersion = new Version(version.Major, version.Minor, version.Build, ++lastVersionComponent);
Console.WriteLine($"original version: [{version}] incremented version: [{incrementedVersion}]");
return incrementedVersion;
}
Wednesday, November 3, 2021
Fixing Visual Studio Code error: enospc: system limit for number of file watchers reached, watch '/snap/code'
Tuesday, March 9, 2021
Missing WSMan client and missing liblibpsrpclient in establishing remote sessions using powershell from a docker container
https://github.com/PowerShell/PowerShell/issues/8548#issuecomment-793595858
FROM mcr.microsoft.com/dotnet/sdk:3.1-buster
RUN apt-get update \
&& apt-get install --no-install-recommends -y \
# less is required for help in powershell
less \
# requied to setup the locale
locales \
# required for SSL
ca-certificates \
gss-ntlmssp \
libicu63 \
libssl1.1 \
libc6 \
libgcc1 \
libgssapi-krb5-2 \
liblttng-ust0 \
libstdc++6 \
zlib1g \
# PowerShell remoting over SSH dependencies
openssh-client \
&& apt-get dist-upgrade -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
# enable en_US.UTF-8 locale
&& sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen \
# generate locale
&& locale-gen && update-locale
# https://github.com/PowerShell/PowerShell/issues/8548
RUN apt-get -y install wget
RUN wget "http://http.us.debian.org/debian/pool/main/g/glibc/multiarch-support_2.19-18+deb8u10_amd64.deb"
RUN dpkg -i multiarch-support_2.19-18+deb8u10_amd64.deb
RUN wget "http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u12_amd64.deb"
RUN dpkg -i libssl1.0.0_1.0.1t-1+deb8u12_amd64.deb
#install powershell WSMan.Management module (https://www.bloggingforlogging.com/2020/08/21/wacky-wsman-on-linux/)
RUN pwsh -Command "Install-Module -Name PSWSMan -Force"
RUN pwsh -Command "Install-WSMan"
Sunday, January 10, 2021
Symmetric and Asymmetric Encryption Explained
https://sectigostore.com/blog/5-differences-between-symmetric-vs-asymmetric-encryption/
Wednesday, December 2, 2020
Easiest and shortest sample to get a c# ILogger instance working
I am embarrassed but I could not get a working ILogger instance to log to the console. I expected this to be achievable with 3, 4 lines. Tried several different approaches, following different posts/articles, nothing !
Using Serilog, however, gives the desired results, easily.
var serilog = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Console()
.WriteTo.File("Logs\\tests.txt", rollingInterval: RollingInterval.Day)
.CreateLogger();
var logger = new LoggerFactory().AddSerilog(serilog).CreateLogger<LinuxStartUpAndUpdaterManager>();
For instance, I use the following method in a base class all my test classes inherit from:
protected ILogger<K> GetLogger<K>()
{
var serilog = new LoggerConfiguration()
.WriteTo.Console()
.WriteTo.File("testLog.txt", rollingInterval: RollingInterval.Day)
.CreateLogger();
//if you need a Microsoft.Extensions.Logging ILogger out of your serilog
return LoggerFactory.Create((c) =>
{
c.AddConsole();
c.AddSerilog(serilog);
}).CreateLogger<K>();
}