Serilog.Settings.Configuration is a library that enables Serilog to read its configuration from Microsoft.Extensions.Configuration sources, primarily appsettings.json files. It bridges Serilog's configuration system with the .NET configuration ecosystem, allowing developers to configure sinks, enrichers, filters, and other logging components through standard configuration providers. The architecture centers around a ConfigurationReader that processes Serilog configuration sections, discovers relevant assemblies containing logging components, and invokes the appropriate Serilog configuration methods. Key features include support for static member access syntax (Type::Member), dynamic level switches, filter switches, nested configuration sections for wrappers like Async sinks, and sophisticated argument binding that handles complex types, arrays, and optional parameters. The library demonstrates strong engineering practices with comprehensive test coverage, multi-targeting for various .NET frameworks, clear semantic versioning, and active maintenance. It solves the common problem of configuration fragmentation in .NET applications by providing a unified approach to Serilog configuration that works with environment variables, JSON files, command-line arguments, and other configuration sources supported by Microsoft.Extensions.Configuration.
The AdvancedSharpAdbClient is a .NET library that provides a managed implementation of the Android Debug Bridge (ADB) protocol, enabling developers to interact with Android devices without relying on the external `adb.exe` executable. It offers a comprehensive suite of features including device connection management, shell command execution, application installation and uninstallation, file transfer via ADB sync service, screen capture, and device state monitoring. The library is designed with a strong emphasis on testability and loose coupling, utilizing interfaces and a factory pattern for dependency injection. Architecturally, the library is structured as a set of cohesive, loosely coupled components. Core communication is handled by `AdbSocket` (low-level TCP) and higher-level operations are exposed through `AdbClient`, `DeviceClient`, `PackageManager`, and `SyncService`. The library makes extensive use of interfaces to allow for easy mocking in unit tests and provides asynchronous counterparts for most operations to support non-blocking programming models. It targets a wide range of .NET frameworks (from .NET Framework 3.5 to .NET 10+) using conditional compilation and polyfills to maintain compatibility. The library demonstrates solid engineering practices through its use of the factory pattern for object creation, extension methods to enhance interface usability, and careful handling of binary data structures for statistics and framebuffer headers. Its comprehensive test suite, which includes mock implementations for various components, ensures reliability and facilitates safe evolution. While the broad target range introduces some complexity via conditional compilation symbols, the code remains well-organized and maintainable, reflecting a commitment to serving a diverse set of .NET applications requiring Android device interaction.
This repository provides a .NET library for performing high-performance bulk operations (insert, update, delete, merge, match) with Entity Framework Core and SQL Server. It extends DbContext with extension methods that leverage SqlBulkCopy and temporary tables to minimize database round-trips when processing large datasets. The library supports synchronous and asynchronous APIs, handles complex EF Core features (owned types, complex types, JSON properties, discriminators), and includes a fluent builder pattern for configuring operations. The architecture centers around extension methods for DbContext and a ConnectionContext abstraction for lower-level SQL operations. Key internal components include a property access cache for performance, sequential GUID generation for index-friendly keys, and a table mapping system to customize entity-to-table mappings. The library implements bulk operations by creating temporary tables, using SqlBulkCopy for efficient data loading, and then executing set-based SQL operations (INSERT, UPDATE, DELETE, MERGE) to synchronize with the target tables. Notable reusable components include the PropertiesCache, which compiles and caches property accessors to eliminate reflection overhead, and the SequentialGuidGenerator, which creates database-optimized GUIDs. The library is actively maintained, targets recent .NET versions, and includes a comprehensive test suite and benchmark projects validating performance improvements over standard EF Core operations.