Skip to content

Instantly share code, notes, and snippets.

View davidfowl's full-sized avatar

David Fowler davidfowl

View GitHub Profile
@davidfowl
davidfowl / dotnetinstall.cs
Created June 26, 2025 06:26
cli tool to install dotnet
#:package Spectre.Console@0.50.0
#:package NuGet.Versioning@6.14.0
using System.Text.Json;
using System.Text.Json.Serialization;
using Spectre.Console;
using NuGet.Versioning;
using System.Diagnostics;
// Business logic class for .NET installation
@davidfowl
davidfowl / react_cli.cs
Last active June 18, 2025 23:01
React like framework based on Spectre.Console
#:package Spectre.Console@0.50.0
using Spectre.Console;
using Spectre.Console.Rendering;
using System.Threading.Channels;
// Entry point
var app = new ConsoleApp();
app.Render(new App());
@davidfowl
davidfowl / cleanrg.cs
Created June 16, 2025 21:42
A C# tool for cleaning up resource groups
// -----------------------------------------------------------------------------
// Azure RG Janitor - Spectre Edition
// Run with: dotnet run cleanup-rg.cs
// Targets: .NET 10 Preview 4+
// -----------------------------------------------------------------------------
#:package Azure.Identity@1.*
#:package Azure.ResourceManager@1.*
#:package Spectre.Console@0.50.0
using System.Diagnostics;
using System.Reflection;
using System.Threading.Channels;
using Aspire.Hosting.Eventing;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
public static class ProjectResourceBuilderExtensions
{
public static IResourceBuilder<ProjectResource> RestartOnChange(this IResourceBuilder<ProjectResource> builder, params string[] filePatterns)
@davidfowl
davidfowl / ResourceModel.md
Last active July 12, 2025 23:22
Aspire Resource Model: Concepts, Design, and Authoring Guidance
@davidfowl
davidfowl / git.cs
Last active December 12, 2024 09:11
Sample schema for git add, clone, commit, clean
using System;
using System.Collections.Generic;
using CliWrap;
namespace GitCLIWrapper;
public static class Git
{
public static Command Clone(
string repository,
@davidfowl
davidfowl / WaitToStart.cs
Last active December 19, 2024 16:38
Wait to start command
using Microsoft.Extensions.DependencyInjection;
var builder = DistributedApplication.CreateBuilder(args);
builder.AddContainer("redis", "redis").WithExplicitStart();
builder.Build().Run();
public static class ExplicitStartupExtensions
{
@davidfowl
davidfowl / UsingCopilot.md
Created March 30, 2024 22:51
Github copilot

Me using copilot

Copilot_Aspire.mp4
using System.Text.Json;
using System.Text.Json.Serialization;
var data = new[]
{
"Hello"u8.ToArray(),
"Twitter"u8.ToArray(),
"Optimize"u8.ToArray()
}
.Select(m => new Message(m)).ToArray();
@davidfowl
davidfowl / TimeHttpEvents.cs
Last active August 7, 2024 01:57
Using Yarp.Telemetry.Consumption to track outbound network events (this package isn't tied to YARP)
using System.Diagnostics;
using System.Net.Sockets;
using System.Security.Authentication;
using Yarp.Telemetry.Consumption;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddTelemetryConsumer<TelemetryConsumer>();
var app = builder.Build();