This repository serves as the primary source for .NET documentation (learn.microsoft.com/dotnet). It contains conceptual guides, API references, and runnable code samples demonstrating .NET language features, frameworks, and best practices. The repository is not a single application but a curated collection of educational materials organized by technology domain (e.g., C#, ASP.NET Core, Orleans, AI). Code samples illustrate patterns like dependency injection, logging, serialization, and data access, often with minimal, self-contained examples. Maintenance is active via GitHub Actions workflows for linting, dependency updates, and version sweeping, ensuring content stays current with .NET releases.
This repository is the Pulumi Infrastructure as Code (IaC) platform. It provides a CLI (`pulumi`) and multi-language SDKs (TypeScript, Python, Go, .NET, Java, YAML) that allow users to define cloud infrastructure using general-purpose programming languages. The architecture is a monorepo containing a core engine (`pkg/engine`) that orchestrates resource lifecycle management, deployment steps, and state operations. Language plugins (`pulumi-language-nodejs`, `pulumi-language-python`, `pulumi-language-go`) host user programs and communicate with the engine via gRPC. Code generators (`pkg/codegen`) produce SDKs from provider schemas, enabling a pluggable provider model. The CLI entry point is `pkg/cmd/pulumi/main.go`, dispatching to subcommands for stack management, deployment operations (up, preview, destroy, refresh), policy-as-code, config, secrets, and ESC (Environments, Secrets, Config). External dependencies include cloud provider APIs (AWS, Azure, GCP, Kubernetes) accessed through plugins, and state backends (local filesystem, S3, Azure Blob, GCS, PostgreSQL, or Pulumi Cloud). The system uses protobuf for serialization and gRPC for inter-process communication between engine, language hosts, and providers.
FsHttp is a .NET HTTP client library for F# (and C#) that provides a fluent, composable DSL for constructing and sending HTTP requests. It offers both a computation expression (CE) syntax for F# and extension methods for C#, supporting all standard HTTP methods, headers, cookies, multipart form data, file uploads, and various body content types (text, JSON, binary, streams, form-urlencoded). The library wraps System.Net.Http and provides rich response handling including streaming, JSON parsing (System.Text.Json by default, with optional FSharp.Data and Newtonsoft.Json integrations), XML parsing, file saving, and status code assertions. It features a configurable pipeline with transformers for headers, URLs, HttpClient, and HttpRequestMessage, as well as per-request and global configuration. The library is designed for both interactive use (F# Interactive / notebooks) and production applications, with built-in FSI printing and debug logging. The codebase is well-structured with clean domain models, a modular DSL implementation, and comprehensive test coverage using Suave for local test servers.
Equinox is an F# library for event-sourced systems, providing a consistent abstraction over multiple stream-based storage backends including CosmosDB, DynamoDB, EventStoreDB, MessageDB, SqlStreamStore, and an in-memory store. In production, it enables applications to define domain logic as pure decision functions that produce events, while the library manages optimistic concurrency, caching, snapshots, and retries. The core is the `Decider` pattern: an aggregate loaded from a stream, a decide function that returns events, and a fold that applies events to produce new state. Access strategies (e.g., `LatestKnownEvent`, `RollingSnapshots`, `Custom`) control how state is reconstructed from stored events, trading read cost for write cost. The architecture is modular: the `Equinox` package defines the core interfaces (`ICategory`, `IStream`, `Decider`), while separate NuGet packages implement storage adapters. The library is used as a dependency in larger applications; sample projects (`Store/Domain`, `TodoBackend`, `Tutorial`) demonstrate its use. Key entry points include the `Decider` class for command/query execution, `Category` for resolving streams, and store-specific connectors (e.g., `CosmosStoreConnector`, `DynamoStoreConnector`). A CLI tool (`Equinox.Tool`) provides provisioning, benchmarking, and data inspection commands across all stores. External dependencies are minimal per package: `Equinox` depends only on `FsCodec` for serialization; store adapters require their respective SDKs (Azure.Cosmos, AWSSDK.DynamoDBv2, EventStore.Client, Npgsql, etc.). The library includes comprehensive caching (`Equinox.Cache` wrapping `System.Runtime.Caching.MemoryCache`), metrics via Prometheus, and a load testing harness. Despite some deprecated adapters (legacy EventStore TCP, SqlStreamStore) and high complexity from multiple backends, the core patterns are clean, well-tested, and production-proven at Jet.com.
FSharp.Formatting is a mature, production-grade documentation generation toolchain for the F# ecosystem. It consists of several libraries (Markdown parsing, code syntax highlighting with F# Compiler Service integration, API documentation generation from XML doc comments, literate programming support for .fsx and .ipynb files) and a CLI tool (`fsdocs`) that builds static documentation websites with search, theme toggling, and a live-reload dev server. The system is primarily a developer tool used by F# projects to produce API reference sites and literate documentation. Its architecture is modular: the Markdown parser, code formatter, literate processor, and template engine are separate libraries that can be used independently. The CLI orchestrates these libraries, cracking MSBuild projects for metadata, evaluating code via F# Interactive, and generating output in HTML, LaTeX, Markdown, and Jupyter notebook formats. External dependencies include the F# Compiler Service, Newtonsoft.Json, and a bundled version of Yaaf.FSharp.Scripting. The codebase demonstrates deep integration with the F# compiler's type-checking and symbol resolution APIs, but also shows signs of organic growth: duplicated test data, a legacy C# MarkdownSharp project, and some conditionally compiled code for .NET Framework compatibility.
ts2ocaml is a CLI tool that generates OCaml and ReScript bindings from TypeScript type definitions. It parses TypeScript AST using the TypeScript compiler API (via Fable), transforms the AST into a language-agnostic internal representation, resolves types (including generics, subtyping, unions, intersections), and emits target-specific code for js_of_ocaml (.mli) or ReScript (.res/.resi). The tool is implemented in F#, compiled to JavaScript via Fable, and distributed as an npm package. It supports multiple backends via a pluggable ITarget interface, includes a comprehensive type resolver (Typer), and provides utilities for naming, text manipulation (rope), trie-based data structures, and dependency graph analysis (topological sort, SCC). The repository also ships a minimal standard library for each target to support emitted bindings. It is actively maintained with CI, frequent releases, and documentation for modeling subtyping and development setup.