+ Swapping to Development environment will display more detailed information about the error that occurred.
+
+
+ The Development environment shouldn't be enabled for deployed applications.
+ It can result in displaying sensitive information from exceptions to end users.
+ For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development
+ and restarting the app.
+
+
+@code{
+ [CascadingParameter]
+ private HttpContext? HttpContext { get; set; }
+
+ private string? RequestId { get; set; }
+ private bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
+
+ protected override void OnInitialized() =>
+ RequestId = Activity.Current?.Id ?? HttpContext?.TraceIdentifier;
+}
diff --git a/src/LudikZoneBlazor/Components/Pages/Home.razor b/src/LudikZoneBlazor/Components/Pages/Home.razor
new file mode 100644
index 0000000..2ba687d
--- /dev/null
+++ b/src/LudikZoneBlazor/Components/Pages/Home.razor
@@ -0,0 +1,58 @@
+@page "/"
+
+Home
+
+Hello, world!
+Welcome to your new app, powered by MudBlazor and the .NET 8 Template!
+
+
+ You can find documentation and examples on our website here:
+
+ www.mudblazor.com
+
+
+
+
+Interactivity in this Template
+
+
+ When you opt for the "Global" Interactivity Location,
+ the render modes are defined in App.razor and consequently apply to all child components.
+ In this case, providers are globally set in the MainLayout.
+
+ On the other hand, if you choose the "Per page/component" Interactivity Location,
+ it is necessary to include the
+
+ <MudPopoverProvider />
+ <MudDialogProvider />
+ <MudSnackbarProvider />
+
+ components on every interactive page.
+
+ If a render mode is not specified for a page, it defaults to Server-Side Rendering (SSR),
+ similar to this page. While MudBlazor allows pages to be rendered in SSR,
+ please note that interactive features, such as buttons and dropdown menus, will not be functional.
+
+
+
+What's New in Blazor with the Release of .NET 8
+
+Prerendering
+
+ If you're exploring the features of .NET 8 Blazor, you might be pleasantly surprised to learn that each page is prerendered on the server, regardless of the selected render mode.
+ This means that you'll need to inject all necessary services on the server, even when opting for the wasm (WebAssembly) render mode.
+ This prerendering functionality is crucial to ensuring that WebAssembly mode feels fast and responsive, especially when it comes to initial page load times.
+ For more information on how to detect prerendering and leverage the RenderContext, you can refer to the following link:
+
+ More details
+
+
+
+
+InteractiveAuto
+
+ A discussion on how to achieve this can be found here:
+
+ More details
+
+
\ No newline at end of file
diff --git a/src/LudikZoneBlazor/Components/Pages/Weather.razor b/src/LudikZoneBlazor/Components/Pages/Weather.razor
new file mode 100644
index 0000000..3ffd7d8
--- /dev/null
+++ b/src/LudikZoneBlazor/Components/Pages/Weather.razor
@@ -0,0 +1,60 @@
+@page "/weather"
+
+
+
+Weather
+
+Weather forecast
+This component demonstrates fetching data from the server.
+
+@if (forecasts == null)
+{
+
+}
+else
+{
+
+
+ Date
+ Temp. (C)
+ Temp. (F)
+ Summary
+
+
+ @context.Date
+ @context.TemperatureC
+ @context.TemperatureF
+ @context.Summary
+
+
+
+
+
+}
+
+@code {
+ private WeatherForecast[]? forecasts;
+
+ protected override async Task OnInitializedAsync()
+ {
+ // Simulate asynchronous loading to demonstrate a loading indicator
+ await Task.Delay(500);
+
+ var startDate = DateOnly.FromDateTime(DateTime.Now);
+ var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" };
+ forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast
+ {
+ Date = startDate.AddDays(index),
+ TemperatureC = Random.Shared.Next(-20, 55),
+ Summary = summaries[Random.Shared.Next(summaries.Length)]
+ }).ToArray();
+ }
+
+ private class WeatherForecast
+ {
+ public DateOnly Date { get; set; }
+ public int TemperatureC { get; set; }
+ public string? Summary { get; set; }
+ public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
+ }
+}
diff --git a/src/LudikZoneBlazor/Components/Routes.razor b/src/LudikZoneBlazor/Components/Routes.razor
new file mode 100644
index 0000000..f756e19
--- /dev/null
+++ b/src/LudikZoneBlazor/Components/Routes.razor
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/LudikZoneBlazor/Components/_Imports.razor b/src/LudikZoneBlazor/Components/_Imports.razor
new file mode 100644
index 0000000..252c514
--- /dev/null
+++ b/src/LudikZoneBlazor/Components/_Imports.razor
@@ -0,0 +1,12 @@
+@using System.Net.Http
+@using System.Net.Http.Json
+@using Microsoft.AspNetCore.Components.Forms
+@using Microsoft.AspNetCore.Components.Routing
+@using Microsoft.AspNetCore.Components.Web
+@using static Microsoft.AspNetCore.Components.Web.RenderMode
+@using Microsoft.AspNetCore.Components.Web.Virtualization
+@using Microsoft.JSInterop
+@using MudBlazor
+@using MudBlazor.Services
+@using LudikZoneBlazor
+@using LudikZoneBlazor.Components
diff --git a/src/LudikZoneBlazor/LudikZoneBlazor.csproj b/src/LudikZoneBlazor/LudikZoneBlazor.csproj
new file mode 100644
index 0000000..e4aa989
--- /dev/null
+++ b/src/LudikZoneBlazor/LudikZoneBlazor.csproj
@@ -0,0 +1,13 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/src/LudikZoneBlazor/Program.cs b/src/LudikZoneBlazor/Program.cs
new file mode 100644
index 0000000..08009fe
--- /dev/null
+++ b/src/LudikZoneBlazor/Program.cs
@@ -0,0 +1,31 @@
+using MudBlazor.Services;
+using LudikZoneBlazor.Components;
+
+var builder = WebApplication.CreateBuilder(args);
+
+// Add MudBlazor services
+builder.Services.AddMudServices();
+
+// Add services to the container.
+builder.Services.AddRazorComponents()
+ .AddInteractiveServerComponents();
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (!app.Environment.IsDevelopment())
+{
+ app.UseExceptionHandler("/Error", createScopeForErrors: true);
+ // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
+ app.UseHsts();
+}
+
+app.UseHttpsRedirection();
+
+app.UseStaticFiles();
+app.UseAntiforgery();
+
+app.MapRazorComponents()
+ .AddInteractiveServerRenderMode();
+
+app.Run();
diff --git a/src/LudikZoneBlazor/Properties/launchSettings.json b/src/LudikZoneBlazor/Properties/launchSettings.json
new file mode 100644
index 0000000..de483f5
--- /dev/null
+++ b/src/LudikZoneBlazor/Properties/launchSettings.json
@@ -0,0 +1,38 @@
+{
+ "$schema": "http://json.schemastore.org/launchsettings.json",
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:15132",
+ "sslPort": 44355
+ }
+ },
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "applicationUrl": "http://localhost:5031",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "https": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "applicationUrl": "https://localhost:7201;http://localhost:5031",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "IIS Express": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+ }
diff --git a/src/LudikZoneBlazor/appsettings.Development.json b/src/LudikZoneBlazor/appsettings.Development.json
new file mode 100644
index 0000000..0c208ae
--- /dev/null
+++ b/src/LudikZoneBlazor/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+}
diff --git a/src/LudikZoneBlazor/appsettings.json b/src/LudikZoneBlazor/appsettings.json
new file mode 100644
index 0000000..10f68b8
--- /dev/null
+++ b/src/LudikZoneBlazor/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}
diff --git a/src/LudikZoneBlazor/wwwroot/favicon.ico b/src/LudikZoneBlazor/wwwroot/favicon.ico
new file mode 100644
index 0000000..1239223
Binary files /dev/null and b/src/LudikZoneBlazor/wwwroot/favicon.ico differ