dotNetify

Simple, lightweight, yet powerful way to build real-time web apps.

OTHER License

Downloads
1.5K
Stars
1.2K
Committers
12

Bot releases are hidden (Show)

dotNetify - v5.4 Latest Release

Published by dsuryd almost 2 years ago

Enhancements

  • Portability to Amazon WebSocket API Gateway (documentation).
  • Router compatibility with React 18. To use, import the following in your main entry js file: import "dotnetify/react/v18-compatibility";.

Sponsor Exclusives

  • DotNetify-ResiliencyAddon: allows your dotNetify app server to be more resilient when serving as an HTTP integration backend to the Amazon WebSocket API gateway.
dotNetify - v5.3

Published by dsuryd over 2 years ago

Enhancements

  • Minimal API as a lightweight alternative to base view model class inheritance (documentation).

Example:

appBuilder.MapVM("HelloWorld", () => new 
{ 
   Greetings = "Hello World",
   ServerTime = Observable.Interval(TimeSpan.FromSeconds(1).Select(_ => DateTime.Now) 
});
  • IDotNetifyConfiguration property CamelCaseSerialization for applying camel case naming when serializing view models.
  • Support dispatching to methods with multiple arguments (#314).
  • Support dispatching to methods with tuple argument type (#314).
dotNetify - v5.2

Published by dsuryd about 3 years ago

Enhancements

  • Switch SignalR client library from @aspnet/signalr to @microsoft/signalr.
  • Add configurable retry policy for .NET client.

Bug Fixes

  • Fix .NET client unable to recover from temporarily lost connection (#297).
  • Fix JSON exception on the browser when processing updates in Web API mode.
dotNetify - v5.1

Published by dsuryd over 3 years ago

Enhancements

  • Add setState to the object returned by useConnect.
  • Make the initial state parameter of useConnect optional.
  • Updating .NET client list items no longer raises the changed event on the entire list (#284).
dotNetify - v5.0

Published by dsuryd over 3 years ago

Enhancements

  • Vue version 3 compatibility.
  • Message forwarding feature to support multi-server scale-out (#181, #257).
  • Multicast push updates now use SignalR group send instead of individual connections.

Bug Fixes

  • Fix a race condition that could cause ObjectDisposedException to get thrown from the view model factory method (#273).
  • Fix routing erroneously navigate to the "404" page on reconnection (#275).
  • Fix exception from setting the "ItemKey" property in multicast view models that can occur on a high number of connections.

Breaking Changes

  • The Data property value of the context object that is passed to middlewares and filters is no longer fixed to the JObject type but depends on the type of SignalR serialization that is used (System.Text.Json, Newtonsoft.Json, or MessagePack).
  • The server will no longer attempt to create a view model instance if receiving client dispatches prior to the connect request.
  • For projects with System.Reactive dependency, an upgrade to v5.0 is required.

Sponsor Exclusives

  • DotNetify-Observer: a visualization dashboard that allows to see and inspect your client connections in real-time.
  • DotNetify-LoadTester: performance testing tool to simulate a large number of concurrent client connections against your hub server. It allows you to build your own load profile, or choose from predefined ones: echo, broadcast, or chat room.
dotNetify - v.4.1.1

Published by dsuryd almost 4 years ago

Bug Fix

  • Fix Web API endpoint not responding when the client update does not yield any server response.
  • Fix Typescript typing issues (#255, #271).

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

dotNetify - v4.1

Published by dsuryd over 4 years ago

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 (#110).

Example:

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

Example:

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.

Example:

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).
    Example:
// 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.

dotNetify - v4.0

Published by dsuryd over 4 years ago

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.
dotNetify - v3.7.1

Published by dsuryd over 4 years ago

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.

Doc: https://dotnetify.net/core/api/routing

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.
    Note: to disable this feature, add dotnetify.react.router.notFound404Url = null;
  • 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).
dotNetify - v3.6.2

Published by dsuryd over 4 years ago

Bug Fixes

  • Fix Update_VM failing with MessagePack (#227).
dotNetify - v3.6.1

Published by dsuryd almost 5 years ago

Bug Fixes

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

Published by dsuryd almost 5 years ago

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.
dotNetify - v3.5

Published by dsuryd about 5 years ago

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 "/".
dotNetify - v3.4

Published by dsuryd over 5 years ago

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.
dotNetify - v3.3.1

Published by dsuryd almost 6 years ago

This release provides the following new features:

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).
dotNetify - v3.2

Published by dsuryd almost 6 years ago

This release provides client-side library that integrates with Vue.js framework (#49).

dotNetify - v3.1

Published by dsuryd about 6 years ago

This release provides the following new features:

  • New view model base class MulticastVM to allow sharing of view model instances with a group of clients, including the capability to push direct messages to specific clients (#58).
    Doc: http://dotnetify.net/core/api/multicast
    Demo: http://dotnetify.net/core/examples/chatroom
  • New injectable interface IConnectionContext to provide access to SignalR connection ID and HTTP info of the calling connection (#108).
  • New asynchronous Reactive APIs SubscribeToAsync and SubscribedByAsync (#120).
  • New PushUpdates overload to force updates on view models sharing the same connection with the calling view model, and that returns a boolean true to support fluent chaining (#120).
  • Allow for middlewares to overwrite data for Response_VM (#111).
dotNetify - NPM v3.0.2

Published by dsuryd about 6 years ago

Updated SignalR .NET Core client to v1.0.3 to fix issue #114.

dotNetify - v3.0 Release

Published by dsuryd over 6 years ago

This is an official release of dotNetify for ASP.NET Core.

  • Integrates with SignalR v1.0 release for .NET Core 2.1.
    (both client and server must be upgraded; must target .NET Core 2.1)
dotNetify - NPM + Nuget v3.0.0-pre

Published by dsuryd over 6 years ago

This release provides the following new features:

  • Integration with SignalR .NET Core v1.0.0-preview2-final (both client and server must be upgraded).
  • New reactive APIs AddInternalProperty, SubscribedBy and Unsubscribe.
  • Support for ASP.NET DI Scoped lifetime (services created once per connection).

Other updates: