Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ The [complete JavaScript guide](README.web.md) retains all existing API examples
## Blazor

```sh
dotnet add package DynamicDataWeb.Blazor --version 0.2.1
dotnet add package DynamicDataWeb.Blazor --version 0.2.2
```

The .NET 8/.NET 10 package bundles the real engine and RxJS for interactive WebAssembly and Server, without a consumer npm/CDN dependency. It provides typed `SourceCache<T,TKey>` and `SourceList<T>`, full collection notifications, `DynamicDataProvider`, and `DynamicDataView<TItem>` with Razor rendering. Native object/function handles also expose advanced operators.
Expand Down
6 changes: 5 additions & 1 deletion blazor/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# DynamicDataWeb.Blazor

Install `DynamicDataWeb.Blazor` 0.2.1 for .NET 8/.NET 10. The package includes the actual JavaScript engine and RxJS as local static assets for interactive WebAssembly and Server.
Install `DynamicDataWeb.Blazor` 0.2.2 for .NET 8/.NET 10. The package includes the actual JavaScript engine and RxJS as local static assets for interactive WebAssembly and Server.

## Collections and Razor views

Expand All @@ -21,3 +21,7 @@ Create the cache after provider `Ready`, and keep it in the parent as shown in t
`ConnectAsync` returns the real change stream. Use native method calls and the bundled `Rx` namespace through `BrowserModule`; returned operator functions use `InvokeReferenceAsync` and can be passed into native pipelines without losing identity. Selectors/comparers required synchronously by the engine must execute as browser callbacks, not Server .NET delegates.

See [INTEGRATION.md](INTEGRATION.md) for hosting, optional native Razor factories, streaming and ownership. The package is self-contained; its pinned shared source is not a Dockyard runtime dependency. The wrapper complements typed helpers with native API access and retains the engine's documented compatibility limits.

## Lifecycle in 0.2.2

The shared runtime adds deterministic visual/template cleanup, callback suppression after removal, late-import cleanup and awaitable Razor factory disposal. Independent template roots retain state during synchronous DOM movement and coalesce parameter updates. New managed and JavaScript regressions plus actual-package WebAssembly/Server movement/update/recreation tests run alongside collection and RxJS checks.
13 changes: 4 additions & 9 deletions blazor/RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
# DynamicDataWeb.Blazor 0.2.1
# DynamicDataWeb.Blazor 0.2.2

Updates the pinned interop runtime to the tested Dockyard revision `1c895b7184451071e1c7131063249d2d9eb145b9`, without introducing a Dockyard runtime dependency.
Adopts validated shared runtime c833be49d472583b6f56225862e0aa7d201c1da7 from merged Dockyard PR #5. Fixes concurrent visual disposal, late Razor imports/creation, queued callbacks after removal and retained cleanup failures. Includes awaitable template teardown, coalesced updates and lifecycle state properties.

- Preserve cyclic/deep native argument graphs and shared callback identity without mutating inputs.
- Await concurrent native/module/subscription cleanup and asynchronous unsubscribe; continue cleanup after individual failures.
- Preserve property, method and disposal access through native callable handles.
- Honor initialization-wait cancellation without cancelling other callers; prevent disposed owners from starting late native work.
- Add `CallFunctionJsonAsync<T>` for complete streamed callable results.
- Run expanded shared JavaScript and managed regressions against actual .NET 8/.NET 10 package consumers.
Typed SourceCache/SourceList services, full DTO notifications, native RxJS operators and live Razor views remain intact. Root and package guides identify the new version. Eight shared JavaScript lifecycle cases, managed visual/template tests and package-restored template movement/update/recreation run on .NET 8/.NET 10 in WebAssembly and Interactive Server.

Typed caches/lists, RxJS pipelines, live Razor views, complete collection notifications and all native interop APIs remain available. WebAssembly and Interactive Server samples are validated before publication; downloaded public NuGet payloads are compared before creating the versioned release.
NuGet publication remains validation-gated with complete public-payload verification and package/symbol/sample release artifacts. No runtime Dockyard/npm/CDN dependency is introduced. Native callback and engine compatibility contracts remain unchanged.
8 changes: 7 additions & 1 deletion blazor/Version.props
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
<Project><PropertyGroup><Version>0.2.1</Version><BlazorFrameworkVersion Condition="'$(TargetFramework)' == 'net8.0'">8.0.28</BlazorFrameworkVersion><BlazorFrameworkVersion Condition="'$(TargetFramework)' == 'net10.0'">10.0.10</BlazorFrameworkVersion></PropertyGroup></Project>
<Project>
<PropertyGroup>
<Version>0.2.2</Version>
<BlazorFrameworkVersion Condition="'$(TargetFramework)' == 'net8.0'">8.0.28</BlazorFrameworkVersion>
<BlazorFrameworkVersion Condition="'$(TargetFramework)' == 'net10.0'">10.0.10</BlazorFrameworkVersion>
</PropertyGroup>
</Project>
Loading