Skip to content
CAI
Software that uses CAICheck a score

Kation/ComBoost

37.4

Weak · 21 September 2026

25k

lines of production code

C#

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

ComBoost is a modular .NET framework that provides a domain-driven service layer with built-in support for Entity Framework data access, distributed caching, and gRPC communication. It enables developers to expose domain logic as HTTP endpoints or gRPC services while handling authentication, authorization, and distributed events through pluggable providers. The system also includes utilities for Excel export, source generation, and comprehensive testing infrastructure to streamline enterprise application development.

How it got here

2016 — ComBoost 4.0 initial release

17 changes.

This period marks the initial release of ComBoost 4.0, establishing a multi-targeting framework for .NET Standard and .NET Core with a new modular domain service architecture. The work focused on building foundational infrastructure, including distributed caching, security, and data access layers, while introducing comprehensive integration modules for Entity Framework, ASP.NET Core MVC, and physical file storage.

2017–2021 — distributed infrastructure and aggregation

34 changes.

This period focused on expanding the framework's distributed capabilities by introducing gRPC integration, RabbitMQ and CAP event providers, and a new domain aggregation system with caching support. Significant effort was also dedicated to modernizing the underlying dependencies, upgrading to .NET 10 and EF Core 10, and establishing comprehensive test coverage for the new HTTP, gRPC, and data access features.

2022–2026 — Source generators and Excel export

10 changes.

This period focused on introducing source generators for automatic domain template interfaces and ASP.NET Core endpoints to reduce boilerplate code. It also added a comprehensive Excel export feature with NPOI support, including core interfaces, type-specific cell writers, and extensive test coverage.

Features

Add JSON serialization extensions for domain aggregation

This change introduces two new extension libraries, \Wodsoft.ComBoost.Aggregation.Json\ and \Wodsoft.ComBoost.Aggregation.NewtonsoftJson\, which allow users to configure how domain aggregation handles JSON serialization. The \System.Text.Json\ extension registers an implementation that marks aggregated properties with the \JsonIgnoreAttribute\, while the \Newtonsoft.Json\ extension does the same using Newtonsoft's \JsonIgnoreAttribute\. Users can enable these behaviors by calling \AddJsonExtension()\ or \AddNewtonsoftJsonExtension()\ on their \IComBoostAggregationBuilder\ during dependency injection setup.

src/Wodsoft.ComBoost.Aggregation.Json, src/Wodsoft.ComBoost.Aggregation.NewtonsoftJson · high confidence

Add NPOI cell writers for primitive, date, and enum types

The NPOI Excel export engine now supports writing a comprehensive set of data types to cells. This change introduces dedicated writers for boolean, character, string, and all standard numeric types (including nullable variants and 64-bit integers, with a note on precision for large UInt64 values). It also adds support for date and time types, including DateTime, DateTimeOffset (converted to local time), and the .NET 6+ DateOnly and TimeOnly types. Additionally, enumeration values are now exported using their display names, with specific handling for Flags attributes to join multiple flag names.

src/Wodsoft.ComBoost.ExcelExport.NPOI/CellWriters · high confidence

Add physical file storage implementation

Introduces a new physical storage module that implements the IStorage interface for managing files on the local file system. This includes a PhysicalStorage class for core operations (reading, writing, deleting files), a PhysicalStorageFile wrapper that exposes file metadata such as modification date, and a PhysicalStorageProvider for instantiation. Configuration is handled via PhysicalStorageOptions, which supports custom root directories and selectors for organizing files into date-based folders and generating unique filenames.

src/Wodsoft.ComBoost.Storage · high confidence

ComBoost 4.0 initial release with multi-targeting and new modules

ComBoost 4.0 is now available, introducing a solution structure that targets .NET Standard 2.0/2.1 and .NET Core 2.1/3.1/6.0. This release adds support for Entity Framework Core and Entity Framework 6, distributed caching via Redis, and new capabilities for gRPC, aggregation, and Excel export. The framework is distributed via MyGet under the MIT license.

(repo-wide) · high confidence

Excel export feature with column customization and nested data support

The Excel export capability is introduced, allowing users to export data to Excel with support for custom column formatting (colors, widths, comments, data formats), nested collection expansion, and data validation. The implementation includes attributes like ExcelExportColorAttribute, ExcelExportWidthAttribute, and ExcelExportExpandableAttribute to configure export behavior, as well as features for overriding column values and handling DateOnly/TimeOnly types.

src/Wodsoft.ComBoost.ExcelExport · high confidence

Initial Excel export core interfaces

The core library now exposes the foundational interfaces for the Excel export feature, including IExcelExportService for initiating exports, IExcelExportContext for managing the workbook lifecycle, and IExcelExportSheet for defining sheet layout and column mappings. These interfaces establish the contract for exporting typed data sequences to Excel workbooks, supporting both synchronous and asynchronous operations.

src/Wodsoft.ComBoost.ExcelExport.Core · high confidence

Initial distributed event and RPC infrastructure

The \Wodsoft.ComBoost.Distributed\ module is introduced, providing the foundational services for distributed communication. This includes a distributed event system with support for features such as retry, delay, grouping, and single-handler execution, alongside a domain RPC framework that defines request/response handling, tracing, and context management.

src/Wodsoft.ComBoost.Distributed · high confidence

Integrate CAP as a distributed event provider

Added a new integration layer that allows the ComBoost distributed event system to use DotNetCore.CAP (v7.2) as its underlying message broker. This change introduces dependency injection extensions to register CAP with optional configuration, along with custom implementations for event publishing, subscription handling, and consumer selection. Users can now leverage CAP's features, such as event grouping and feature-based filtering, within the ComBoost distributed architecture.

src/Wodsoft.ComBoost.Distributed.CAP · high confidence

Introduce ASP.NET Core integration for HTTP domain endpoints

This change adds the \Wodsoft.ComBoost.AspNetCore\ library, enabling the framework to expose domain logic as HTTP endpoints within ASP.NET Core applications. It introduces a new \HttpDomainContext\ to bridge the ASP.NET Core \HttpContext\ with the domain layer, including a value provider that aggregates query strings, form data, and JSON bodies. The library provides DI extensions (\AddAspNetCore\, \AddDomainEndpoint\) to register domain types as routes, a default execution result handler for JSON serialization, and a health check endpoint. It also includes an authentication handler to map ASP.NET Core user claims to the domain context.

src/Wodsoft.ComBoost.AspNetCore · high confidence

Introduce ComBoost gRPC server integration for ASP.NET Core

This release adds a new gRPC server integration layer for ASP.NET Core, enabling developers to expose domain templates as gRPC services. The change introduces a fluent builder API (\IComBoostGrpcBuilder\) for registering templates and configuring method builders, along with dependency injection extensions to wire up the gRPC discovery service and endpoint mapping. It includes built-in support for authentication passthrough, allowing gRPC calls to inherit the current HTTP user context, and provides a dynamic service generation mechanism that handles request/response wrapping, tracing, and exception logging for the exposed RPC methods.

src/Wodsoft.ComBoost.Grpc.AspNetCore · high confidence

Introduce NPOI-based Excel export implementation

This change adds a new NPOI-backed implementation for the Excel export feature, providing the core service, context, and settings classes required to generate Excel workbooks. It includes dependency injection support via \AddNpoiExcelExport\ and introduces a pluggable cell writer system that natively supports \DateOnly\ and \TimeOnly\ types on .NET 6+, alongside standard types like \DateTime\ and \decimal\. The implementation also allows users to override column validations and customize cell writing behavior through the \INpoiExcelExportCellWriter\ interface.

src/Wodsoft.ComBoost.ExcelExport.NPOI · high confidence

Introduce RabbitMQ as a distributed event provider

This change adds a new RabbitMQ-based implementation for the distributed event system, allowing applications to use RabbitMQ for publishing and subscribing to domain events. It includes dependency injection extensions to configure the provider, options for connection settings (including support for Quorum queues and the RabbitMQ Delayed Message Plugin), and health state monitoring for the connection.

src/Wodsoft.ComBoost.Distributed.RabbitMQ · high confidence

Introduce Redis-based distributed semaphore and new domain service module system

This release adds a new Redis integration for distributed locking, providing a \RedisProvider\ that implements \ISemaphoreProvider\ to enable distributed semaphores via StackExchange.Redis, configurable through \RedisOptions\. It also introduces a new module system allowing developers to register and configure domain services via \IDomainModule\ and \ComBoostBuilder\, alongside expanded dependency injection capabilities such as \AddAuthorizationProvider\, \AddGlobalFilter\, and assembly-based service/event handler discovery. Additionally, the framework now supports composite domain context providers, allowing multiple context sources to be ordered and selected, and includes an anonymous authentication handler for simplified testing or unauthenticated scenarios.

src/Wodsoft.ComBoost · high confidence

Introduce domain aggregation with memory and distributed caching support

This change adds a new domain aggregation capability to the ComBoost framework, allowing applications to aggregate domain objects and cache the results. The core aggregation logic is provided in the \Wodsoft.ComBoost.Aggregation\ library, which includes dependency injection extensions to register the aggregator and a builder pattern for configuration. Additionally, a new \Wodsoft.ComBoost.Aggregation.Caching\ library provides concrete caching implementations, enabling users to opt into either in-memory caching (\UseMemoryCache\) or distributed caching (\UseDistributedCache\) via fluent builder methods. This allows developers to reduce redundant data fetching by caching aggregated results based on configurable prefixes and expiration times.

src/Wodsoft.ComBoost.Aggregation · high confidence

Introduce domain-specific gRPC serialization and metadata infrastructure

This change adds the foundational classes and attributes for the ComBoost gRPC layer, enabling structured request/response handling and custom service configuration. It introduces \DomainGrpcRequest\ and \DomainGrpcResponse\ to carry headers (as byte arrays), values, and trace/exception details, alongside \DomainGrpcException\ for serializing error states. Support for primitive types as arguments is provided via the generic \DomainGrpcArgument\<T\>\ classes, while \DomainGrpcMethodAttribute\ and \DomainGrpcServiceAttribute\ allow developers to define custom service names, method names, and endpoint providers. The \DomainGrpcMethodProtobufBuilder\ implements the actual Protobuf serialization logic for these domain types.

src/Wodsoft.ComBoost.Grpc · high confidence

Introduce new gRPC client infrastructure with authentication passthrough and dynamic template generation

The gRPC client library has been rebuilt to support microservice architectures, introducing a new builder pattern (IComBoostGrpcBuilder) for configuring services and endpoints. Key additions include an authentication passthrough handler that automatically injects user context into request headers, and a dynamic template system (GrpcTemplateBuilder) that generates proxy implementations at runtime for domain interfaces. The client now supports customizable call options via handlers, allows primitive types in request/response contracts, and exposes service addresses and options factories for greater configuration flexibility.

src/Wodsoft.ComBoost.Grpc.Client · high confidence

Introduce source generator for automatic domain template interfaces

The library now includes a C\# source generator that automatically creates domain template interfaces based on classes decorated with the \AutoTemplateAttribute\. By analyzing the decorated class's methods and applying filtering logic (such as \IsIncluded\/\IsExcluded\ flags on \AutoTemplateMethodAttribute\), the generator produces a corresponding interface (e.g., \IMyClass\) and, if the class is partial, an implementer class. This allows developers to define domain contracts declaratively without writing boilerplate interface code manually.

src/Wodsoft.ComBoost.SourceGenerators · high confidence

Introduces core domain service framework and infrastructure

This release establishes the foundational architecture for the ComBoost domain service layer. It introduces a comprehensive set of interfaces and classes to manage domain contexts, including \IDomainContext\, \DomainContext\, and \DomainContextAccessor\ for scoped access. The framework now supports a modular configuration system via \IDomainModule\ and \DomainModule\, allowing services to be registered and configured in isolated units. A new event management system (\DomainServiceEventManager\, \IDomainServiceEventManager\) enables asynchronous domain events with handler registration and routing. Parameter binding is handled through a flexible \FromAttribute\ hierarchy (\FromValue\, \FromClaims\, \FromService\), allowing parameters to be sourced from value providers, user claims, or the service container. Additionally, the diff adds support for distributed semaphores (\ISemaphore\, \ISemaphoreProvider\), storage abstractions (\IStorage\, \IStorageProvider\), and health state monitoring (\IHealthStateProvider\), alongside template generation attributes (\AutoTemplateAttribute\, \DomainTemplateImplementerAttribute\) and lifetime strategy controls (\DomainLifetimeStrategyAttribute\).

src/Wodsoft.ComBoost.Core · high confidence

Introduces entity tracking, health monitoring, and database transaction support

The library now provides a new \DatabaseContext\ abstraction that wraps EF Core contexts and enables optional entity tracking via a \TrackEntity\ flag, which controls whether queries return tracked or no-tracking results. A new \DatabaseHealthStateProvider\ runs a background loop to monitor database connectivity and raises state change events, while \DatabaseTransaction\ exposes explicit commit and rollback capabilities. The \EntityContext\ adds methods for adding, updating, and removing entities with lifecycle hooks, supports detaching entities, and includes a \GetAsync\ method that respects the tracking setting. Service registration is simplified via \AddEFCoreContext\, which registers the context, health provider, and per-entity \IEntityContext\ services, and a new extension allows using metadata-defined keys for entity configuration.

src/Wodsoft.ComBoost.EntityFrameworkCore · high confidence

Introduction of AggregateResultAttribute for automatic domain aggregation

A new \AggregateResultAttribute\ has been added to the MVC aggregation module. This attribute implements \IAsyncActionFilter\ to automatically intercept \JsonResult\ and \ObjectResult\ responses from controllers. When applied, it leverages the \IDomainAggregator\ service to asynchronously transform the returned data objects, enabling seamless domain-level aggregation without requiring manual service calls in controller logic.

src/Wodsoft.ComBoost.Aggregation.Mvc · high confidence

Introduction of core aggregation attributes and service interface

The library now exposes the foundational types for its aggregation feature: the AggregateAttribute allows classes to define aggregation rules, including support for multiple key properties via the KeyProperties parameter, and the IDomainAggregatorService interface provides the GetAsync method for retrieving aggregated data by these keys.

src/Wodsoft.ComBoost.Aggregation.Core · high confidence

Introduction of generic EntityBase class with primary key support

A new generic base class, EntityBase\<T\>, has been added to the data core library. This class implements the IEntity\<T\> interface and provides a virtual Id property marked with \[Key\] and \[AllowNull\] attributes, serving as the foundation for entities with primary keys. This change introduces a new inheritance path for entity definitions, allowing developers to leverage a strongly-typed primary key structure.

Wodsoft.ComBoost.Data.Core · high confidence

New ASP.NET Core MVC integration with domain context and file upload support

This change introduces the Wodsoft.ComBoost.Mvc module, providing integration between the ComBoost domain framework and ASP.NET Core MVC. It adds a new dependency injection extension (AddMvc) that registers the MvcDomainContextProvider to bridge HTTP requests with the domain layer, including support for custom authentication handlers. The module implements a custom MvcValueProvider that enhances value resolution by prioritizing route values and route data tokens, and supports binding request/response bodies as Streams. Additionally, it introduces a SelectedFileBinder to enable model binding for uploaded files (ISelectedFile and ISelectedFile\[\]), resolving previous issues with file retrieval.

src/Wodsoft.ComBoost.Mvc · high confidence

New Entity Framework integration with tracking, transactions, and health checks

This release introduces the \Wodsoft.ComBoost.EntityFramework\ module, providing a unified data access layer for Entity Framework. It adds a \DatabaseContext\ wrapper that allows users to toggle entity tracking (changing the default behavior to no-tracking for queries) and enables database transactions via \CreateTransaction\. The module includes a \DatabaseHealthStateProvider\ for automatic database availability monitoring and registers entity contexts via dependency injection using the new \AddEFContext\ extension. Additionally, it supports custom LINQ extensions through a \WrappedAsyncQueryable\ provider that translates async query methods to the underlying EF provider.

src/Wodsoft.ComBoost.EntityFramework · high confidence

New FromEntity attribute for parameter binding

Added the FromEntityAttribute class to enable automatic resolution of entity objects from domain context parameters. This attribute allows method parameters to be bound to entities by key value, supporting optional or required constraints and handling nullable key types, thereby simplifying data access in service methods.

src/Wodsoft.ComBoost.Data.Core/Wodsoft/ComBoost · high confidence

New MVC data integration layer with entity controllers and model binding

The \src/Wodsoft.ComBoost.Mvc.Data\ package now provides a complete set of ASP.NET Core MVC helpers for data-driven applications. This includes \EntityApiController\ and \EntityDTOController\ for exposing CRUD operations (including range/bulk create, edit, and remove) as JSON APIs, and \EntityController\ for traditional server-rendered views. A custom \EntityModelBinder\ and its provider are registered to automatically resolve entity instances from query strings or model binding based on primary key metadata. Additionally, HTML helper extensions (\Editor\, \Viewer\) and UI components (\ItemButton\, \ViewButton\) are added to simplify rendering entity forms and list actions in Razor views.

src/Wodsoft.ComBoost.Mvc.Data · high confidence

New aggregation data service with multi-key support

The \src/Wodsoft.ComBoost.Aggregation.Data\ package now provides a new \DomainAggregatorEntityService\ and corresponding DI extensions (\AddAggregatorService\) that enable domain-level data aggregation. This service allows retrieving aggregated entities by resolving multiple key properties from string arrays, mapping them to the appropriate entity types via AutoMapper, and querying the underlying data context. This change introduces a new capability for handling complex key-based lookups in aggregation scenarios.

src/Wodsoft.ComBoost.Aggregation.Data · high confidence

New authentication and authorization module with handler-based providers

The security layer now includes a new authentication module that supports multiple domain context providers and allows configuring authentication via pluggable handlers. Users can register authentication handlers with specific ordering through AuthenticationProviderOptions, and the system iterates through them to find a successful identity, falling back to an anonymous user if none succeed. A new authorization provider interface (IAuthorizationProvider) enables role-based checks within domain execution contexts, and an AuthenticationRequiredMode enum defines whether authentication succeeds if any or all configured roles pass. The legacy IAuthenticationProvider interface is marked obsolete in favor of IDomainContext.User.

src/Wodsoft.ComBoost.Security/Security · high confidence

New authorization module with role-based access control

This change introduces a new authorization module within the security library, adding the \AuthorizeAttribute\ class and the \IPermission\ interface. The \AuthorizeAttribute\ acts as a domain service filter that enforces access control by checking user roles against an \IAuthorizationProvider\; it requires authentication if no specific roles are defined, or validates that the user possesses all specified roles, throwing an \UnauthorizedAccessException\ otherwise. The \IPermission\ interface defines the contract for user identity and role checking, supporting both static and dynamic role resolution.

src/Wodsoft.ComBoost.Security · high confidence

New data annotation attributes for entity metadata and validation

The \src/Wodsoft.ComBoost.Data.Core/System/ComponentModel/DataAnnotations\ directory now includes a suite of new attributes to enhance entity modeling and validation. \CustomDataTypeAttribute\ and the \CustomDataType\ enum allow properties to be explicitly typed (e.g., Date, Gender, PhoneNumber, File) for better UI rendering and handling. \MultipleKeyAttribute\ enables defining composite keys on entities or structs. \DistinctAttribute\ provides database-backed uniqueness validation with configurable case sensitivity. \HideAttribute\ controls property visibility across Create, View, Edit, and Detail operations. \ParentAttribute\ defines hierarchical relationships between entities. \PasswordAttribute\ specifies custom methods for password hashing. \EntityAuthenticationAttribute\ and \PropertyAuthenticationAttribute\ manage role-based access control (View, Add, Edit, Remove) at the entity and property levels, respectively. \SearchableAttribute\ marks properties as searchable.

src/Wodsoft.ComBoost.Data.Core/System/ComponentModel/DataAnnotations · high confidence

New data-bound view and edit model components

The System.ComponentModel namespace now includes a set of new interfaces and classes to support data binding and editing in the core library. This introduces IViewModel and ViewModel for managing paginated data queries with properties like TotalCount and CurrentPage, IEditModel and EditModel for handling single-item editing with error messages, and IUpdateModel/UpdateModel along with IUpdateRangeModel/UpdateRangeModel for managing single and batch update operations. These components provide a structured way to handle view state, validation errors, and data persistence in the application.

src/Wodsoft.ComBoost.Data.Core/System/ComponentModel · high confidence

New entity domain services and DTO context for CRUD operations

The \src/Wodsoft.ComBoost.Data\ module introduces a new architecture for entity management, adding \EntityDomainService\ and \EntityDTODomainService\ to handle Create, Read, Update, and Delete (CRUD) operations. These services are wired up via new dependency injection extensions (\DomainDataDependencyInjectionExtensions\) and rely on a new \EntityDtoContext\ to manage the mapping between entities and DTOs using AutoMapper. The update includes a comprehensive set of domain events (e.g., \EntityPreCreateEventArgs\, \EntityCreatedEventArgs\) to allow interception and modification of the data flow, as well as new filter attributes like \EntityPagerFilterAttribute\ and \EntityViewModelFilterAttribute\ to standardize pagination and view model population.

src/Wodsoft.ComBoost.Data · high confidence

New mock testing infrastructure for domain services and events

The \src/Wodsoft.ComBoost.Mock\ package now provides a comprehensive set of components to facilitate unit and integration testing. It introduces a mock authentication system (\MockAuthenticationHandler\, \MockAuthenticationSettings\) that allows tests to inject specific user identities and roles, along with an \AddAuthenticationPassthrough\ option to bridge authentication context between mock and real service scopes. The package includes an in-memory distributed event provider (\MockInMemoryEventProvider\) supporting features like single-handler enforcement, retry logic, and asynchronous event handling, accessible via \UseInMemory\ extensions. Additionally, it offers helper extensions (\DomainMockExtensions\) to run actions within a domain execution context (\RunAsDomainMethodAsync\) and raise events directly from a host instance, while deprecating the legacy \IMock\ interface in favor of standard \IHost\ patterns.

src/Wodsoft.ComBoost.Mock · high confidence

New source generators for ASP.NET Core domain actions and endpoints

This change introduces two new Roslyn source generators in the AspNetCore module: \DomainActionSourceGenerator\ and \DomainEndpointSourceGenerator\. The action generator automatically creates controller-like methods for classes implementing \IDomainAction\, mapping template methods to HTTP verbs (GET, POST, PUT, DELETE) based on naming conventions or explicit attributes, and handling parameter binding via \\[FromQuery\]\ or \\[FromBody\]\. The endpoint generator processes classes marked with \DomainEndpointAttribute\, generating code that routes HTTP requests to the underlying domain template methods, handling query/body parsing and basic error handling. These generators allow developers to define API endpoints declaratively using domain templates without writing boilerplate controller code.

src/Wodsoft.ComBoost.SourceGenerators.AspNetCore · high confidence

Behavioural changes

Added AllowNullAttribute for .NET Standard 2.0 compatibility

To support nullable reference types in .NET Standard 2.0, the library now includes a local implementation of the \AllowNullAttribute\ within the \System.Diagnostics.CodeAnalysis\ namespace. This attribute is conditionally compiled for \NETSTANDARD2\_0\ targets, allowing developers to explicitly mark fields, parameters, and properties as accepting null values, thereby aligning with modern nullable-aware coding patterns on older frameworks.

src/Wodsoft.ComBoost.Data.Core/System/Diagnostics · high confidence

Added assembly metadata for the AspNetCore Security module

The AspNetCore.Security module now includes an AssemblyInfo.cs file that defines standard assembly metadata, including the company name (Wodsoft), product name, and COM visibility settings (disabled). This ensures the assembly is correctly identified in runtime environments and handles COM interop visibility appropriately.

src/Wodsoft.ComBoost.AspNetCore.Security · high confidence

Disabled aggregation cache invalidation DI extensions

The dependency injection extensions for registering aggregation cache invalidation handlers (for both memory and distributed caches) in DomainAggregationCachingDataDependencyInjectionExtensions.cs have been commented out. This effectively disables the automatic registration of handlers that clear cached data when domain objects change, meaning users will no longer get automatic cache invalidation via this specific DI extension point unless they re-enable or implement it elsewhere.

src/Wodsoft.ComBoost.Aggregation.Caching.Data · high confidence

Domain templates now return List DTOs for Create and Edit operations

The Create and Edit methods in the entity domain templates (IEntityDomainTemplate and IEntityDTODomainTemplate) have been updated to return a List DTO object mapped from the entity, rather than the previously returned single entity model. This change aligns the return types of Create and Edit with the List operation, providing a consistent List DTO response for all write operations.

src/Wodsoft.ComBoost.Data.Core/Wodsoft/ComBoost/Data · high confidence

New LINQ query interfaces and extension methods for async operations

The library introduces new interfaces (\IIncludableQueryable\, \IWrappedAsyncQueryProvider\) and a comprehensive set of async LINQ extension methods (such as \AllAsync\, \AnyAsync\, \AverageAsync\) in \QueryableExtensions.cs\ to support asynchronous query execution. This change replaces the previous \IAsyncQueryable\ approach with a provider-based model that delegates async execution, enabling better integration with wrapped query providers. Additionally, \UpdateCaller.cs\ is added to support property-level update operations, and \Wrap\/\Unwrap\ methods are provided to manage entity wrapping within the query pipeline.

src/Wodsoft.ComBoost.Data.Core/Wodsoft/ComBoost/Data/Linq · high confidence

New entity model and context infrastructure

This change introduces the core entity model and context infrastructure for the data layer. It defines base classes like EntityBase and UserBase, along with interfaces such as IEntity, IEntityContext, and IDatabaseContext to standardize entity behavior and database interactions. New extension methods in DatabaseContextExtensions and EntityContextExtensions provide utilities for retrieving wrapped contexts, dynamic queries, sorting, and parent-based filtering. Additionally, support for database transactions via IDatabaseTransaction and entity detachment in IEntityContext is added, while the IsNewCreated property is marked obsolete.

src/Wodsoft.ComBoost.Data.Core/Wodsoft/ComBoost/Data/Entity · high confidence

Refactored entity metadata system with improved key handling and type support

The entity metadata subsystem in \src/Wodsoft.ComBoost.Data.Core/Wodsoft/ComBoost/Data/Entity/Metadata\ has been refactored to improve flexibility and type safety. \ClrEntityMetadata\ now prioritizes the \MultipleKeyAttribute\ for defining composite keys, falling back to conventional property names only when no explicit key attributes are present. \ClrPropertyMetadata\ now supports \DescriptionAttribute\ as a fallback for property display names and allows custom \TypeConverter\ registration via attributes. The system also adds support for .NET 6+ \DateOnly\ and \TimeOnly\ types, and introduces \TryGetPropertyInfo\ on \IPropertyMetadata\ to safely expose underlying reflection data. \EntityDescriptor\ uses thread-safe \ConcurrentDictionary\ for metadata caching.

src/Wodsoft.ComBoost.Data.Core/Wodsoft/ComBoost/Data/Entity/Metadata · high confidence

Test coverage

Added gRPC service test fixtures for authentication and generic models; Added integration tests for ASP.NET Core domain endpoint binding; Added integration tests for EntityDTOController CRUD operations; Added integration tests for RabbitMQ distributed event handling; Added test coverage for UserController aggregation; Added test entity definitions for organization and user aggregation; Added test entity models for data access and relationship testing; Added test fixtures for domain service templates and lifecycle; Added test suite for gRPC service integration and serialization; Added tests for EntityDomainService CRUD and validation; Added tests for InMemory event provider and single handler support; Added tests for authentication, service lifecycle, and domain context features; Added tests for distributed event handling with CAP; Added tests for the AutoTemplate source generator; Added unit tests for Entity Framework Core extension methods; Added unit tests for Entity Framework database context operations; Added unit tests for MVC domain controller integration; Initial test suite for NPOI-based Excel export service; Initial test suite for domain aggregation and JSON serialization.

Dependencies

ComBoost framework dependency and project structure overhaul

The ComBoost framework has undergone a comprehensive update to its underlying dependencies and project structure. Key changes include upgrading Entity Framework Core support to versions 5.0, 7.0, 9.0, and 10.0, and introducing .NET 10 support across core modules. Distributed transaction capabilities have been upgraded to CAP v7.2, and gRPC dependencies have been updated to version 2.48.0. Additionally, the framework now includes new modules for Excel export (using NPOI and SkiaSharp), enhanced source generators, and updated ASP.NET Core integration packages, while standardizing nullable reference types and C\# 10 language features across the codebase.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 35 → 37 (+2.3)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 59 → 58 (-1.6)
  • Architecture 78 → 89 (+10.7)
  • Maturity 52 → 51 (-0.3)
  • Readiness 28 → 30 (+1.8)
  • Security 23 → 27 (+3.8)
  • Event-Driven 100 → 100 (+0.0)
  • Performance 68 → 68 (-0.3)

Resolved (75)

  • Bounded contexts not declared
  • CommentedOutCode (src/Wodsoft.ComBoost.Aggregation.Caching.Data/DomainAggregationCachingDataDependencyInjectionExtensions.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Core/FromObjectAttribute.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Core/FromObjectAttribute.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Core/FromObjectAttribute.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Data/Wodsoft/ComBoost/Data/AutoMapperExtensions.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Data/Wodsoft/ComBoost/Data/AutoMapperExtensions.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Data/Wodsoft/ComBoost/Data/AutoMapperExtensions.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Data/Wodsoft/ComBoost/Data/EntityPagerExtension.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Data/Wodsoft/ComBoost/Data/EntityPagerExtension.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Mock/MockPrincipal.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Mock/MockPrincipal.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Mock/MockPrincipal.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Mock/MockPrincipal.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Mock/MockPrincipal.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Mock/MockPrincipal.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Mock/MockPrincipal.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Mock/MockPrincipal.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Mock/MockPrincipal.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.Mock/MockSecurityProvider.cs)
  • …and 55 more

New (290)

  • CRAP 1054: DomainRabbitMQEventProvider.RegisterEventHandlerAsync (src/Wodsoft.ComBoost.Distributed.RabbitMQ/DomainRabbitMQEventProvider.cs)
  • CRAP 1054: DomainRabbitMQEventProvider.RegisterEventHandlerAsync (src/Wodsoft.ComBoost.Distributed.RabbitMQ/DomainRabbitMQEventProvider.cs)
  • CRAP 110: DistinctAttribute.IsValid (src/Wodsoft.ComBoost.Data.Core/System/ComponentModel/DataAnnotations/DistinctAttribute.cs)
  • CRAP 154: DomainRabbitMQEventProvider.SendEventAsync (src/Wodsoft.ComBoost.Distributed.RabbitMQ/DomainRabbitMQEventProvider.cs)
  • CRAP 154: DomainRabbitMQEventProvider.SendEventAsync (src/Wodsoft.ComBoost.Distributed.RabbitMQ/DomainRabbitMQEventProvider.cs)
  • CRAP 202: DomainRabbitMQEventProvider.CanHandleEvent (src/Wodsoft.ComBoost.Distributed.RabbitMQ/DomainRabbitMQEventProvider.cs)
  • CRAP 208: DomainGrpcArgumentHelper.GetArgumentType (src/Wodsoft.ComBoost.Grpc/DomainGrpcArgument.cs)
  • CRAP 790: DomainAggregationsBuilder.BuildType (src/Wodsoft.ComBoost.Aggregation/DomainAggregationsBuilder.cs)
  • CommentedOutCode (src/Wodsoft.ComBoost.ExcelExport.NPOI/NpoiExcelExportService.cs)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no licence statement (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (10 lines × 2) (src/Wodsoft.ComBoost.Aggregation/DomainAggregationsBuilder.cs)
  • Duplicated block (10 lines × 2) (src/Wodsoft.ComBoost.Aggregation/DomainAggregationsBuilder.cs)
  • Duplicated block (10 lines × 2) (src/Wodsoft.ComBoost.EntityFramework/WrappedAsyncExpressionVisitor.cs)
  • Duplicated block (10 lines × 2) (src/Wodsoft.ComBoost.ExcelExport.NPOI/NpoiExcelExportService.cs)
  • Duplicated block (10 lines × 3) (src/Wodsoft.ComBoost.ExcelExport.NPOI/NpoiExcelExportService.cs)
  • Duplicated block (10 lines × 4) (src/Wodsoft.ComBoost.Data/Wodsoft/ComBoost/Data/EntityDTODomainService.cs)
  • Duplicated block (109 lines × 2) (src/Wodsoft.ComBoost.SourceGenerators.AspNetCore/SyntaxHelper.cs)
  • Duplicated block (10–11 lines × 2) (src/Wodsoft.ComBoost.EntityFramework/WrappedAsyncExpressionVisitor.cs)
  • …and 270 more

Changes since last survey

  • 28 commits — 18 feature/other, 10 fixes

By area

  • src/Wodsoft.ComBoost.ExcelExport.NPOI — 10 commits
  • src/Wodsoft.ComBoost.ExcelExport — 9 commits
  • test/Wodsoft.ComBoost.ExcelExport.Test — 3 commits
  • src/Wodsoft.ComBoost.Data — 1 commit
  • src/Wodsoft.ComBoost.Data.Core — 1 commit
  • src/Wodsoft.ComBoost.ExcelExport.Core — 1 commit
  • src/Wodsoft.ComBoost.Grpc — 1 commit
  • src/Wodsoft.ComBoost.Mock — 1 commit
  • test/Wodsoft.ComBoost.Mvc.Data.Test — 1 commit

Notable commits

  • fix: Fix DateTime DateOnly TimeOnly data format
  • fix: Fix DateTime export value display
  • fix: Fix GetExportSheet
  • fix: Fix NpoiExcelExportCellDateTimeOffsetWriter
  • fix: Fix commit
  • fix: Fix create column
  • fix: Fix property compare
  • fix: Fix sub class property compare
  • fix: Fix tests
  • fix: Update protobuf wrapper package to fix byte array serialization
  • change: Add DateOnly and TimeOnly export support
  • change: Add NpoiExcelExportContext paramter to GetSheetName
  • change: Add OverrideColumn function to ExcelExportExtensions
  • change: Add bool TryGetPropertyInfo(out PropertyInfo?) to IPropertyMetadata
  • change: Add default writer
  • change: Add get export column for ExcelExportService.
  • change: Add new virtual function for override export
  • change: Add nullable DateTime data format
  • change: Defaults create headers
  • change: Excel export feature
  • …and 8 more

API surface

  • Unchanged — 4 HTTP endpoints

Architecture

  • Unchanged — 6 containers · 1 contexts · 0 edges

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

Kation/ComBoost was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit bec93d8b64f9e1f82a5c05ed218aff5f9446fd87 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.