diff --git a/.github/workflows/dotnet-core-desktop.yml b/.github/workflows/dotnet-core-desktop.yml
new file mode 100644
index 000000000..194ac738e
--- /dev/null
+++ b/.github/workflows/dotnet-core-desktop.yml
@@ -0,0 +1,64 @@
+name: .NET Core Desktop
+
+on:
+ push:
+ branches: [ main ]
+ pull_request:
+ branches: [ main ]
+
+jobs:
+
+ build:
+
+ strategy:
+ matrix:
+ configuration: [Debug, Release]
+
+ runs-on: windows-latest # For a list of available runner types, refer to
+ # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+
+ - name: Cache node modules
+ uses: actions/cache@v2
+ env:
+ cache-name: cache-node-modules
+ with:
+ # npm cache files are stored in `~/.npm` on Linux/macOS
+ path: ~/.npm
+ key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
+ restore-keys: |
+ ${{ runner.os }}-build-${{ env.cache-name }}-
+ ${{ runner.os }}-build-
+ ${{ runner.os }}-
+
+ - name: Install .NET Core
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 3.1.x
+
+ - name: Use Node.js 12
+ uses: actions/setup-node@v1
+ with:
+ node-version: 12
+
+ - name: Setup MSBuild.exe
+ uses: microsoft/setup-msbuild@2008f912f56e61277eefaac6d1888b750582aa16
+ env:
+ ACTIONS_ALLOW_UNSECURE_COMMANDS: true
+
+ - name: Build
+ run: msbuild build.proj /p:PackageOutputDir="${{ env.GITHUB_WORKSPACE }}/nuget-output" /p:Configuration=${{ matrix.configuration }}
+ env:
+ ACTIONS_ALLOW_UNSECURE_COMMANDS: true
+ Configuration: ${{ matrix.configuration }}
+
+ - name: Upload build artifacts
+ uses: actions/upload-artifact@v1
+ with:
+ name: Nuget Package
+ path: "${{ env.GITHUB_WORKSPACE }}/nuget-output"
diff --git a/.gitignore b/.gitignore
index 279183051..b32bd32fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
_old/
src/SharedAssemblyVersionInfo.cs
*.nupkg
+*.snupkg
src/**/*.nuspec
!src/template.nuspec
site/jekyll/_site
diff --git a/README.md b/README.md
index b481d6438..8a6674e56 100644
--- a/README.md
+++ b/README.md
@@ -1,55 +1,44 @@
# [ReactJS.NET](http://reactjs.net/)
-ReactJS.NET is a library that makes it easier to use [Babel](http://babeljs.io/) along with Facebook's [React](http://facebook.github.io/react/) and [JSX](http://facebook.github.io/react/docs/jsx-in-depth.html) from C#.
+ReactJS.NET is a library that makes it easier to use [Babel](http://babeljs.io/) along with Facebook's [React](https://reactjs.org/) and [JSX](https://reactjs.org/docs/jsx-in-depth.html) from C#.
-[](https://ci.appveyor.com/project/Daniel15/react-net/branch/master)
+
[](https://www.nuget.org/packages/React.Core/)
[](https://www.nuget.org/packages/React.Core/)
# Features
-- On-the-fly [JSX to JavaScript compilation](http://reactjs.net/getting-started/usage.html) via [Babel](http://babeljs.io/)
-
-* JSX to JavaScript compilation via popular minification/combination
- libraries:
- - [ASP.NET Bundling and Minification](http://reactjs.net/bundling/weboptimizer.html)
- - [Cassette](http://reactjs.net/bundling/cassette.html)
- - [Webpack](http://reactjs.net/bundling/webpack.html)
- - [MSBuild](http://reactjs.net/bundling/msbuild.html)
-* [Server-side component rendering](http://reactjs.net/features/server-side-rendering.html)
- to make your initial render super-fast (experimental!)
-* [Runs on Windows, OS X and Linux](http://reactjs.net/getting-started/chakracore.html) via .NET Core and ChakraCore
-* Supports both ASP.NET 4.0/4.5 and ASP.NET Core
-* Server-side style rendering with CSS-in-JS libraries
+- On-the-fly [JSX to JavaScript compilation](http://reactjs.net/getting-started/usage.html) via [Babel](http://babeljs.io/)
+
+* JSX to JavaScript compilation via popular minification/combination
+ libraries:
+ - [ASP.NET Bundling and Minification](http://reactjs.net/bundling/weboptimizer.html)
+ - [Cassette](http://reactjs.net/bundling/cassette.html)
+ - [Webpack](http://reactjs.net/bundling/webpack.html)
+ - [MSBuild](http://reactjs.net/bundling/msbuild.html)
+* [Server-side component rendering](http://reactjs.net/features/server-side-rendering.html)
+ to make your initial render super-fast, including support for:
+ - [CSS-in-JS libraries](https://reactjs.net/features/css-in-js.html)
+ - [React Router](https://reactjs.net/features/react-router.html)
+ - [React Helmet](https://reactjs.net/features/react-helmet.html)
+ - Custom JS logic via implementing [IRenderFunctions](https://github.com/reactjs/React.NET/blob/c93921f059bfe9419ad7094c184979da422a4477/src/React.Core/IRenderFunctions.cs) and passing to [Html.React](https://github.com/reactjs/React.NET/blob/c93921f059bfe9419ad7094c184979da422a4477/src/React.AspNet/HtmlHelperExtensions.cs#L71)
+* [Runs on Windows, OS X and Linux](http://reactjs.net/getting-started/chakracore.html) via .NET Core and ChakraCore
+* Supports both ASP.NET 4.0/4.5 and ASP.NET Core
# Quick Start
-Install the package
-
```
-Install-Package React.Web.Mvc4 # For ASP.NET MVC 4 or 5
-Install-Package React.AspNet # For ASP.NET Core MVC
+dotnet new -i React.Template
+dotnet new reactnet-vanilla
+dotnet run
```
-Create JSX files
-
-```javascript
-// /Scripts/HelloWorld.jsx
-const HelloWorld = (props) => {
- return (
Hello {props.name}
);
-};
-```
-
-Reference the JSX files from your HTML
-
-```html
-
-```
+#### Planning on using `require` or `import` module syntax in your application? Use the `reactnet-webpack` template instead for webpack support.
-Now you can use the `HelloWorld` component.
+See also:
-For information on more advanced topics (including precompilation and
-server-side rendering), check out [the documentation](http://reactjs.net/docs)
+- [Getting Started](https://reactjs.net/getting-started/aspnetcore.html)
+- [Tutorial](https://reactjs.net/tutorials/aspnetcore.html)
## Building Manually and Contributing
diff --git a/appveyor.yml b/appveyor.yml
deleted file mode 100644
index e331cbe19..000000000
--- a/appveyor.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-version: '{build}'
-os: Visual Studio 2017
-install:
- - set PATH=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\;%PATH%
- - ps: Install-Product node 10
- - npm install --global npm
-build:
- project: build.proj
- verbosity: normal
-test_script:
- - dotnet test --configuration Release --no-build tests/React.Tests/React.Tests.csproj
-artifacts:
- - path: output\*.nupkg
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index f53288ced..2c176e021 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -1,12 +1,14 @@
trigger:
- - master
+ - main
+ - ci-updates
pool:
- vmImage: 'VS2017-Win2016'
+ vmImage: 'windows-2019'
variables:
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
+ buildType: 'Release'
steps:
- task: NodeTool@0
@@ -15,6 +17,12 @@ steps:
- script: npm install --global npm
+ - task: UseDotNet@2
+ displayName: 'Use .NET Core sdk'
+ inputs:
+ packageType: 'sdk'
+ version: '3.1.x'
+
- task: VSBuild@1
inputs:
solution: 'build.proj'
diff --git a/build.proj b/build.proj
index b8b1d9724..afbf537d6 100644
--- a/build.proj
+++ b/build.proj
@@ -10,8 +10,8 @@ of patent rights can be found in the PATENTS file in the same directory.
5
- 0
- 0-alpha4
+ 2
+ 13
0
http://reactjs.net/packages/
$(MSBuildProjectDirectory)\tools\MSBuildTasks
@@ -31,6 +31,7 @@ of patent rights can be found in the PATENTS file in the same directory.
+
@@ -57,7 +58,7 @@ of patent rights can be found in the PATENTS file in the same directory.
Command="npm install"
/>
@@ -99,7 +100,6 @@ of patent rights can be found in the PATENTS file in the same directory.
-
@@ -113,7 +113,22 @@ of patent rights can be found in the PATENTS file in the same directory.
/>
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -125,6 +140,11 @@ of patent rights can be found in the PATENTS file in the same directory.
/>
+
+
+
+
+
diff --git a/global.json b/global.json
deleted file mode 100644
index 9a66d5edc..000000000
--- a/global.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "projects": [ "src", "test" ]
-}
diff --git a/renovate.json b/renovate.json
index ded6828f0..f197b0de8 100644
--- a/renovate.json
+++ b/renovate.json
@@ -25,6 +25,15 @@
"https://github.com/aspnet/AspNetCore"
],
"groupName": "ASP.NET Core packages"
+ },
+ {
+ "packagePatterns": ["^React"],
+ "groupName": "React.NET packages"
}
- ]
+ ],
+ "separateMinorPatch": true,
+ "automerge": false,
+ "patch": {
+ "automerge": true
+ }
}
diff --git a/runs-msbuild.bat b/runs-msbuild.bat
index d56d5c22c..360f79b15 100644
--- a/runs-msbuild.bat
+++ b/runs-msbuild.bat
@@ -4,9 +4,10 @@ set BUILDTYPE="%~1"
set ACTION="%~2"
for %%s in (
- "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe"
- "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe"
- "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe"
+ "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe"
+ "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe"
+ "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe"
+ "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin\MSBuild.exe"
) do (
if exist %%s (
echo %%s build.proj %ACTION% %BUILDTYPE%
@@ -16,7 +17,7 @@ for %%s in (
)
:notfound
-echo Could not find MSBuild.exe. Make sure Visual Studio 2017 is installed and try again.
+echo Could not find MSBuild.exe. Make sure Visual Studio 2019 is installed and try again.
:done
pause
diff --git a/site/jekyll/Gemfile.lock b/site/jekyll/Gemfile.lock
index b4e661a58..60c113656 100644
--- a/site/jekyll/Gemfile.lock
+++ b/site/jekyll/Gemfile.lock
@@ -10,7 +10,7 @@ GEM
colorator (0.1)
commander (4.1.6)
highline (~> 1.6.11)
- crass (1.0.2)
+ crass (1.0.6)
fast-stemmer (1.0.2)
ffi (1.9.18)
ffi (1.9.18-x64-mingw32)
@@ -39,21 +39,21 @@ GEM
rb-inotify (>= 0.9)
rb-kqueue (>= 0.2)
maruku (0.7.0)
- mini_portile2 (2.1.0)
+ mini_portile2 (2.4.0)
multi_json (1.12.1)
- nokogiri (1.7.1)
- mini_portile2 (~> 2.1.0)
- nokogiri (1.7.1-x64-mingw32)
- mini_portile2 (~> 2.1.0)
- nokogumbo (1.4.10)
- nokogiri
+ nokogiri (1.10.9)
+ mini_portile2 (~> 2.4.0)
+ nokogiri (1.10.9-x64-mingw32)
+ mini_portile2 (~> 2.4.0)
+ nokogumbo (2.0.2)
+ nokogiri (~> 1.8, >= 1.8.4)
parslet (1.5.0)
blankslate (~> 2.0)
posix-spawn (0.3.13)
pygments.rb (0.5.4)
posix-spawn (~> 0.3.6)
yajl-ruby (~> 1.1.0)
- rack (1.6.5)
+ rack (1.6.12)
rb-fsevent (0.9.8)
rb-inotify (0.9.8)
ffi (>= 0.5.0)
@@ -61,10 +61,10 @@ GEM
ffi (>= 0.5.0)
redcarpet (2.3.0)
safe_yaml (1.0.4)
- sanitize (4.4.0)
+ sanitize (5.2.1)
crass (~> 1.0.2)
- nokogiri (>= 1.4.4)
- nokogumbo (~> 1.4.1)
+ nokogiri (>= 1.8.0)
+ nokogumbo (~> 2.0)
sass (3.4.23)
sprockets (2.12.4)
hike (~> 1.2)
diff --git a/site/jekyll/_layouts/default.html b/site/jekyll/_layouts/default.html
index 93ff780bb..d59c8b506 100644
--- a/site/jekyll/_layouts/default.html
+++ b/site/jekyll/_layouts/default.html
@@ -58,7 +58,7 @@