All Versions
Latest Version
Avg Release Cycle
58 days
Latest Release
928 days ago

Changelog History
Page 1

  • v4.1.1 Changes

    November 24, 2020

    🐛 Bug Fix

    • 🛠 Fix Web API endpoint not responding when the client update does not yield any server response.

    📦 NuGet symbol packages (.snupkg) are included to provide better debugging experience.

  • v4.1 Changes

    June 30, 2020

    🚀 This release provides improved support for asynchronous execution within a view model and allow the use of methods to express view model commands.

    🔋 Features

    • ➕ Add OnCreatedAsync virtual method in BaseVM to allow asynchronous view model initialization.


    public class MyViewModel: BaseVM{ ... public override async Task OnCreatedAsync() { MyPropertyValue = await SomeAsyncMethod(); } }
    • 👌 Support using method instead of Action property.


    vm.$dispatch({Submit: {/\*form data\*/}});
    public class MyForm : BaseVM{ // OLD:public Action\<FormData\> Submit { get =\> formData =\> SubmitForm(formData); } // NEW:public void Submit(FormData formData) =\> SubmitForm(formData); }
    • 👌 Support asynchronous action methods. They are awaitable, which means you no longer need to call PushUpdates.


    vm.$dispatch({Submit: {/\*form data\*/}});
    public class MyAsyncForm : BaseVM{ public string Message { get =\> Get\<string\>(); set =\> Set(); } public async Task Submit(FormData formData) { await SubmitFormAsync(formData); Message = "Submitted"; } }
    • Provide [ItemKey] attribute to specify list item keys for CRUD operations (#205).

      // OLD:public string Employees_itemKey => nameof(EmployeeInfo.Id);public IEnumerable<EmployeeInfo> Employees { get; private set; }// NEW:[ItemKey(nameof(EmployeeInfo.Id)]public IEnumerable<EmployeeInfo> Employees { get; private set; }

    🐛 Bug Fixes

    • 🛠 Fix the middleware that extract headers so that the client can update the headers through dispatch (#251).

    🔔 Notice

    🚦 The library for ASP.NET Framework "DotNetify.SignalR.Owin" is no longer maintained, with v3.6.1 being the last published version. The source code was moved out the main repo and archived here. However, private support is possible with sponsorship.

  • v4.0 Changes

    June 01, 2020

    💥 This release provides better Typescript support by migrating the majority of code to Typescript. Some type names have been renamed and will cause breaking changes if you're using type definitions from previous versions.

    🐛 Bug fixes

    • ➕ Add multi-instance support to MulticastVM (#248).
    • 🛠 Fix routing check for React component (#245).
    • 🛠 Fix routing to use React.hydrate only if SSR is enabled.
  • v3.7 Changes

    May 14, 2020

    🚀 This release provides the much-needed enhancements to the React router, i.e. support for lazy-loading through integration with Webpack code splitting, 404 error handling, and server-side rendering.


    🔋 Features

    • 👌 Support lazy-loaded routes by allowing onRouteEnter to return a promise object and defer the routing until the promise (which should be used to dynamically import the view components) is resolved.
    • Include onRouteEnter in the connect's options argument.
    • ➕ Add enableSsr (client-side) and useSsr (server-side) APIs to support server-side rendering.
    • Router will now request '/404.html' when the path cannot be resolved.
    • 👍 Allow the route template to accept wildcard (*) URL pattern to catch 404 errors.

    🐛 Bug Fixes

    • 🛠 Fix useConnect to merge the existing state with the new state instead of replacing it (#237).
    • 🛠 Fix routing so it can match "/" paths.
    • 🛠 Fix JObject.Parse exception in Update_VM when using System.Text.Json (#239).
  • v3.6.2 Changes

    March 15, 2020

    🐛 Bug Fixes

    • 🛠 Fix Update_VM failing with MessagePack (#227).
  • v3.6.1 Changes

    November 29, 2019

    🐛 Bug Fixes

    • 🛠 Fix auth middleware failure when using MessagePack protocol (#225).
    • 🛠 Fix master view model not participating in the view model filter pipeline (#226).
  • v3.6 Changes

    November 25, 2019

    🔋 Features

    • 👌 Support SignalR using System.Text.Json serialization (#220).
    • Add hubOptions.connectionBuilder settings to support configuring MessagePack (#221).
    • 👌 Support CRUD APIs passing collection of items.

    🐛 Bug Fixes

    • 👻 Defer registration of entry assembly until it's confirmed there's no other assembly, to avoid exception being thrown prematurely if the entry assembly contains no view model.
  • v3.5 Changes

    October 01, 2019

    🚀 This release provides a better hub proxy class abstraction, which allows important improvements to the library: multi-hub support (for realizing micro-frontend pattern) and capacity for different hub proxy implementations (e.g. local/client-side view model, communication using web API instead of SignalR).

    🔋 Features

    🐛 Bug fixes

    • #201 Fix redirect with root "/".
  • v3.4 Changes

    July 11, 2019

    🚀 This release adds the following features:

    • ➕ Add a new MulticastVM "Requested' event to notify of requests made to the view model.
    • Include the responses to view model requests in the middleware/filter pipelines.
    • ➕ Add support to switch hub server URL after the first connection (#192).
    • ➕ Add a new method to configure VMSerializer.SerializerSettings (#195).

    🐛 Bug fix:

    • 🛠 Fix CRUD API where the client only retains the last item key received from the view model.
  • v3.3.1 Changes

    November 28, 2018

    🚀 This release provides the following new features:

    • 🚦 .Addition of .NET client to DotNetify.SignalR library to let .NET applications communicate with SignalR .NET Core hub server (#102). Note: SignalR .NET Framework is not supported.


    • MapDotnetifyHub extension method can accept HttpConnectionDispatcherOptions configuration options (#137).
    • 👉 New dotNetify configuration method UseJsonSerializerSettings to control how view model data is serialized (#105).

    ⚡️ Other updates:

    • 🛠 Fixed VMSerializer from throwing an exception when serializing JArray objects (#149).
    • ⚡️ Updated support for React Native (#7, #8, #9).
    • 🛠 Fixed routing to work with an empty URL pattern (#26).