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/README.md b/README.md index 46f7b1b7b..8a6674e56 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # [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#. -[![Build status](https://img.shields.io/appveyor/ci/Daniel15/react-net/master.svg)](https://ci.appveyor.com/project/Daniel15/react-net/branch/master)  +![.NET Core Desktop](https://github.com/reactjs/React.NET/workflows/.NET%20Core%20Desktop/badge.svg) [![NuGet version](http://img.shields.io/nuget/v/React.Core.svg)](https://www.nuget.org/packages/React.Core/) [![Download count](https://img.shields.io/nuget/dt/React.Core.svg)](https://www.nuget.org/packages/React.Core/) @@ -27,58 +27,18 @@ ReactJS.NET is a library that makes it easier to use [Babel](http://babeljs.io/) # Quick Start -Install the package - -```powershell -Install-Package React.Web.Mvc4 # For ASP.NET MVC 4 or 5 -Install-Package React.AspNet   # For ASP.NET Core MVC -``` - -Install a Javascript engine and configure as the default (more info [here](https://reactjs.net/getting-started/aspnet.html) on how this works) - -```powershell -Install-Package JavaScriptEngineSwitcher.V8 -Install-Package JavaScriptEngineSwitcher.V8.Native.win-x64 -``` - -```csharp -public static class ReactConfig -{ - public static void Configure() - { - ReactSiteConfiguration.Configuration - .AddScript("~/Content/HelloWorld.jsx"); - - JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName; - JsEngineSwitcher.Current.EngineFactories.AddV8(); - } -} ``` - -Create JSX files - -```javascript -// /Scripts/HelloWorld.jsx -const HelloWorld = props => { - return
Hello {props.greeting}
; -}; +dotnet new -i React.Template +dotnet new reactnet-vanilla +dotnet run ``` -Reference the JSX files from your HTML - -```html - -@Html.React("HelloWorld", new { Greeting = "friends!" }); - - - -@Html.ReactInitJavaScript(); -``` +#### 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/azure-pipelines.yml b/azure-pipelines.yml index 995ec531e..2c176e021 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,5 +1,6 @@ trigger: - - master + - main + - ci-updates pool: vmImage: 'windows-2019' @@ -16,10 +17,11 @@ steps: - script: npm install --global npm - - task: DotNetCoreInstaller@0 + - task: UseDotNet@2 + displayName: 'Use .NET Core sdk' inputs: packageType: 'sdk' - version: '3.0.100' + version: '3.1.x' - task: VSBuild@1 inputs: diff --git a/build.proj b/build.proj index 400d3ae8d..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 - 1 - 2 + 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. + @@ -60,10 +61,6 @@ of patent rights can be found in the PATENTS file in the same directory. WorkingDirectory="src/React.Sample.Mvc4" Command="npm install" /> - @@ -103,7 +100,6 @@ of patent rights can be found in the PATENTS file in the same directory. - @@ -117,7 +113,22 @@ of patent rights can be found in the PATENTS file in the same directory. /> - + + + + + + + + + + + + + + + + @@ -129,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 d96e311f9..000000000 --- a/global.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "projects": [ "src", "test" ], - "sdk": { - "version": "3.0.100-preview" - } -} diff --git a/renovate.json b/renovate.json index 7d85e2c8d..f197b0de8 100644 --- a/renovate.json +++ b/renovate.json @@ -25,6 +25,10 @@ "https://github.com/aspnet/AspNetCore" ], "groupName": "ASP.NET Core packages" + }, + { + "packagePatterns": ["^React"], + "groupName": "React.NET packages" } ], "separateMinorPatch": true, diff --git a/site/jekyll/Gemfile.lock b/site/jekyll/Gemfile.lock index 6145bde92..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) @@ -41,19 +41,19 @@ GEM maruku (0.7.0) mini_portile2 (2.4.0) multi_json (1.12.1) - nokogiri (1.10.4) + nokogiri (1.10.9) mini_portile2 (~> 2.4.0) - nokogiri (1.10.4-x64-mingw32) + nokogiri (1.10.9-x64-mingw32) mini_portile2 (~> 2.4.0) - nokogumbo (1.4.10) - nokogiri + 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 @@