Run Your Own Campfire on .NET with LINQPad
The C# port of Basecamp's Campfire is a .NET library like any other, so you can host the whole chat app inside a LINQPad script on Windows: build it, reference...
Latest insights, tutorials, and updates from our team.
The C# port of Basecamp's Campfire is a .NET library like any other, so you can host the whole chat app inside a LINQPad script on Windows: build it, reference...
The C# port of Basecamp's Campfire ships as a Docker image that's a drop-in for the Rails one: same volume, same settings, same ports. Here's how to try it on...
The C# port of Campfire shipped behind a small Go proxy in the same container. Taking the proxy out of the benchmark tripled the read numbers, because on four CPUs...
HMACSHA1.HashData and a fresh AesGcm per call are the tidy way to write cookie crypto in .NET. On Linux with OpenSSL 3, each call also builds and throws away a...
ASP.NET Core writes two log lines for every request at Information level. In the C# port of Campfire that was 6.7 million lines in 70 seconds, and the console logger's...
Campfire's response cache asked SQLite whether anything had changed three to five times per request, inside a global lock. Three fixes took that check from a third of the request's...
No single hotspot, just a dozen small allocations on every request: an environment variable read, a regex to find a port, JsonNode for a three-field document. Removing them cut allocation...
The two biggest allocation sites in the C# Campfire port were an 80 KB buffer on every GET and a 415 KB page copied into a growing MemoryStream. Removing the...
The C# port of Campfire posted 50 messages a second, a fifth of Rails, run after run. The cause was a maintenance job that was meant to run now and...
Seven fixes to the C# Campfire port, and most of the big ones weren't about C#. A proxy hop, a checkpoint trigger and a query under a lock were design...
I ported Basecamp's Campfire chat app from Rails to C# so it could replace the Rails container on an existing install, then put it on a shared benchmark next to...
Every .NET developer eventually faces the data access dilemma.
If you’ve spent any time working in enterprise C# over the past decade, you know the feeling of opening a pull request that touches one single database column, only to...
Discover how C# and LINQ create a powerful functional coding mix in LINQPad. Learn essential LINQ operators, compare procedural vs. LINQ code, and boost your .NET skills with hands-on examples...
In the world of .NET development, working with Excel files programmatically is a common task—whether you’re generating reports, analyzing data, or automating workflows. But if you’ve ever searched for “C#...
Discover .NET single file scripts in .NET 10 previews as a potential LINQPad alternative for quick .NET coding, automation pipelines, and console apps. Learn setup, directives, Dev Containers integration, and...
If you’re a .NET developer, you’ve likely heard of or used LINQPad – the ultimate scratchpad for C#, F#, and VB.NET. LINQPad is a powerful rapid application development tool that’s...
If you’re a .NET developer searching for detailed LINQPad AI documentation, you’ve come to the right place. LINQPad 9 introduces powerful AI features designed to streamline coding tasks, from code...
Hey there, fellow .NET enthusiasts! If you’re passionate about streamlining your coding workflows, experimenting with LINQ queries, or diving deep into .NET innovations, you’re in for a treat. The official...
In the world of .NET coding, tools come and go, but few have the staying power and versatility of LINQPad. If you’ve ever dismissed LINQPad as just a simple scratchpad...
When it comes to using tools like LINQPad in a professional environment, one of the most important considerations is ensuring compliance with your company’s policies. No matter how useful or...
If you’re a .NET developer wondering, “Does anyone use LINQPad?” the answer is a resounding yes. This powerful tool has been a staple in the .NET community for years, helping...
I’ve been hiring .NET developers for years, and I’ve learned that most interview questions are either too basic or too theoretical. The questions that actually matter are the ones that...
Redis Streams provide a powerful way to implement durable message queues using the same Redis instance already running in your environment. No extensions, modules, or hacks required. This isn’t your...
If you’ve ever wondered how to keep your C# projects organized as they grow, you’re not alone. One of the best ways to experiment with new architectural patterns is with...
If you want to crush your next .NET developer job interview—or honestly, any coding interview—there are a few key tactics you need to master. It’s not just about memorizing a...
If you’re preparing for a backend software engineering interview, you’ll want to master both the theory and the practical side of core concepts. Here are 16 real interview questions, with...
If you’ve ever needed to run background tasks in your .NET applications, you’ll love how easy it is with LINQPad and .NET’s hosting model. LINQPad makes it simple to experiment...
GraphQL might be the most misunderstood technology of the 21st century. Despite the hype and complexity that often surrounds it, the core concepts are surprisingly straightforward. Let’s cut through the...
Source generators represent one of the most exciting frontiers in .NET development. These powerful tools allow you to automatically generate code during the build process, opening up endless possibilities for...
Message queues are the backbone of scalable distributed systems, and RabbitMQ is one of the most popular and robust solutions available. In this guide, we’ll explore how to use RabbitMQ...
Real-time communication is becoming increasingly important in modern web applications. Whether you’re building a chat application, live dashboard, or collaborative tool, you need a way to push data from server...
In today’s data-driven world, efficiently handling large datasets and real-time data streams is crucial. C#’s IAsyncEnumerable<T> provides an elegant solution for streaming data, offering a perfect balance between performance and...
The upcoming C# 14 (part of .NET 10) brings an exciting new feature that will make property implementations cleaner and more maintainable. The new field keyword eliminates the need for...
Entity Framework Core (EF Core) is a powerful object-database mapper that lets you work with a database using .NET objects. Instead of writing complex SQL queries, you can focus on...
In modern C# development, handling multiple asynchronous operations efficiently is crucial for building responsive applications. Today, we’ll explore how Task.WhenAll can simplify bulk task management, and I’ll show you how...
In the world of C# development, handling background tasks efficiently is crucial for building responsive applications. Today, we’ll explore how to implement event-driven background tasks using the BackgroundWorker class, and...
Dependency injection is a fundamental concept in modern .NET development, and understanding service lifetimes is crucial for building robust applications. Microsoft.Extensions.DependencyInjection provides three main lifetime options: Transient, Scoped, and Singleton....
Are you ready to enhance your development workflow with LINQPad? This comprehensive guide will walk you through the purchase process and help you get your company to cover the cost....
Looking to download LINQPad? This comprehensive guide will help you choose the right version for your development environment and show you how to get started quickly.
Are you a macOS developer looking for a powerful development environment? LINQPad for Mac brings the same powerful features you love to your Apple ecosystem. This comprehensive guide will help...
Are you wondering about the cost of LINQPad in 2025? This comprehensive guide breaks down all LINQPad pricing options and helps you choose the right edition for your needs.
I'll respond ASAP!
Thanks for reaching out! I'll get back to you within the hour (but usually within a few minutes).