ReactJS.NET 3.4 and 4.0 beta

June 30, 2018 by Daniel Lo Nigro


I'm happy to announce the release of ReactJS.NET 3.4! This is a minor release with a few performance-related changes contributed by Daniil Sokolyuk:

  • #529 - Cache whether component names are valid.
  • #528 - Fast React ID generator.
  • #532 - Avoid large object allocations and reuse everything.

A few other changes have also been included. Thanks to Dustin Masters for most of these changes:

  • #558 - Fix crashes related to loading React 16.4.1
  • #541 - Use ReactDOM.render rather than ReactDOM.hydrate for ClientOnly components. Thanks to Suhail Ansari for his first open-source contribution! :)
  • #537 - Added benchmarking tool for benchmarking changes to ReactJS.NET itself.

ReactJS.NET 4.0 beta has also been released. This release includes all the above changes, and also upgrades JavaScriptEngineSwitcher to 3.0.0 beta. Upgrade instructions can be found in the How to upgrade applications to version 3.X document.

Have fun, and as always, please feel free to send feedback or bug reports on GitHub.

— Daniel and Dustin

ReactJS.NET 3.3

March 4, 2018 by Daniel Lo Nigro


I'm happy to announce the release of ReactJS.NET 3.3! This is a minor release with a few changes:

  • #449 - Allow rendering HTML in an ASP.NET MVC web application outside of the context of a web request. Thanks to Bojan Čoka
  • #479 - Added example for ReactRouter. Thanks to Dustin Masters.
  • #473 - Added optional error boundary support. Thanks to Dustin Masters.
  • #496 - Added support for script nonce attributes. Thanks to Dustin Masters.
  • #497 - Several improvements to server-only rendering. Container elements are no longer rendered, and Html.RenderInitJavaScript no longer renders JS for these components. Thanks to Gustav Tonér
  • #438 - Simplified name of the HtmlHelper function for ReactRouter. Thanks to gunnim.
  • #514 - Replaced "path" with "location" for ReactRouter server-side rendering. Thanks to Chad Burggraf
  • #509 - Use NuGet reference rather than local reference for tutorial code. Thanks to Dustin Masters.
  • #475 - Fixed flaky unit tests. Thanks to Dustin Masters.

Huge thanks to Dustin Masters for reviewing several of the pull requests.

Have fun, and as always, please feel free to send feedback or bug reports on GitHub.

— Daniel

ReactJS.NET 3.2

November 7, 2017 by Daniel Lo Nigro


I'm happy to announce the release of ReactJS.NET 3.2! This is a minor release with a few changes:

Along with a few small changes for people compiling ReactJS.NET itself:

  • #457 - Community, Enterprise, or Professional VS 2017 versions. Previously, it was only looking for the Community version. Thanks to Josh Goldberg.
  • #450 - Upgraded MSBuildTasks from 1.4.0.65 to 1.5.0.235 so that ReactJS.NET can be built on systems that don't have .NET Framework 3.5 installed. Thanks to Bojan Čoka
  • #442 - Explicitly exclude node_modules from build to avoid a long-standing MSBuild bug. Thanks to Dustin Masters.

Have fun, and as always, please feel free to send feedback or bug reports on GitHub.

— Daniel

ReactJS.NET 3.1

July 2, 2017 by Daniel Lo Nigro


I'm happy to announce the release of ReactJS.NET 3.1! This is a minor release with a few changes:

  • #388 - ASP.NET Core middleware is now in a separate NuGet package. If you want to use the middleware to transpile JavaScript without pulling in the full ASP.NET MVC Core framework, you can just use the React.AspNet.Middleware NuGet package.
  • #421 - Upgraded to JSPool 3.0. This has a few small API changes, but should not affect most sites unless you're messing with the internals of ReactJS.NET.
  • #421 - The MSBuild task now has an assembly binding for JavaScriptEngineSwitcher.Core, which should prevent strange errors when the version of JavaScriptEngineSwitcher.V8 does not match the version of JavaScriptEngineSwitcher.Core.
  • #413 - The DefaultEngineName setting in JavaScriptEngineSwitcher is now respected, and can be used to force a particular engine to be used.
  • #416 - MaxUsagesPerEngine is now available as a configuration option. Thanks to Halstatt.
  • #419 - Server-side console calls (eg. console.log) now include the stack trace. Thanks to Halstatt.

The ReactJS.NET project has also been upgraded to use the Visual Studio 2017 tooling (#406). This means that if you want to modify ReactJS.NET itself, you need to be using Visual Studio 2017.

Have fun, and as always, please feel free to send feedback or bug reports on GitHub.

— Daniel

ReactJS.NET 3.0 - .NET Core and lots of small tweaks

October 9, 2016 by Daniel Lo Nigro


I'm happy to announce the release of ReactJS.NET 3.0! The major change in this release is the addition of support for .NET Core! The tutorial has also been totally revamped for ASP.NET Core, and a completed version of the tutorial code is now available in the ReactJS.NET Git repository

Major Changes:

  • Support for ASP.NET MVC 3 was removed. MVC 4 was released in 2012, so I hope everyone has upgraded by now :)
  • #294 - Added support for .NET Core
  • #306 - Upgraded to JavaScriptEngineSwitcher 2.0
  • #330 - Use camelcase for JSON by default. This corresponds with a breaking change made in the final release of ASP.NET Core 1.0. If you were relying on the legacy behaviour, you can use SetJsonSerializerSettings in your ReactJS.NET config to revert back to the old behaviour.

Other tweaks:

  • #323 - Upgraded to React 15.3.2
  • #331 - Added option to totally disable server-side rendering. This is useful when debugging your React components, as it's easier to debug client-side
  • #316 - Added option to use production version of React, and enabled it by default. You can call SetUseDebugReact(true) in your ReactJS.NET config to use the debug version. The production version of React is much faster than the debug build, but it has less useful error messages if something does go wrong.
  • #299 - Use file hash to check for file changes before transpiling. Thanks to Torben Rahbek Koch
  • #317 - Switched to Paul Knopf's branch of VroomJs (V8 for Linux / Mac OS) rather than maintaining our own fork

Have fun, and as always, please feel free to send feedback or bug reports on GitHub.

— Daniel