Start Here
Start Here
This blog is a structured series, not a random collection of posts. Each article is an architectural decision record: a problem, what was considered, what was chosen, and what it costs.
If you are new here, pick the reading path that matches your goal.
Path A — "I want to understand the PowerCSharp ecosystem"
Read these in order. Each post builds on the previous.
Introducing PowerCSharp: An Ecosystem Built on 20 Years of C# Architecture The blog launch post. What PowerCSharp is, why it exists, the three design principles, and the full package topology map.
One Rule, 13 Packages: How I Designed the PowerCSharp Package Topology The dependency direction rule, three version families, why each package boundary exists, and the cost of modularity.
100+ Extension Methods: When Breadth Is a Design Decision How the Extensions layer is organized, the Dynamic LINQ production story, and CWE-73 path security.
After these three posts, use the Ecosystem page as a permanent reference.
Path B — "I want to understand the Features engine"
Start with Path A first, then continue:
Why I Built a Feature Module Engine — and Why Feature Flag Libraries Weren't Enough The architectural decision record for
PowerCSharp.Features. Module abstraction, composite flag resolver, safe-off floor, startup transparency.The Composite Flag Resolver (coming soon) How N providers are chained with defined precedence. How to build a custom
IFeatureFlagProviderfor Azure App Config, AWS SSM, or a database.
Path C — "I want to implement caching in my application"
Start with Path A posts 1–2, then:
Building a Production Disk Cache in .NET: Atomic Writes, Cross-Process File Locks, and LRU Eviction The engineering behind
PowerCSharp.Feature.Cache.Disk. Partial write prevention, cross-process file locking, sidecar metadata, background cleanup.CacheResult
vs. T? — Why Typed Cache Results Matter for Correctness (coming soon) The correctness argument for discriminated cache results over nullable returns.
Use the Ecosystem page → Layer 3 section to pick the right cache provider for your use case.
Path D — "I want to build my own Feature module"
Read Path B fully, then:
PowerCSharp Features Authoring Guide (GitHub documentation) Step-by-step guide: tiering decision tree, anatomy of a module, worked Cache family example.
PowerCSharp.Features.Abstractions (NuGet) Reference only the abstractions package to implement
IFeatureModulewithout pulling in the engine.
Path E — "I want to follow the design decisions as they happen"
Subscribe to the blog. Posts follow this approximate cadence:
| Month | Topics |
|---|---|
| 1 | Features engine ADRs |
| 2 | BuiltInFeatures architecture |
| 3 | Cache abstractions |
| 4 | Cache provider implementations |
| 5 | Enterprise patterns (multi-tier cache, feature gating vs. feature flags) |
| 6 | PowerCSharp ecosystem (Extensions, Dynamic LINQ, Clean Architecture template) |
Full calendar in the blog strategy (internal).
Update policy for this page
This page is updated whenever a new post is published. If a link shows (coming soon), the post is planned and in draft. Posts are published in the order listed — each one assumes you have read the ones before it in the same path.

