diff --git a/Directory.build.props b/Directory.build.props
index 730bbfca..2435d628 100644
--- a/Directory.build.props
+++ b/Directory.build.props
@@ -7,7 +7,7 @@
latest
True
latest
- 19.*
+ 20.*
$(MSBuildThisFileDirectory)
diff --git a/blazor/ClientSideExample/ClientSideExample/ClientSideExample.csproj b/blazor/ClientSideExample/ClientSideExample/ClientSideExample.csproj
index c4bfa61f..037edf30 100644
--- a/blazor/ClientSideExample/ClientSideExample/ClientSideExample.csproj
+++ b/blazor/ClientSideExample/ClientSideExample/ClientSideExample.csproj
@@ -1,14 +1,14 @@
-
+
- net7.0
+ net8.0
3.0
-
-
-
+
+
+
diff --git a/blazor/ClientSideExample/ClientSideExample/Data/WeatherForecast.cs b/blazor/ClientSideExample/ClientSideExample/Data/WeatherForecast.cs
index 898d74cd..8e327c43 100644
--- a/blazor/ClientSideExample/ClientSideExample/Data/WeatherForecast.cs
+++ b/blazor/ClientSideExample/ClientSideExample/Data/WeatherForecast.cs
@@ -1,15 +1,14 @@
using System;
-namespace ClientSideExample.Data
+namespace ClientSideExample.Data;
+
+public class WeatherForecast
{
- public class WeatherForecast
- {
- public DateTime Date { get; set; }
+ public DateTime Date { get; set; }
- public int TemperatureC { get; set; }
+ public int TemperatureC { get; set; }
- public string Summary { get; set; }
+ public string Summary { get; set; }
- public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
- }
-}
+ public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
+}
\ No newline at end of file
diff --git a/blazor/ClientSideExample/ClientSideExample/Program.cs b/blazor/ClientSideExample/ClientSideExample/Program.cs
index 9e7ef0de..14e868ff 100644
--- a/blazor/ClientSideExample/ClientSideExample/Program.cs
+++ b/blazor/ClientSideExample/ClientSideExample/Program.cs
@@ -5,19 +5,18 @@
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.DependencyInjection;
-namespace ClientSideExample
+namespace ClientSideExample;
+
+public static class Program
{
- public static class Program
+ public static async Task Main(string[] args)
{
- public static async Task Main(string[] args)
- {
- var builder = WebAssemblyHostBuilder.CreateDefault(args);
- builder.RootComponents.Add("app");
+ var builder = WebAssemblyHostBuilder.CreateDefault(args);
+ builder.RootComponents.Add("app");
- builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
- builder.Services.AddSingleton();
+ builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
+ builder.Services.AddSingleton();
- await builder.Build().RunAsync();
- }
+ await builder.Build().RunAsync();
}
}
diff --git a/blazor/ClientSideExample/ClientSideExample/ViewModels/CounterViewModel.cs b/blazor/ClientSideExample/ClientSideExample/ViewModels/CounterViewModel.cs
index bdbf7cc3..c6d7f1e8 100644
--- a/blazor/ClientSideExample/ClientSideExample/ViewModels/CounterViewModel.cs
+++ b/blazor/ClientSideExample/ClientSideExample/ViewModels/CounterViewModel.cs
@@ -2,30 +2,29 @@
using System.Threading.Tasks;
using ReactiveUI;
-namespace ClientSideExample.ViewModels
+namespace ClientSideExample.ViewModels;
+
+public class CounterViewModel : ReactiveObject
{
- public class CounterViewModel : ReactiveObject
- {
- private int _currentCount;
+ private int _currentCount;
- private readonly ObservableAsPropertyHelper _count;
+ private readonly ObservableAsPropertyHelper _count;
- public CounterViewModel()
- {
+ public CounterViewModel()
+ {
Increment = ReactiveCommand.CreateFromTask(IncrementCount);
_count = Increment.ToProperty(this, x => x.CurrentCount, scheduler: RxApp.MainThreadScheduler);
}
- public int CurrentCount => _count.Value;
+ public int CurrentCount => _count.Value;
- public ReactiveCommand Increment { get; }
+ public ReactiveCommand Increment { get; }
- private Task IncrementCount()
- {
+ private Task IncrementCount()
+ {
_currentCount++;
return Task.FromResult(_currentCount);
}
- }
-}
+}
\ No newline at end of file
diff --git a/blazor/ClientSideExample/ClientSideExample/ViewModels/FetchDataViewModel.cs b/blazor/ClientSideExample/ClientSideExample/ViewModels/FetchDataViewModel.cs
index e75db999..441c1e6b 100644
--- a/blazor/ClientSideExample/ClientSideExample/ViewModels/FetchDataViewModel.cs
+++ b/blazor/ClientSideExample/ClientSideExample/ViewModels/FetchDataViewModel.cs
@@ -6,30 +6,29 @@
using ReactiveUI;
-namespace ClientSideExample.ViewModels
-{
- public class FetchDataViewModel : ReactiveObject
- {
- private readonly ObservableAsPropertyHelper _forecasts;
+namespace ClientSideExample.ViewModels;
- private readonly HttpClient _http;
- public FetchDataViewModel(HttpClient http)
- {
- _http = http;
- LoadForecasts = ReactiveCommand.CreateFromTask(LoadWeatherForecastsAsync);
+public class FetchDataViewModel : ReactiveObject
+{
+ private readonly ObservableAsPropertyHelper _forecasts;
- _forecasts = LoadForecasts.ToProperty(this, x => x.Forecasts, scheduler: RxApp.MainThreadScheduler);
- }
+ private readonly HttpClient _http;
+ public FetchDataViewModel(HttpClient http)
+ {
+ _http = http;
+ LoadForecasts = ReactiveCommand.CreateFromTask(LoadWeatherForecastsAsync);
- public ReactiveCommand LoadForecasts { get; }
+ _forecasts = LoadForecasts.ToProperty(this, x => x.Forecasts, scheduler: RxApp.MainThreadScheduler);
+ }
- public WeatherForecast[] Forecasts => _forecasts.Value;
+ public ReactiveCommand LoadForecasts { get; }
+ public WeatherForecast[] Forecasts => _forecasts.Value;
- private async Task LoadWeatherForecastsAsync()
- {
- return await _http.GetFromJsonAsync("sample-data/weather.json");
- }
+ private async Task LoadWeatherForecastsAsync()
+ {
+ return await _http.GetFromJsonAsync("sample-data/weather.json");
}
+
}
diff --git a/blazor/ClientSideExample/ClientSideExample/ViewModels/GreetingViewModel.cs b/blazor/ClientSideExample/ClientSideExample/ViewModels/GreetingViewModel.cs
index d54f8367..3ab3bcad 100644
--- a/blazor/ClientSideExample/ClientSideExample/ViewModels/GreetingViewModel.cs
+++ b/blazor/ClientSideExample/ClientSideExample/ViewModels/GreetingViewModel.cs
@@ -2,42 +2,41 @@
using System.Reactive.Linq;
using ReactiveUI;
-namespace ClientSideExample.ViewModels
+namespace ClientSideExample.ViewModels;
+
+public class GreetingViewModel : ReactiveObject
{
- public class GreetingViewModel : ReactiveObject
- {
- private string _name;
+ private string _name;
- private readonly ObservableAsPropertyHelper _canClear;
- private readonly ObservableAsPropertyHelper _greeting;
+ private readonly ObservableAsPropertyHelper _canClear;
+ private readonly ObservableAsPropertyHelper _greeting;
- public ReactiveCommand Clear { get; }
+ public ReactiveCommand Clear { get; }
- public bool CanClear => _canClear.Value;
+ public bool CanClear => _canClear.Value;
- public string Greeting => _greeting.Value;
-
- public string Name
- {
- get => _name;
- set => this.RaiseAndSetIfChanged(ref _name, value);
- }
-
- public GreetingViewModel()
- {
- var canClear = this.WhenAnyValue(x => x.Name)
- .Select(name => !string.IsNullOrEmpty(name));
-
- Clear = ReactiveCommand.Create(
- () => { Name = string.Empty; },
- canClear);
-
- _canClear = Clear.CanExecute
- .ToProperty(this, x => x.CanClear);
-
- _greeting = this.WhenAnyValue(x => x.Name)
- .Select(x => string.IsNullOrWhiteSpace(x) ? string.Empty : $"Hello, {x}!")
- .ToProperty(this, x => x.Greeting);
- }
+ public string Greeting => _greeting.Value;
+
+ public string Name
+ {
+ get => _name;
+ set => this.RaiseAndSetIfChanged(ref _name, value);
+ }
+
+ public GreetingViewModel()
+ {
+ var canClear = this.WhenAnyValue(x => x.Name)
+ .Select(name => !string.IsNullOrEmpty(name));
+
+ Clear = ReactiveCommand.Create(
+ () => { Name = string.Empty; },
+ canClear);
+
+ _canClear = Clear.CanExecute
+ .ToProperty(this, x => x.CanClear);
+
+ _greeting = this.WhenAnyValue(x => x.Name)
+ .Select(x => string.IsNullOrWhiteSpace(x) ? string.Empty : $"Hello, {x}!")
+ .ToProperty(this, x => x.Greeting);
}
-}
+}
\ No newline at end of file
diff --git a/blazor/ClientSideExample/ClientSideExample/Views/CounterView.razor.cs b/blazor/ClientSideExample/ClientSideExample/Views/CounterView.razor.cs
index 733a17f9..76fc0259 100644
--- a/blazor/ClientSideExample/ClientSideExample/Views/CounterView.razor.cs
+++ b/blazor/ClientSideExample/ClientSideExample/Views/CounterView.razor.cs
@@ -2,18 +2,17 @@
using System.Threading.Tasks;
using ClientSideExample.ViewModels;
-namespace ClientSideExample.Views
+namespace ClientSideExample.Views;
+
+public partial class CounterView
{
- public partial class CounterView
+ public CounterView()
{
- public CounterView()
- {
- ViewModel = new CounterViewModel();
- }
+ ViewModel = new CounterViewModel();
+ }
- private async Task IncrementCount()
- {
- await ViewModel.Increment.Execute().ToTask();
- }
+ private async Task IncrementCount()
+ {
+ await ViewModel.Increment.Execute().ToTask();
}
-}
+}
\ No newline at end of file
diff --git a/blazor/ClientSideExample/ClientSideExample/Views/FetchDataView.razor.cs b/blazor/ClientSideExample/ClientSideExample/Views/FetchDataView.razor.cs
index 2d58beac..73908b5d 100644
--- a/blazor/ClientSideExample/ClientSideExample/Views/FetchDataView.razor.cs
+++ b/blazor/ClientSideExample/ClientSideExample/Views/FetchDataView.razor.cs
@@ -1,24 +1,21 @@
-using System.Reactive.Threading.Tasks;
+using System.Reactive.Linq;
using System.Threading.Tasks;
using ClientSideExample.ViewModels;
using Microsoft.AspNetCore.Components;
+namespace ClientSideExample.Views;
-namespace ClientSideExample.Views
+public partial class FetchDataView
{
- public partial class FetchDataView
+ [Inject]
+ public FetchDataViewModel FetchViewModel
{
- [Inject]
- public FetchDataViewModel FetchViewModel
- {
- get => ViewModel;
- set => ViewModel = value;
-
- }
+ get => ViewModel;
+ set => ViewModel = value;
+ }
- protected override async Task OnInitializedAsync()
- {
- await ViewModel.LoadForecasts.Execute().ToTask();
- }
+ protected override async Task OnInitializedAsync()
+ {
+ await ViewModel!.LoadForecasts.Execute();
}
}
diff --git a/blazor/ClientSideExample/ClientSideExample/Views/GreetingView.razor.cs b/blazor/ClientSideExample/ClientSideExample/Views/GreetingView.razor.cs
index 24b216ad..aac106ed 100644
--- a/blazor/ClientSideExample/ClientSideExample/Views/GreetingView.razor.cs
+++ b/blazor/ClientSideExample/ClientSideExample/Views/GreetingView.razor.cs
@@ -2,18 +2,17 @@
using System.Threading.Tasks;
using ClientSideExample.ViewModels;
-namespace ClientSideExample.Views
+namespace ClientSideExample.Views;
+
+public partial class GreetingView
{
- public partial class GreetingView
+ public GreetingView()
{
- public GreetingView()
- {
- ViewModel = new GreetingViewModel();
- }
+ ViewModel = new GreetingViewModel();
+ }
- public async Task Clear()
- {
- await ViewModel.Clear.Execute().ToTask();
- }
+ public async Task Clear()
+ {
+ await ViewModel.Clear.Execute().ToTask();
}
-}
+}
\ No newline at end of file