Just a few weeks ago dotNetify passed the 100k NuGet downloads. I’m thrilled that so many people have found this project compelling enough to try out, and based on the feedback I’ve been getting, it’s being used in production as well!

For those who are unfamiliar with dotNetify, it’s an Apache2-licensed FOSS that does the following in a nutshell:

dotNetify provides a layer of MVVM-styled abstraction over SignalR to facilitate real-time communication between the web front-end of your application and its ASP.NET Core back-end.

It offers built-in integration with some client-side frameworks, such as React, Vue, and Blazor, resulting in…


More than two years ago I wrote the following in my debut Medium article:

“My desire with [dotNetify] is to get to a state that can support full-stack micro-service on .NET platform: the ability to have a complex web app composable of independent front+back-end modules that can be worked on and deployed by completely autonomous teams with very minimal downtime”

I’m delighted to say that with the release of dotNetify version 3.5, this desire has finally been realized!

Little did I know then, I was describing something that only a few months before has made the ThoughtWorks Technology Radar of…


Step-by-step instructions on how to wrap a React component inside a framework-agnostic HTML custom element; how to expose its properties and events, and support children transclusion.

I have a side-project creating and maintaining a React component library called dotNetify-Elements; a very specialized set of UI components that are capable of talking in real-time to a .NET Core back-end through web socket/SignalR.

There’s been a few occasions where I would like to use them on static web pages or websites built with other UI framework. …


DotNetify version 3.1 is out, and with it a new capability to write multicast view model classes on cross-platform ASP.NET server.

What is a multicast view model? Assuming you’re already familiar with dotNetify and its server-side MVVM approach to web app development, it’s a server-side view model where you can share the same instance with multiple SignalR client connections. Any data update to the view model, either by the server or any of the client, will be simultaneously sent to all.

Why multicast view model?

There are many applications for this, practically everything that requires real-time communication to or among multiple clients, i.e. …


This is a follow-up to the article DotNetify-React Released: Build Reactive MVVM Apps with React + SignalR .NET Core 2.1.

DotNetify-Elements is a set of free, open source React components that can readily connect with C# objects running on ASP.NET Core or ASP.NET Framework server in a Reactive MVVM fashion, and via WebSocket.

See documentation and live demo here.

The ultimate goal of the dotNetify project is to significantly reduce the complexity typically associated with modern web application development from .NET developers’ perspective by a unifying UI framework that promotes the production of simple and maintainable code through:

  • elimination of…

After more than a year in beta, I’m thrilled to announce dotNetify-React is finally released (v3.0) and ready to be used on web apps with back-ends targeting .NET Core 2.1.

DotNetify is a simple, lightweight, yet powerful way to build real-time web applications. It leverages the SignalR technology to enable WebSocket-based web development using reactive MVVM paradigm on the back-end. Originally created to work with KnockoutJS, it now can be used with both React and React Native.

My previous articles have touched the topics of reactive programming and back-end MVVM; why I think they’re ideal for development of web apps…


I am thrilled to announce that a custom dotnet template is now available to quickly build real-time, cross-platform, React SPA on .NET Core 2.0 back-end, communicating via WebSocket (SignalR)!

Quick Start

The template is available from NuGet (or this github site). You’ll need to install Node.js and .NET Core 2.0 SDK first, then use this command to install the template locally:

dotnet new -i DotNetify.React.Template

Use the template to create a new project with the name ‘MyApp’:

dotnet new dotnetify -o MyApp
cd MyApp
npm i
dotnet run

Template Features

There are standard dotnet templates for React SPA available from Microsoft, but it’s my…


Simple, lightweight, yet powerful way to build real-time React-based apps on cross-platform C#/.NET back-end.

DotNetify is a free, open source project that aims to facilitate real-time push model to React web apps that use .NET as their back-end. It is super easy to use, runs on WebSockets, works on browsers and Electron desktop apps, and now it supports React Native mobile apps!

Reactive MVVM

In dotNetify’s programming model, container components don’t explicitly fetch data themselves, but are reactive. …


Consider the following scenario where a UI component in your web app depends on a certain resource on the back-end, but the data that makes up this resource must be aggregated from several different sources — perhaps from some micro-services through asynchronous calls.

In this scenario, let’s say that we expect the UI to display an initial loading screen, which will then turn into a real-time progress status to report what’s going on in the back-end. If everything goes well, it finally renders the desired component when the aggregated data is received.

My SignalR/.NET Core-based library, dotNetify, provides me with…


How to add asynchronous, real-time data stream from a cross-platform .NET back-end to your React web app with much less effort.

If you ever have to deal with asynchronous data streams, you probably have used or at least heard of ReactiveX, a library for reactive programming which offers powerful APIs to transform data streams into observable sequences that can be subscribed to and acted upon. But what sets it apart from the regular event-driven approach is the capability to compose new data streams out of multiple of other observable sequences, which you can combine, filter, or transform with great flexibility.

Dicky Suryadi

Full-stack s/w engineer, open source author.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store