Commit Graph

227 Commits

Author SHA1 Message Date
Pranav K f6a6e4bd07
Replat blazor on net5 (#23078)
* Replat blazor on net5

* Make all e2e tests pass

* Fixup

* Update js files

* Fixups

* Fixup

* Fixup

* Skip globalization tests

* Undo workarounds

* PR feedback

* Update dependencies from https://github.com/dotnet/runtime build 20200622.6

System.ComponentModel.Annotations , System.Diagnostics.DiagnosticSource , System.Diagnostics.EventLog , Microsoft.Extensions.Logging.Configuration , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Logging.EventLog , Microsoft.Extensions.Logging.EventSource , Microsoft.Extensions.Logging.TraceSource , Microsoft.Extensions.Options , Microsoft.Extensions.Options.ConfigurationExtensions , Microsoft.Extensions.Options.DataAnnotations , Microsoft.Extensions.Primitives , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging , Microsoft.Extensions.Internal.Transport , Microsoft.Extensions.Http , Microsoft.Extensions.Caching.Abstractions , Microsoft.Extensions.Caching.Memory , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Binder , Microsoft.Extensions.Configuration.CommandLine , Microsoft.Extensions.Configuration.EnvironmentVariables , Microsoft.Extensions.Configuration.FileExtensions , Microsoft.Extensions.Configuration.Ini , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.Configuration.UserSecrets , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileProviders.Composite , Microsoft.Extensions.FileProviders.Physical , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.HostFactoryResolver.Sources , Microsoft.Extensions.Hosting , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Configuration.Xml , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.Registry , Microsoft.Win32.SystemEvents , Microsoft.NETCore.App.Internal , Microsoft.NETCore.App.Ref , System.Drawing.Common , System.ServiceProcess.ServiceController , System.Text.Encodings.Web , System.Text.Json , System.Threading.Channels , System.Windows.Extensions , System.Security.Principal.Windows , System.Security.Permissions , System.Security.Cryptography.Xml , System.IO.Pipelines , System.Net.Http.Json , System.Net.Http.WinHttpHandler , System.Net.WebSockets.WebSocketProtocol , System.Reflection.Metadata , System.Runtime.CompilerServices.Unsafe , System.Security.Cryptography.Cng , System.Security.Cryptography.Pkcs
 From Version 5.0.0-preview.7.20321.2 -> To Version 5.0.0-preview.7.20322.6

* Update js file

* Fix version

* Fixup

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2020-06-23 18:19:55 -07:00
Steve Sanderson 36be16b640
Fix binding <select> to a null value (#23221) 2020-06-22 17:27:02 +01:00
Safia Abdalla 52de5ee4df
Fix up rendering for select elements with options component (#22978)
* Fix up rendering for select  elements with options component
* Commit updated compiled JS
* Update test case with more scenarios
2020-06-19 08:43:05 -07:00
Doug Bunting c4c6e25a06
Add missing doc files and cleanup nits (#22931)
* nit: Remove useless `$(HasReferenceAssembly)` settings
  - set in /Directory.Build.targets
    - `true` only in `$(IsAspNetCoreApp)` projects
* nit: Remove useless `$(CompileUsingReferenceAssemblies)` settings
  - no current versioning differences between ref/ and src/ assemblies when targeting default TFM
* Add more `$(GenerateDocumentationFile)` settings
  - increases the number of generated doc files, mostly without problems
- !fixup! correct typo in `DebugProxyHost` doc comments
    - was not generating a doc file before
  - remove previous (ineffective) src/Components/Directory.Build.targets setting
  - nit: remove a duplicate `$(GenerateDocumentationFile)` setting
* nit: Remove useless `$(IsPackable)` settings
  - only analyzers and implementation projects are packable by default
    - main use case for explicit setting is projects shipping only in shared framework
  - conditional setting in src/Mvc/Directory.Build.props just subset logic in /Directory.Build.targets
* nit: Remove useless `$(IsProjectReferenceProvider)` settings
  - only implementation projects are providers by default
* nit: Remove useless `$(IsTestAssetProject)` settings
  - set in src/Mvc/test/WebSites/Directory.Build.props
* !fixup! Looks like `InProcessNewShimWebSite` must compile w/o ref/ assemblies
  - restore `$(CompileUsingReferenceAssemblies)` in this one project
2020-06-17 13:04:45 -07:00
Pranav K 592dfe165b
Changes to build in master
* Cleanup bad merge
* Update to dotnet-serve that supports arbitrary ports
2020-05-28 15:43:55 -07:00
Pranav K 4c50b6cb16
Merge blazor-wasm in to master 2020-05-27 11:00:38 -07:00
Pranav K 8efeefb3d1
Merge branch 'blazor-wasm' into prkrishn/merge-blazor-wasm 2020-05-16 21:10:28 -07:00
Pranav K 8966415b6b
Merge commit 'bbafecc0535e1de3264845e51ea8b3d18eb3ca61' into prkrishn/merge-blazor-wasm 2020-05-15 10:12:32 -07:00
Pranav K 5da314644a Add an option to allow trimming collation data 2020-04-23 12:08:21 +01:00
dotnet-maestro[bot] b8f7dde377
[blazor-wasm] Update dependencies from dotnet/arcade dotnet/blazor (#20972)
* Update dependencies from https://github.com/dotnet/blazor build 20200417.2

- Microsoft.AspNetCore.Components.WebAssembly.Runtime: 3.2.0-rc1.20217.1 -> 3.2.0-rc1.20217.2

* Update dependencies from https://github.com/dotnet/blazor build 20200418.1

- Microsoft.AspNetCore.Components.WebAssembly.Runtime: 3.2.0-rc1.20217.1 -> 3.2.0-rc1.20218.1

* Update dependencies from https://github.com/dotnet/arcade build 20200418.1

- Microsoft.DotNet.Arcade.Sdk: 1.0.0-beta.20208.8 -> 1.0.0-beta.20218.1
- Microsoft.DotNet.GenAPI: 1.0.0-beta.20208.8 -> 1.0.0-beta.20218.1
- Microsoft.DotNet.Helix.Sdk: 2.0.0-beta.20208.8 -> 2.0.0-beta.20218.1

* Update dependencies from https://github.com/dotnet/blazor build 20200420.1

- Microsoft.AspNetCore.Components.WebAssembly.Runtime: 3.2.0-rc1.20217.1 -> 3.2.0-rc1.20220.1

* Update to BROWSER RID

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Pranav K <prkrishn@hotmail.com>
2020-04-21 20:19:04 +00:00
Safia Abdalla 089bb4a072
Improve tests for logging configuration support (#20973) 2020-04-17 20:55:07 -07:00
Pranav K d2ee131fd8
Fixup reference to M.AspNetCore.Components.WebAssembly.HttpHandler (#20891)
* Fixup reference to Microsoft.AspNetCore.Components.WebAssembly.HttpHandler

As part of attempting to fix the reference in the test project (which ultimately wasn't needed), I messed up the package reference in the WebAssembly package
This fixes the package reference and removes unnecessary code from the test project
2020-04-17 14:23:20 -07:00
Pranav K 1e70883e87
Create a ref-assembly package for HttpHandler (#20382)
* Create a ref-assembly package for HttpHandler

Fixes #19202
2020-04-13 14:07:15 -07:00
Safia Abdalla c4703acfa7
Enable reading and editing from same Configuration object (#20647) 2020-04-10 09:59:05 -07:00
Safia Abdalla e67e7a08ca
Remove WebAssemblyLoggerFactory and refactor logging setup (#20432)
**Changes in this PR**
 - Replaces `WebAssemblyLoggerFactory` with `LoggerFactory` from logging extensions package
 - Moves WebAssemblyConsoleLogger and PrependMessageLogger to provider model

Now that we are using the standard `LoggerFactory` support for config options like `SetMinimumLevel` and `AddProvider` is available.

Compared to what is currently in the `blazor-wasm` branch, the changes in this PR add an additional 12 kb to the total compressed size.

Addresses #19737
2020-04-03 10:22:05 -07:00
Steve Sanderson 113cb5422d
Support JsonStringEnumConverter. Fixes #19086 (#20446)
* Fix serializing enums. Fixes #19086

* Add E2E test
2020-04-02 16:09:34 +01:00
John Luo fcb23108b6 Relocate Logging.Testing to AspNetCore.Testing 2020-04-02 00:16:01 -07:00
Steve Sanderson 05ee136e87 Rename site.css to app.css. Fixes #19779 2020-03-31 12:31:57 +01:00
Safia Abdalla a57943a443
Add support for optional parameters in Blazor routes (#19733) 2020-03-30 12:30:28 -07:00
Pranav K 82d05ae785
Add support for loading satellite assemblies (#20033)
* Add support for loading satellite assemblies

Fixes #17016
2020-03-26 13:58:00 -07:00
Pranav K cb6858fe31
Update to using System.Net.Http.Json (#20195) 2020-03-26 10:13:23 -07:00
Pranav K de2fa4c69c Update versions
* Update Blazor version to preview4
* Update ASP.NET Core references to 3.1.3
* Remove DisableImplicitComponentsAnalyzers workaround
2020-03-25 15:59:17 -07:00
Pranav K 47536a3c14
Blazor wasm preview4 (#20117)
* Restore public API contract on WebAssemblyJSRuntime (#19968)

* Shrink icon-512.png (#19999)

* Use custom DebugProxyHost to initialize DebugProxy config (#19980)

Addresses #19909

* Spruce up WebAssemblyHostEnvironment interface and use (#20008)

* Load .dlls/.wasm/.pdb in parallel with dotnet.*.js. Fixes #18898 (#20029)

* Add BaseAddress property to WebAssemblyHostEnvironment (#20019)

- Adds `BaseAddress` to `IWebAssemblyHostEnvironment`
- Uses unmarshalled APIs to extract application host
- Move NavigationManager initialization to startup code
- Fix subdir mapping in ClientSideHostingTest

Addresses #19910

Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
Co-authored-by: Safia Abdalla <safia@safia.rocks>
Co-authored-by: Safia Abdalla <safia@microsoft.com>
2020-03-25 01:51:55 +00:00
Steve Sanderson 9343d2bca0
Log unhandled exceptions to custom logger (#19606) 2020-03-13 10:40:02 +00:00
Pranav K 147c39289a
Add support for configuration (#19544)
* Add support for configuration

Fixes https://github.com/dotnet/aspnetcore/issues/18675
2020-03-12 11:38:06 -07:00
Safia Abdalla f0ac5b07ee Fix copy/paste type in test asset 2020-02-27 11:56:17 -08:00
Safia Abdalla 677a1b5be7 Add tests for short values in BindTests 2020-02-27 11:56:17 -08:00
Safia Abdalla c1158b6718 Add tests for short values in <InputNumber/> 2020-02-27 11:56:17 -08:00
Pranav K 7ba8d06717
BlazorWASM: API review (#19219)
Fixes https://github.com/dotnet/aspnetcore/issues/13174
2020-02-21 12:58:02 -08:00
Javier Calvarro Nelson 9ded8e17d4
Change MapBlazorWebAssemblyApplication to UseBlazorFrameworkFiles (#19198) 2020-02-21 04:20:41 -08:00
Marlon Regenhardt 6a85855fbb
[Blazor][Wasm] Move HttpClient from default services to Program.Main (#19119)
* [Blazor][Wasm] Move HttpClient from default services to extension method (#16929)

* Apply suggestions from code review

Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
2020-02-20 10:47:49 -08:00
Javier Calvarro Nelson c39bc6a6bd
[Blazor] Move to MapBlazorWebAssemblyApplication (#19147)
Move to MapBlazorWebAssemblyApplication as the way to map blazor files into a hosted application.
2020-02-19 23:56:43 -08:00
Javier Calvarro Nelson 0e155fd7ca
[Fixes #12588][Blazor] Move Blazor to use Static Web Assets (#18409)
* [Blazor] Move Blazor to use Static Web Assets
* Plugs-in Blazor wasm through the static web assets infrastructure.
* Avoids the need for a custom Blazor.config file.
* Removes broken auto-rebuild and debug support.
* Removes unnecessary server-side Blazor helpers.
2020-02-19 04:05:03 -08:00
Stephen Halter 88073f86ff Merge branch 'release/3.1' into master 2020-02-18 13:46:51 -08:00
Pranav K c935e9aa2d
Blazor WebAssembly package renames (#19026)
Fixes https://github.com/dotnet/aspnetcore/issues/18384
2020-02-18 10:54:28 -08:00
Javier Calvarro Nelson 0dbb01bd8c
[Blazor] Adds an authentication library for Blazor webassembly (#18851)
* Adds a Microsoft.AspNetCore.Components.WebAssembly.Authentication
  library for performing authentication in Blazor webassembly.
* Includes a default implementation that supports OIDC capable IdPs
  using oidc-client.js
* Includes multiple primitives to deal with authentication flows and
  supports acquiring access tokens to call APIs.
  * RemoteAuthenticatorView is responsible for handling authentication
    operations at the user interface level.
  * RemoteAuthenticatorService is responsible for handling the lower
    level authentication details by using JavaScript interop to interact
    with the underlying javascript library implementing the auth protocol.
  * SignOutSessionStateManager handles CSRF protection for the logout
    path.
  * IAccessTokenProvider handles provisioning access tokens to call APIs.
2020-02-17 14:36:57 -08:00
Pranav K f54902f169
Purge the blazor-wasm branch 2020-02-03 17:49:41 -08:00
Ryan Nowak 3111032dc0 Rework of Blazor startup experience
Fixes: #16874

This is a significant simplication of our startup code model for Blazor
wasm with the goal of removing concepts that don't make much sense here.
Previously in this area we've tried to be consistent with ASP.NET Core
on the server, but it's not helping up much in WASM.

We're still leveraging some of the lessons from server-size ASP.NET
(hello CreateDefaultBuilder) but consistency is no longer a goal.

This change actually makes a bunch of scenarios better (rather than
removing features) - it's now possible to access services from the
application's DI scope and initialize them before the UI is shown
`RunAsync`.

This change also adds configuration in a central way. There's nothing in
this change that populates configuration in an automatic way, that will
come next.
2020-01-21 15:48:49 -08:00
Pranav K cd518e9da3 Use reference assemblies when compiling Razor views (#18395)
* Use reference assemblies when compiling Razor views
Fixes https://github.com/dotnet/aspnetcore/issues/18323

* Avoid mixing runtime and ref assembly
2020-01-16 17:56:14 -08:00
Doug Bunting 02e51bdc26
Merge branch 'master' into merge/blazor-wasm-to-master 2019-12-13 08:25:48 -08:00
Steve Sanderson 4310fa72f7
Fix selecting empty values in dropdown. Fixes #17735 (#17838) 2019-12-13 10:22:51 +00:00
Doug Bunting 49d1b9329f
Merge branch 'master' into merge/blazor-wasm-to-master 2019-12-12 10:05:10 -08:00
Steve Sanderson 3a93704737
Support async main (#17673) 2019-12-12 15:05:12 +00:00
Doug Bunting 7ba757265f
Merge branch 'release/3.1' into merge/release/3.0-to-release/3.1
- upgrade Arcade SDK to '1.0.0-beta.19607.3'
- regenerate eng/ProjectReferences.props and ref/ projects
2019-12-11 20:03:03 -08:00
Doug Bunting cf6b5028c3
Improve generation and use of ref/ projects (#17311)
* Remove useless src/PackageArchive files
- not used outside 2.x branches

* Improve use of ref/ assemblies
- compile against ref/ assemblies but do not change package metadata
  - update the metadata of implementation projects to include the ref/ assembly path
  - update `@(ReferenceAssembly)` metadata for Extensions packages, not `@(PackageReference)`
  - can be disabled using `$(CompileUsingReferenceAssemblies)` e.g. when generating ref/ projects
- include ref/ projects in source build by default
  - remove `$(ExcludeFromSourceBuild)` overrides from ref/ project files
- use latest package references and use project references even when _not_ building the targeting packs
- restore previous `@(Reference)` -> `@(PackageReference)` logic
  - add build-only Microsoft.Internal.Extensions.Refs package reference in most cases
- remove IndirectReferences.props and `@(_ExtensionInternalRefAssemblies)`; no longer needed

* Improve ref/ project generation
- use ../src/**/AssemblyInfo.cs files instead of including attributes in *.Manual.cs files
  - for same reason, copy `@(InternalsVisibleto)` items from src/ to ref/ projects
- use eng/targets/CSharp.ReferenceAssembly.props instead of ref/Directory.Build.props files
- use TFM-specific *.Manual.cs files in ref/ project files instead of ref/Directory.Build.props files

optimizations and usability improvements:
- add `$(BuildMainlyReferenceProviders)` property to focus on reference providers when generating ref/ projects
- disable `$(UseReferenceAssemblyInImplementation)` to avoid using ref/ projects while generating them

nits:
- clean up whitespace and remove blank lines in ref/ project files

* Perform smaller cleanup
- remove `$(IsTargetingPackPatching)`; use only `$(IsTargetingPackBuilding)`
- remove `$(DisableServicingFeatures)`; enable the servicing features we need
  - suppress baseline references even in servicing builds
- restore `$(AdditionalGenApiCmdOptions)`; useful when updating *.Manual.cs files

nits:
- simplify conditions using `$(HasReferenceAssembly)`
- correct spelling in comments
- shorten long lines

* Use a response file for GenAPI commands
- work around dotnet/arcade#4021 and help with additional ref assemblies
- mimic 111462e0c2 and integrate w/ other changes here

* Undo some manual ref/ project changes
- now done automatically or centrally
- remove manual `[TypeForwardedTo]` and `[InternalsVisibleTo]` attributes
  - fully qualify a type now that `using` is gone
- remove dupe `@(Compile)` items for *.Manual.cs files; included in the ref/ project files
- remove redundant `$(AllowUnsafeBlocks)` and `$(NoWarn)` settings

nits:
- rename a *.Manual.cs file that's not TFM-specific
- remove `private` members

* Correct use of `@(ProjectReference)` items for reference providers
- use `@(Reference)` instead

* Remove recently-added `@(Compile)` and `@(Reference)` items
- were added due to missing `[InternalsVisibleTo]` attributes in ref/ assemblies or as early workarounds
  - plus, now transitive references **Just Work™️**
- expose `ClosedGenericMatcher` in the usual (*.Manual.cs) way
- also undo Microsoft.Extensions.ApiDescription.Server workaround

* Remove `private` members from ref/ *.Manual.cs files
- not useful and bloat the ref/ assemblies

* Cleanup warnings
- avoid "CSC warning CS2008: No source files specified." building site extensions
- correct warnings (as errors) about `RenderToStringResult` being obsolete
  - add Microsoft.AspNetCore.SpaServices.Tests to Middleware solution

* Remove `@(RuntimeHostConfigurationOption)` workarounds
- deps files are unaffected by new ref/ assembly handling and test projects aren't special-cased
- also execute a test previously skipped due to deps file problems

* Regenerate ref/ projects
- pick up the latest generation changes

(unclear why Mvc.RazorPages/ref/Microsoft.AspNetCore.Mvc.RazorPages.netcoreapp3.0.cs changed but works)

* Fill in missing `internal` types 1 of n
- rename Microsoft.AspNetCore.Components.netstandard2.0.Manual.cs; need `RenderTreeFrame` type everywhere
- add types needed in unit and perf tests to *.Manual.cs files

* Clean up recent commits
- remove recently-added `private` members
- restore `_dummyPrimitive` fields in Microsoft.AspNetCore.Server.HttpSys.Manual.cs

* Add *.Manual.cs files for more projects

* !fixup! fields in *.Manual.cs `struct`s
- GenAPI sometimes generates `_dummy` and `_dummyPrimitive` fields _instead of_ visible members
- what GenAPI generates sometimes have the right length but actual fields don't hurt
  - that is, using the real fields corrects both the visible API and `struct`s' sizes

nits:
- consolidate `namespace`s in Microsoft.AspNetCore.Mvc.Core.Manual.cs

* Remove special case for generating ref/ projects on non-Windows
- referenced issue was closed with no action but workaround still not required
- no tabs in generated content

* Only create ref/ projects for assemblies in the shared framework
- restrict when `$(HasReferenceAssembly)` is `true` by default
- add warnings when `$(IsAspNetCoreApp)` or `$(HasReferenceAssembly)` have unexpected values

* Remove "extra" ref/ projects
- associated implementation projects no longer have `$(HasReferenceAssembly)` set to `true`

* Add a few GenAPI exclusions
- see dotnet/arcade#4488
- generation for these members leads to NREs

* Add more `internal` types and members
- Identity/Core
- Identity/Extensions.Core
- Mvc/Mvc.ViewFeatures

* Add direct dependencies to work around CS1705 errors
- add direct references to some test and sample projects to make intent clear i.e. address CS1705 root cause
  - these projects must use implementation assemblies for those direct references
  - requirement also applies to anything depending on them e.g. functional tests
  - for simplicity, use `$(CompileUsingReferenceAssemblies)` instead of targeted `@(Reference)` metadata
- leads to ~40 projects that do not themselves add ref/ metadata
  - this is _not_ transitive i.e. it applies only to projects that override `$(CompileUsingReferenceAssemblies)`

* nits: Remove a few more `private` members in *.Manual.cs files

* !fixup! correct namespaces of a few types in *.Manual.cs files

* Try another way to fix Microsoft.AspNetCore.Blazor.Build.Tests

* Try another way to fix missing targets in Web.JS.npmproj
2019-12-11 07:36:59 -08:00
Pranav K 6e8d862deb
Merge commit '40a0173e9d9410cfdcd0c5afe33bec3e1165092f' into prkrishn/merge-blazor-wasm 2019-12-04 14:41:17 -08:00
Javier Calvarro Nelson e3dcd41304
[Blazor] Pins the SDK version to 3.1 and forces Blazor projects to compile against it (#17479) 2019-11-28 23:12:44 +01:00
Steve Sanderson 5b30797592
Blazor WebAssembly move to netstandard2.1 (#16808)
* Now works on ns2.1, but links too much

* Now only link System.* assemblies

* Clean up. Also link Microsoft.Extensions.* now too, since it works.

* x-plat slash consistency

* Change all Blazor.* projects to netstandard2.1

* Further TFM updates

* Stop linking Microsoft.Extensions for now, since it requires a more detailed treatment to avoid breaking things
2019-11-12 16:16:40 +00:00
Brennan Conroy 6caada9c14 Merge branch 'merge/release/3.1-to-master' of https://github.com/dotnet-maestro-bot/AspNetCore into merge/release/3.1-to-master 2019-11-11 10:04:23 -08:00
Kevin Pilch 5195d15939 Update some tests 2019-11-05 11:24:48 -08:00