Template updates (#185)

* Remove unnecessary <OutputType>Exe</OutputType> from templates

* Rename BlazorHosted.* projects to BlazorHosted.CSharp.(Client|Server)

* Add empty BlazorHosted.CSharp.Shared, referenced from the two other BlazorHosted.CSharp.* projects

* Have BlazorHosted.CSharp.Client fetch data from BlazorHosted.CSharp.Server

* Update templates to Blazor 0.0.5-preview1-10037

* Make date handling consistent across the templates

* Enable response compression in "hosted" template

* Enable response compression in dev server

* Simplify template app code using new namespace arrangement

* Fix project name in hosted template
This commit is contained in:
Steve Sanderson 2018-02-28 12:02:35 +00:00 committed by GitHub
parent 4bd3cd98d6
commit f3b10bfa4c
42 changed files with 178 additions and 108 deletions

View File

@ -76,15 +76,17 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "templates", "templates", "{
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorStandalone.CSharp", "src\Microsoft.AspNetCore.Blazor.Templates\content\BlazorStandalone.CSharp\BlazorStandalone.CSharp.csproj", "{A092FA91-856B-4ACA-B1C2-10BDBA366185}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorHosted", "src\Microsoft.AspNetCore.Blazor.Templates\content\BlazorHosted.CSharp\BlazorHosted\BlazorHosted.csproj", "{3EECBE6C-AD8A-4AE4-855E-B62D46F9755A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorHosted.Server", "src\Microsoft.AspNetCore.Blazor.Templates\content\BlazorHosted.CSharp\BlazorHosted.Server\BlazorHosted.Server.csproj", "{3C841633-DF1D-4C39-AADF-3B584E2D3D03}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HostedInAspNet", "HostedInAspNet", "{73DA1DFD-79F0-4BA2-B0B6-4F3A21D2C3F8}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BlazorHosted.CSharp", "BlazorHosted.CSharp", "{73DA1DFD-79F0-4BA2-B0B6-4F3A21D2C3F8}"
ProjectSection(SolutionItems) = preProject
src\Microsoft.AspNetCore.Blazor.Templates\content\BlazorHosted.CSharp\NuGet.config = src\Microsoft.AspNetCore.Blazor.Templates\content\BlazorHosted.CSharp\NuGet.config
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorHosted.CSharp.Client", "src\Microsoft.AspNetCore.Blazor.Templates\content\BlazorHosted.CSharp\BlazorHosted.CSharp.Client\BlazorHosted.CSharp.Client.csproj", "{7549444A-9C81-44DE-AD0D-2C55501EAAC7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorHosted.CSharp.Server", "src\Microsoft.AspNetCore.Blazor.Templates\content\BlazorHosted.CSharp\BlazorHosted.CSharp.Server\BlazorHosted.CSharp.Server.csproj", "{78ED9932-0912-4F36-8F82-33DE850E7A33}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorHosted.CSharp.Shared", "src\Microsoft.AspNetCore.Blazor.Templates\content\BlazorHosted.CSharp\BlazorHosted.CSharp.Shared\BlazorHosted.CSharp.Shared.csproj", "{F3E02B21-1127-431A-B832-0E53CB72097B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -195,14 +197,18 @@ Global
{A092FA91-856B-4ACA-B1C2-10BDBA366185}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A092FA91-856B-4ACA-B1C2-10BDBA366185}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A092FA91-856B-4ACA-B1C2-10BDBA366185}.Release|Any CPU.Build.0 = Release|Any CPU
{3EECBE6C-AD8A-4AE4-855E-B62D46F9755A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3EECBE6C-AD8A-4AE4-855E-B62D46F9755A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3EECBE6C-AD8A-4AE4-855E-B62D46F9755A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3EECBE6C-AD8A-4AE4-855E-B62D46F9755A}.Release|Any CPU.Build.0 = Release|Any CPU
{3C841633-DF1D-4C39-AADF-3B584E2D3D03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3C841633-DF1D-4C39-AADF-3B584E2D3D03}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3C841633-DF1D-4C39-AADF-3B584E2D3D03}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3C841633-DF1D-4C39-AADF-3B584E2D3D03}.Release|Any CPU.Build.0 = Release|Any CPU
{7549444A-9C81-44DE-AD0D-2C55501EAAC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7549444A-9C81-44DE-AD0D-2C55501EAAC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7549444A-9C81-44DE-AD0D-2C55501EAAC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7549444A-9C81-44DE-AD0D-2C55501EAAC7}.Release|Any CPU.Build.0 = Release|Any CPU
{78ED9932-0912-4F36-8F82-33DE850E7A33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{78ED9932-0912-4F36-8F82-33DE850E7A33}.Debug|Any CPU.Build.0 = Debug|Any CPU
{78ED9932-0912-4F36-8F82-33DE850E7A33}.Release|Any CPU.ActiveCfg = Release|Any CPU
{78ED9932-0912-4F36-8F82-33DE850E7A33}.Release|Any CPU.Build.0 = Release|Any CPU
{F3E02B21-1127-431A-B832-0E53CB72097B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F3E02B21-1127-431A-B832-0E53CB72097B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F3E02B21-1127-431A-B832-0E53CB72097B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F3E02B21-1127-431A-B832-0E53CB72097B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -239,9 +245,10 @@ Global
{AF79BB84-BAE6-4F9A-9AD5-B0E3D7455288} = {B867E038-B3CE-43E3-9292-61568C46CDEB}
{8C160273-0A1D-4D79-9F7B-7687B2D2F7C4} = {B867E038-B3CE-43E3-9292-61568C46CDEB}
{A092FA91-856B-4ACA-B1C2-10BDBA366185} = {E8EBA72C-D555-43AE-BC98-F0B2D05F6A07}
{3EECBE6C-AD8A-4AE4-855E-B62D46F9755A} = {73DA1DFD-79F0-4BA2-B0B6-4F3A21D2C3F8}
{3C841633-DF1D-4C39-AADF-3B584E2D3D03} = {73DA1DFD-79F0-4BA2-B0B6-4F3A21D2C3F8}
{73DA1DFD-79F0-4BA2-B0B6-4F3A21D2C3F8} = {E8EBA72C-D555-43AE-BC98-F0B2D05F6A07}
{7549444A-9C81-44DE-AD0D-2C55501EAAC7} = {73DA1DFD-79F0-4BA2-B0B6-4F3A21D2C3F8}
{78ED9932-0912-4F36-8F82-33DE850E7A33} = {73DA1DFD-79F0-4BA2-B0B6-4F3A21D2C3F8}
{F3E02B21-1127-431A-B832-0E53CB72097B} = {73DA1DFD-79F0-4BA2-B0B6-4F3A21D2C3F8}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {504DA352-6788-4DC0-8705-82167E72A4D3}

View File

@ -10,6 +10,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore.ResponseCompression" Version="2.0.1" />
</ItemGroup>
<ItemGroup>

View File

@ -4,10 +4,13 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.ResponseCompression;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.IO;
using System.Linq;
using System.Net.Mime;
namespace Microsoft.AspNetCore.Blazor.Cli.Server
{
@ -16,11 +19,17 @@ namespace Microsoft.AspNetCore.Blazor.Cli.Server
public void ConfigureServices(IServiceCollection services)
{
services.AddRouting();
services.AddResponseCompression(options =>
{
options.MimeTypes = ResponseCompressionDefaults.MimeTypes
.Concat(new[] { MediaTypeNames.Application.Octet });
});
}
public void Configure(IApplicationBuilder app, IConfiguration configuration)
{
app.UseDeveloperExceptionPage();
app.UseResponseCompression();
EnableConfiguredPathbase(app, configuration);
var clientAssemblyPath = FindClientAssemblyPath(app);

View File

@ -9,18 +9,19 @@
"guids": [
"4C26868E-5E7C-458D-82E3-040509D0C71F",
"5990939C-7E7B-4CFA-86FF-44CA5756498A",
"650B3CE7-2E93-4CC4-9F46-466686815EAA"
"650B3CE7-2E93-4CC4-9F46-466686815EAA",
"0AFFA7FD-4E37-4636-AB91-3753E746DB98"
],
"identity": "Microsoft.Web.Blazor.Hosted.CSharp",
"name": "Blazor (hosted in ASP.NET server)",
"preferNameDirectory": true,
"primaryOutputs": [
{
"path": "BlazorHosted.sln"
"path": "BlazorHosted.CSharp.sln"
}
],
"shortName": "blazorhosted",
"sourceName": "BlazorHosted",
"sourceName": "BlazorHosted.CSharp",
"sources": [
{
"source": "./",

View File

@ -0,0 +1,6 @@
<!--
Configuring this stuff here is temporary. Later we'll move the app config
into Program.cs, and it won't be necessary to specify AppAssembly.
-->
<c:Router AppAssembly=@(typeof(Program).Assembly)
PagesNamespace=@("BlazorHosted.CSharp.Client.Pages") />

View File

@ -1,13 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Blazor.Browser" Version="0.0.5-preview1-10031" PrivateAssets="all" />
<PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="0.0.5-preview1-10031" />
<PackageReference Include="Microsoft.AspNetCore.Blazor.Browser" Version="0.0.5-preview1-10038" PrivateAssets="all" />
<PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="0.0.5-preview1-10038" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\BlazorHosted.CSharp.Shared\BlazorHosted.CSharp.Shared.csproj" />
</ItemGroup>
</Project>

View File

@ -1,5 +1,5 @@
@using Microsoft.AspNetCore.Blazor
@using Microsoft.AspNetCore.Blazor.Browser.Services.Temporary
@using Microsoft.AspNetCore.Blazor.Browser.Services.Temporary
@using BlazorHosted.CSharp.Shared
@inject HttpClient Http
<h1>Weather forecast</h1>
@ -25,7 +25,7 @@ else
@foreach (var forecast in forecasts)
{
<tr>
<td>@forecast.DateFormatted</td>
<td>@forecast.Date.ToShortDateString()</td>
<td>@forecast.TemperatureC</td>
<td>@forecast.TemperatureF</td>
<td>@forecast.Summary</td>
@ -40,15 +40,7 @@ else
protected override async Task OnInitAsync()
{
var json = await Http.GetStringAsync("/sample-data/weather.json");
var json = await Http.GetStringAsync("/api/SampleData/WeatherForecasts");
forecasts = JsonUtil.Deserialize<WeatherForecast[]>(json);
}
class WeatherForecast
{
public string DateFormatted { get; set; }
public int TemperatureC { get; set; }
public int TemperatureF { get; set; }
public string Summary { get; set; }
}
}

View File

@ -2,7 +2,7 @@
using Microsoft.AspNetCore.Blazor.Browser.Services;
using System;
namespace BlazorHosted
namespace BlazorHosted.CSharp.Client
{
public class Program
{

View File

@ -1,5 +1,4 @@
@using Microsoft.AspNetCore.Blazor.RenderTree
@(Implements<Microsoft.AspNetCore.Blazor.Layouts.ILayoutComponent>())
@(Implements<ILayoutComponent>())
<div class='container-fluid'>
<div class='row'>

View File

@ -1,5 +1,4 @@
@using Microsoft.AspNetCore.Blazor.Routing
<div class='main-nav'>
<div class='main-nav'>
<div class='navbar navbar-inverse'>
<div class='navbar-header'>
<button type='button' class='navbar-toggle' data-toggle='collapse' data-target='.navbar-collapse'>
@ -8,7 +7,7 @@
<span class='icon-bar'></span>
<span class='icon-bar'></span>
</button>
<a class='navbar-brand' href='/'>BlazorHosted</a>
<a class='navbar-brand' href='/'>BlazorHosted.CSharp</a>
</div>
<div class='clearfix'></div>
<div class='navbar-collapse collapse'>

View File

@ -0,0 +1,5 @@
@using Microsoft.AspNetCore.Blazor
@using Microsoft.AspNetCore.Blazor.Layouts
@using Microsoft.AspNetCore.Blazor.Routing
@using BlazorHosted.CSharp.Client
@using BlazorHosted.CSharp.Client.Shared

View File

@ -2,7 +2,7 @@
<html>
<head>
<meta charset="utf-8" />
<title>BlazorHosted</title>
<title>BlazorHosted.CSharp</title>
<base href="/" />
<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="css/site.css" rel="stylesheet" />

View File

@ -6,11 +6,12 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Blazor.Server" Version="0.0.5-preview1-10031" />
<PackageReference Include="Microsoft.AspNetCore.Blazor.Server" Version="0.0.5-preview1-10038" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\BlazorHosted\BlazorHosted.csproj" />
<ProjectReference Include="..\BlazorHosted.CSharp.Client\BlazorHosted.CSharp.Client.csproj" />
<ProjectReference Include="..\BlazorHosted.CSharp.Shared\BlazorHosted.CSharp.Shared.csproj" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,30 @@
using BlazorHosted.CSharp.Shared;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace BlazorHosted.CSharp.Server.Controllers
{
[Route("api/[controller]")]
public class SampleDataController : Controller
{
private static string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
[HttpGet("[action]")]
public IEnumerable<WeatherForecast> WeatherForecasts()
{
var rng = new Random();
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = rng.Next(-20, 55),
Summary = Summaries[rng.Next(Summaries.Length)]
});
}
}
}

View File

@ -5,7 +5,7 @@ using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
namespace BlazorHosted.Server
namespace BlazorHosted.CSharp.Server
{
public class Program
{

View File

@ -3,9 +3,13 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.ResponseCompression;
using Microsoft.Extensions.DependencyInjection;
using Newtonsoft.Json.Serialization;
using System.Linq;
using System.Net.Mime;
namespace BlazorHosted.Server
namespace BlazorHosted.CSharp.Server
{
public class Startup
{
@ -13,17 +17,34 @@ namespace BlazorHosted.Server
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddJsonOptions(options =>
{
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
});
services.AddResponseCompression(options =>
{
options.MimeTypes = ResponseCompressionDefaults.MimeTypes
.Concat(new[] { MediaTypeNames.Application.Octet });
});
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseResponseCompression();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseBlazor<BlazorHosted.Program>();
app.UseMvc(routes =>
{
routes.MapRoute(name: "default", template: "{controller}/{action}/{id?}");
});
app.UseBlazor<Client.Program>();
}
}
}

View File

@ -0,0 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace BlazorHosted.CSharp.Shared
{
public class WeatherForecast
{
public DateTime Date { get; set; }
public int TemperatureC { get; set; }
public string Summary { get; set; }
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
}
}

View File

@ -2,9 +2,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2027
MinimumVisualStudioVersion = 15.0.26124.0
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorHosted", "BlazorHosted\BlazorHosted.csproj", "{5990939C-7E7B-4CFA-86FF-44CA5756498A}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorHosted.CSharp.Server", "BlazorHosted.CSharp.Server\BlazorHosted.CSharp.Server.csproj", "{650B3CE7-2E93-4CC4-9F46-466686815EAA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorHosted.Server", "BlazorHosted.Server\BlazorHosted.Server.csproj", "{650B3CE7-2E93-4CC4-9F46-466686815EAA}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorHosted.CSharp.Client", "BlazorHosted.CSharp.Client\BlazorHosted.CSharp.Client.csproj", "{5990939C-7E7B-4CFA-86FF-44CA5756498A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorHosted.CSharp.Shared", "BlazorHosted.CSharp.Shared\BlazorHosted.CSharp.Shared.csproj", "{0AFFA7FD-4E37-4636-AB91-3753E746DB98}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -40,6 +42,18 @@ Global
{650B3CE7-2E93-4CC4-9F46-466686815EAA}.Release|x64.Build.0 = Release|Any CPU
{650B3CE7-2E93-4CC4-9F46-466686815EAA}.Release|x86.ActiveCfg = Release|Any CPU
{650B3CE7-2E93-4CC4-9F46-466686815EAA}.Release|x86.Build.0 = Release|Any CPU
{0AFFA7FD-4E37-4636-AB91-3753E746DB98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0AFFA7FD-4E37-4636-AB91-3753E746DB98}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0AFFA7FD-4E37-4636-AB91-3753E746DB98}.Debug|x64.ActiveCfg = Debug|Any CPU
{0AFFA7FD-4E37-4636-AB91-3753E746DB98}.Debug|x64.Build.0 = Debug|Any CPU
{0AFFA7FD-4E37-4636-AB91-3753E746DB98}.Debug|x86.ActiveCfg = Debug|Any CPU
{0AFFA7FD-4E37-4636-AB91-3753E746DB98}.Debug|x86.Build.0 = Debug|Any CPU
{0AFFA7FD-4E37-4636-AB91-3753E746DB98}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0AFFA7FD-4E37-4636-AB91-3753E746DB98}.Release|Any CPU.Build.0 = Release|Any CPU
{0AFFA7FD-4E37-4636-AB91-3753E746DB98}.Release|x64.ActiveCfg = Release|Any CPU
{0AFFA7FD-4E37-4636-AB91-3753E746DB98}.Release|x64.Build.0 = Release|Any CPU
{0AFFA7FD-4E37-4636-AB91-3753E746DB98}.Release|x86.ActiveCfg = Release|Any CPU
{0AFFA7FD-4E37-4636-AB91-3753E746DB98}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -1,7 +0,0 @@
@using Microsoft.AspNetCore.Blazor.Routing
<!--
Configuring this stuff here is temporary. Later we'll move the app config
into Program.cs, and it won't be necessary to specify AppAssembly.
-->
<c:Router AppAssembly=@(typeof(BlazorHosted.Program).Assembly)
PagesNamespace=@("BlazorHosted.Pages") />

View File

@ -1 +0,0 @@
@(Layout<BlazorHosted.Shared.MainLayout>())

View File

@ -1,32 +0,0 @@
[
{
"DateFormatted": "06/05/2018",
"TemperatureC": 1,
"Summary": "Freezing",
"TemperatureF": 33
},
{
"DateFormatted": "07/05/2018",
"TemperatureC": 14,
"Summary": "Bracing",
"TemperatureF": 57
},
{
"DateFormatted": "08/05/2018",
"TemperatureC": -13,
"Summary": "Freezing",
"TemperatureF": 9
},
{
"DateFormatted": "09/05/2018",
"TemperatureC": -16,
"Summary": "Balmy",
"TemperatureF": 4
},
{
"DateFormatted": "10/05/2018",
"TemperatureC": -2,
"Summary": "Chilly",
"TemperatureF": 29
}
]

View File

@ -1,7 +1,6 @@
@using Microsoft.AspNetCore.Blazor.Routing
<!--
<!--
Configuring this stuff here is temporary. Later we'll move the app config
into Program.cs, and it won't be necessary to specify AppAssembly.
-->
<c:Router AppAssembly=@(typeof(BlazorStandalone.CSharp.Program).Assembly)
<c:Router AppAssembly=@(typeof(Program).Assembly)
PagesNamespace=@("BlazorStandalone.CSharp.Pages") />

View File

@ -1,16 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netstandard2.0</TargetFramework>
<RunCommand>dotnet</RunCommand>
<RunArguments>blazor serve</RunArguments>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Blazor.Browser" Version="0.0.5-preview1-10031" PrivateAssets="all" />
<PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="0.0.5-preview1-10031" />
<DotNetCliToolReference Include="Microsoft.AspNetCore.Blazor.Cli" Version="0.0.5-preview1-10031" />
<PackageReference Include="Microsoft.AspNetCore.Blazor.Browser" Version="0.0.5-preview1-10038" PrivateAssets="all" />
<PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="0.0.5-preview1-10038" />
<DotNetCliToolReference Include="Microsoft.AspNetCore.Blazor.Cli" Version="0.0.5-preview1-10038" />
</ItemGroup>
</Project>

View File

@ -1,5 +1,4 @@
@using Microsoft.AspNetCore.Blazor
@using Microsoft.AspNetCore.Blazor.Browser.Services.Temporary
@using Microsoft.AspNetCore.Blazor.Browser.Services.Temporary
@inject HttpClient Http
<h1>Weather forecast</h1>
@ -25,7 +24,7 @@ else
@foreach (var forecast in forecasts)
{
<tr>
<td>@forecast.DateFormatted</td>
<td>@forecast.Date.ToShortDateString()</td>
<td>@forecast.TemperatureC</td>
<td>@forecast.TemperatureF</td>
<td>@forecast.Summary</td>
@ -46,7 +45,7 @@ else
class WeatherForecast
{
public string DateFormatted { get; set; }
public DateTime Date { get; set; }
public int TemperatureC { get; set; }
public int TemperatureF { get; set; }
public string Summary { get; set; }

View File

@ -1 +1 @@
@(Layout<BlazorStandalone.CSharp.Shared.MainLayout>())
@(Layout<MainLayout>())

View File

@ -1,5 +1,4 @@
@using Microsoft.AspNetCore.Blazor.RenderTree
@(Implements<Microsoft.AspNetCore.Blazor.Layouts.ILayoutComponent>())
@(Implements<ILayoutComponent>())
<div class='container-fluid'>
<div class='row'>

View File

@ -1,5 +1,4 @@
@using Microsoft.AspNetCore.Blazor.Routing
<div class='main-nav'>
<div class='main-nav'>
<div class='navbar navbar-inverse'>
<div class='navbar-header'>
<button type='button' class='navbar-toggle' data-toggle='collapse' data-target='.navbar-collapse'>

View File

@ -0,0 +1,5 @@
@using Microsoft.AspNetCore.Blazor
@using Microsoft.AspNetCore.Blazor.Layouts
@using Microsoft.AspNetCore.Blazor.Routing
@using BlazorStandalone.CSharp
@using BlazorStandalone.CSharp.Shared

View File

@ -1,30 +1,30 @@
[
{
"DateFormatted": "06/05/2018",
"Date": "2018-05-06",
"TemperatureC": 1,
"Summary": "Freezing",
"TemperatureF": 33
},
{
"DateFormatted": "07/05/2018",
"Date": "2018-05-07",
"TemperatureC": 14,
"Summary": "Bracing",
"TemperatureF": 57
},
{
"DateFormatted": "08/05/2018",
"Date": "2018-05-08",
"TemperatureC": -13,
"Summary": "Freezing",
"TemperatureF": 9
},
{
"DateFormatted": "09/05/2018",
"Date": "2018-05-09",
"TemperatureC": -16,
"Summary": "Balmy",
"TemperatureF": 4
},
{
"DateFormatted": "10/05/2018",
"Date": "2018-05-10",
"TemperatureC": -2,
"Summary": "Chilly",
"TemperatureF": 29