Skip to content

Instantly share code, notes, and snippets.

View ptupitsyn's full-sized avatar

Pavel Tupitsyn ptupitsyn

View GitHub Profile
@ptupitsyn
ptupitsyn / IgniteNetRestApi.csproj
Last active May 3, 2023 05:32
Ignite.NET REST API module usage
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
@ptupitsyn
ptupitsyn / Dockerfile
Created June 15, 2023 06:15
.NET 8 ARM Docker build
FROM mcr.microsoft.com/dotnet/runtime:8.0-preview AS base
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:8.0-preview AS build
WORKDIR /src
COPY dotnet-arm.csproj .
RUN dotnet restore
COPY . .
RUN dotnet build -c Release -o /app/build
@ptupitsyn
ptupitsyn / Dockerfile
Created June 15, 2023 13:05
Working .NET multi-arch Docker build (ARM + Intel)
# See https://devblogs.microsoft.com/dotnet/improving-multiplatform-container-support/
# 8.0-preview-alpine works too
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0-preview AS build
ARG TARGETARCH
WORKDIR /source
# copy csproj and restore as distinct layers
COPY *.csproj .
RUN dotnet restore -a $TARGETARCH
@ptupitsyn
ptupitsyn / CheckedCastVsConvert.csproj
Last active July 13, 2023 13:55
C# checked cast vs Convert
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
@ptupitsyn
ptupitsyn / Program.cs
Created August 24, 2023 14:19
.NET attach to Docker container and execute commands
using Docker.DotNet;
using Docker.DotNet.Models;
var client = new DockerClientConfiguration(new Uri("unix:///var/run/docker.sock")).CreateClient();
await client.System.PingAsync();
var imagesCreateParameters = new ImagesCreateParameters
{
FromImage = "alpine/git",
Tag = "v2.36.3"
@ptupitsyn
ptupitsyn / BambooDirectoryParser.csproj
Last active September 28, 2023 10:58
Bamboo directory parser
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
@ptupitsyn
ptupitsyn / IgniteSqlIndexTest.csproj
Created November 13, 2024 17:03
Ignite.NET SQL index test
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
@ptupitsyn
ptupitsyn / ValueTypeBenchmark.cs
Created December 20, 2024 08:48
C# value types vs reference types performance
using System.Linq;
using BenchmarkDotNet.Attributes;
/// <summary>
/// 1M, MB Pro M3
/// | Method | Mean | Error | StdDev | Ratio |
/// |------------ |---------:|--------:|--------:|------:|
/// | TestValType | 530.2 us | 6.94 us | 6.49 us | 0.98 |
/// | TestRefType | 541.1 us | 1.98 us | 1.54 us | 1.00 |.
///