Represents the NuGet versions.
- Fixed: The completion stage was incorrectly using the
EntityKeyversusTableKey(where using global identifiers) for the version hashing resulting in re-publishing where not required; code-generation template corrected and is required for fix.
- Fixed: Generated
ExecuteBatch.sqlfixed to not invokesys.fn_cdc_get_min_lsntwice but use returned result as intended.
- Enhancement: Major "Sidecar" feature added based on feedback from the community.
- The existing implementation required all generated supporting database capabilities to be within the "source" database itself; a new option has been added to generate a separate "sidecar" database to manage. This minimizes the impact on the "source" database.
- The "source" database will still require the database CDC (change-data-capture) capabilities to be enabled.
- The new
EntitySidecarOrchestratorBasewill invoke a single statement to leverage the CDC capabilities and perform the resulting data selection; see theContactExecuteBatch.sql. - The required
NTangle(and optionalOutbox) schema(s), table(s) and stored procedures will be generated within the "sidecar" database. - Note that there are no cross database dependencies; as such, the "sidecar" database can be hosted separately, be on a difference versions, etc. as required. The .NET orchestrator logic will require access to both databases to function.
- An additional
ExecuteExplicitAsyncmethod has been added to enable explicit primary keys to be passed bypassing CDC; useful for one-offs, or where triggering without CDC (i.e. Debezium, etc) to get the best of both worlds. - Support now for
net8.0+ only; older .NET versions will need to use the existing implementation or upgrade.
- Notes:
- This version contains a number of breaking and generated artefact changes; all existing generated artefacts should re-generated.
- It is recommended migrating to the new "sidecar" feature where possible; the existing implementation will be deprecated in the future.
- The
NTanglesolution template (dotnet new ntangle) has been updated to default to the new "sidecar" feature.
- The
- Fixed: As a result of the
v2.6.0enhancements the generatedIdentifierMappingMapper.csandVersionTrackingMapper.csare not required. This fix will ensure these files are no longer generated; as such these should be removed from any existing solution after a re-gen. - Fixed: The base
EntityOrchestratorclasses have also been corrected to remove theIdentifierMappingMapperandVersionTrackingMapperreferences.
- Enhancement: Database code-generation defaults to the use of JSON-serialized parameters versus UDT/TVP to minimize the need for additional database objects; specifically User-Defined Types (UDT).
- This will now require a SQL Server version of 2016 or later; use earlier DbEx versions that use UDT/TVP which are supported on earlier SQL Server versions.
- Enhancement: All code-generated stored procedures now use
CREATE OR ALTER; again, requires SQL Server 2016 or later.
- Fixed: Updated
CoreEx(v3.15.0) and other dependencies. - Fixed: Simplify event outbox C# code-generation templates for primary constructor usage.
- Fixed: Updated
CoreEx(v3.13.0) and other dependencies.
- Enhancement: Updated
DbEx(v2.5.0) andCoreEx(v3.12.0) and other dependencies.
- Enhancement: Updated
DbEx(v2.4.0) andCoreEx(v3.9.0) and other dependencies. - Enhancement: Updated the
dotnet new ntangletemplate to targetnet8.0and isolated functions.
- Fixed: Updated
DbEx(v2.3.15) andCoreEx(v3.8.1) and other dependencies. - Fixed: Updated
OnRamp(2.0.0) which necessitated internal change fromNewtonsoft.Json(now deprecated) toSystem.Text.Json.
- Fixed: Updated
DbEx(v2.3.13) andCoreEx(v3.6.1) and other dependencies. - Fixed: Added
net8.0support. - Fixed: The
EntityOrchestratormapping code generation for sub-classes was not always being generated correctly; non-compiling missing,formatting corrected.
- Fixed: Updated
DbEx(v2.3.12) andCoreEx(v3.4.1).
- Fixed: Stored procedure
spXxxBatchResetupdated to correctly set the completed date within the batch tracking table.
- Enhancement: Added new
spXxxBatchResetstored procedure to reset the bacth tracking to the latest lsn. Can be used to fix data loss batch by completing with the latest lsn. Also useful to support unit testing. - Fixed: Updated
DbEx(v2.3.11) andCoreEx(v3.3.1).
- Fixed: Updated
DbEx(v2.3.8) andOnRamp(v1.0.8).
- Enhancement: Separated the code-generation tooling logic out into a separate package
NTangle.CodeGenas this is not required to be deployed with the underlying runtime logic. This is a breaking change, in that previous references will need to be updated to the new package. - Enhancement: The version tracking table has had a timestamp column added.
- Fixed: Entity code-generation now correctly references the actual underlying table name versus the alias.
- Fixed: Joins without
IdentifierMappingwere incorrectly generated with mapping code where the root table has mapping, and the joined table did not. TheGlobalIdJSON name can now also be renamed.
- Fixed: Updated
CoreEx(v3.3.0) andDbEx(v2.3.6).
- Fixed: Issue with
Joinswhere theJoinToproperty within the YAML was validating against an underlying table name versus the unqiueTable.Nameproperty (as intended). TheJoinToSchemaproperty should have been internal only and has not been corrected.
- Enhancement: Added
publisheroption with valuesConsole|Function|None, whereConsoleis the default, andFunctionrepresents Azure Functions, for theNTangle.Templatepackage. - Fixed: The
IdentifierMappingMapper.csfile was incorrrectly being generated when not required.
- Enhancement: Added
CdcService<TOrchestrator, TEntity>that provides the base Change Data Capture (CDC) self-orchestrated service capabilities; used for the likes of Azure Functions. - Enhancement: Added
service: ServiceYAML configuration to enable the newCdcService<TOrchestrator, TEntity>code-generation. TheIServiceCollectionExtensionscode-generation also updated to include. - Fixed: Primary table
excludeColumnsdid not previously allow exclusion of columns used in join or key. - Fixed: Where
nameandtablewere different the correct value was not always being used for the YAML validation.
- Enhancement: Updated
CoreEx(v3.0.0) andDbEx(v2.3.5). - Enhancement: Added
net6.0andnet7.0support in addition to .NET Standard to theNTanglepackage. This will allow access to additional features per version where required, and overall performance improvements. - Enhancement: Included C# code-generation templates updated; target
net6.0+ only.
- Fixed:
TableConfig.BatchTrackingTableJSON serialization name corrected. - Fixed: Commented Azure Service Bus event publishing code in template solution corrected.
- Note: This version contains a number of breaking changes and generated artefact file name changes; all existing generated artefacts should be deleted and re-generated. Where possible it is recommended to create new using the template solution and copy across existing non-generated artefacts, such as the NTangle YAML etc.
- Enhancement: Removed need for
UseSqlServerforCodeGenConsoleas this is the only supported database option. NewUseDeploymentOptionto enable deployment option override; defaults toDeploymentOption.DbEx. - Enhancement: Leverage
EventDataFormatterandIEventPublisher.CreateValueEventfor improved CoreEx consistency. - Enhancement:
VersionTrackingtable has hadObjectcolumn replaced withSchemaandTablecolumns to be explicit/consistent. - Enhancement: Improved configuration override capabilities using
appsettings.json. - Enhancement: Template solution has refactored baseline code output.
- Enhancement: Updated
CoreEx(v2.10.1) andDbEx(v2.3.4) dependencies. - Fixed: Create and update events not published where a subsequent delete occurs; i.e. the entity is physically deleted. The create and update cannot be published as the entity contents are no longer available, and there is not way to reliable way to construct.
- Fixed: Previously where a create (optional updates) and delete occured within a batch no events were published; now the delete event is published as a minimum to be consistent with the preceeding fix.
- Fixed: Code-generated entities correctly invoke
IdentifierMappingasynchronously using anawait.
- Enhancement: Updated
CoreEx(v2.5.1) andDbEx(v2.3.2); this results in minor breaking changes that will need to be addressed. - Issue 25: Resolved code generation error where a database table name resulted in an alias of
r. - Issue 26: Resolved duplication of models when generating code.
- Enhancement: Updated
CoreExandDbEx; key changes related to:IPrimaryKeyand event outbox service ownership.
- Fixed: Event Outbox dequeue and send publishing failure will log and continue (allowing retry); versus fail process.
- Enhancement: Template updated to show code (commented out) for Azure Service Bus event publishing.
- Enhancement: Updated
DbExdependency to latest.
- Enhancement: Updated
CoreExandDbExdependencies to latest. This is to account for the move of the common ADO-based database access logic fromDbExtoCoreEx.
- Enhancement: Updated
CoreEx,OnRampandDbExdependencies; including other non-Avanade dependencies to latest. - Enhancement: Template solution now outputs .NET 6.0 projects.
- Enhancement: Breaking Changes - Integrated latest
CoreExto replace the previous entity capabilities; integrated latestDbExto provide the SQL Server Event Outbox capabilities. Also, leverages the in-process event outbox publishing to reduce message send latency, with the database event outbox acting as an audit/backup for resiliency. - Issue 10: Validation added to
JoinConfigto ensure hierarchical cicrular references result in an appropriate error during code-generation; versus entering into an endless loop.
- Issue 7: The
TableobjectNameproperty can now be used to rename a table within an NTangle context and must be unique. TheTableproperty which automatically defaults fromName, is used to specify the actual database table name where different. - Issue 7: The
VersionTrackingtable has been updated with a new columnObjectas a replacement forSchemaandTableas the uniqueNameneeds to be used. Will be formatted asSchema_Name. - Issue 7: The
Tableobject now supports none or moreWhereconditions to filter the published data where applicable. - Enhancement: All
EventDataproperties are now persisted to the outbox, previouslySubjectandActionwere not. TheEventDatacolumn has been renamed toDataand will now only containDatanot the fullEventDatacontents (no need to duplicate the other columns).
- New: Initial publish to GitHub. This was originally harvested from, and will replace, the core CDC code-generation and runtime within Beef.