Commit Graph

28 Commits

Author SHA1 Message Date
Pranav K 690c717314
Update to latest SDK (#25421)
* React to platform compatibility analyzer warnings
* React to new warnings
* Add platform compatibility attributes
2020-09-10 15:12:17 -07:00
Javier Calvarro Nelson 3d38d397ae
[Blazor] CSS isolation follow-ups (#25565)
This change includes several improvements to CSS isolation that we have gathered from validation and usage feedback.

We have switched from producing a single scoped CSS bundle file for the entire application with all the scoped css files from the current project, referenced projects and package projects to producing one bundle per referenced project/package and to include those bundles into an "application" bundle throught CSS @import statements.

We have cleaned up the bundle names to make them more unique by including the project name on them and we have also cleaned up the bundle extensions.

We have decided to put the individual bundles generated for the project scoped css assets into the static web assets base path of the project, so that when developers reference assets from their scoped css files (like using the CSS url function) the path they use matches what they have inside their library wwwroot folder.

We have decided to put the application bundle on the root path of the application provided that the developer has not overriden the default StaticWebAssetsBasePath.

This is so that the bundle location is consistent across templates, and can be found at ProjectName.styles.css independent of whether the app is a blazor webassembly app or a server side blazor app.

For cases where the default StaticWebAssetBasePath has been overriden, the value is respected and the bundle is placed at $(StaticWebAssetBasePath)/ProjectName.styles.css.

Packaged razor class libraries with scoped css files now package a "project" bundle instead of the individual files.
2020-09-04 10:54:44 -07:00
Brennan df04381411
Quarantine flaky Razor Integration tests (#25043) 2020-08-19 14:34:12 -07:00
Pranav K 8e5533f2a3
Use BlazorWebAssemblySDK (#24371)
* Use BlazorWebAssemblySDK

* Update projects to use the BlazorSDK
* Remove tasks and targets from RazorSDK
* Remove workarounds from BlazorSDK

* Fixup

* Fixup
2020-08-11 17:29:01 +00:00
dotnet-maestro[bot] f52077f599
[master] Update dependencies from dotnet/runtime dotnet/efcore (#24496)
* React to SDK changes

* Skip instead of quar

* Rely on transitive Microsoft.Bcl.AsyncInterfaces since it's now part of DependencyInjection.
    - This was introduced as part of: https://github.com/dotnet/runtime/pull/40189
    - Prior to this we'd get version conflicts for our referenced Bcl.AsyncInterfaces.

* Update global.json
    - move to RC1 SDK

* React to runtime nullability changes with DataAnnotations.
    - ValidationResult was updated to declare its nullability: a9009db46e (diff-8e86bc8fee3eb0242c5b8368dfabe065)

* Stop using HttpRequestMessage.Properties in favor of non-obsoleted HttpRequestMessage.Options.
    - Introduced in 3eda592cf4

* Stop using more HttpRequestMessage.Properties in Component's web assembly project.
    - Introduced in dotnet/runtime@3eda592

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

System.ComponentModel.Annotations , System.Diagnostics.DiagnosticSource , System.Diagnostics.EventLog , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , 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.Internal.Transport , Microsoft.Extensions.Http , Microsoft.Extensions.Hosting , 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.Configuration.Xml , 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.Abstractions , 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.Text.Encodings.Web , System.Text.Json , System.Threading.Channels , System.Windows.Extensions , System.ServiceProcess.ServiceController , System.Security.Principal.Windows , System.IO.Pipelines , System.Net.Http.Json , System.Net.Http.WinHttpHandler , System.Net.WebSockets.WebSocketProtocol , System.Reflection.Metadata , System.Resources.Extensions , System.Runtime.CompilerServices.Unsafe , System.Security.AccessControl , System.Security.Cryptography.Cng , System.Security.Cryptography.Pkcs , System.Security.Cryptography.Xml , System.Security.Permissions
 From Version 5.0.0-rc.1.20370.4 -> To Version 5.0.0-rc.1.20404.16

* Ignitor to 5.0

* Constants

* Update dependencies from https://github.com/dotnet/efcore build 20200805.3

Microsoft.EntityFrameworkCore.Tools , Microsoft.EntityFrameworkCore.SqlServer , dotnet-ef , Microsoft.EntityFrameworkCore , Microsoft.EntityFrameworkCore.Relational , Microsoft.EntityFrameworkCore.Sqlite , Microsoft.EntityFrameworkCore.InMemory
 From Version 5.0.0-rc.1.20372.13 -> To Version 5.0.0-rc.1.20405.3

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Pranav K <prkrishn@hotmail.com>
Co-authored-by: wtgodbe <wigodbe@microsoft.com>
Co-authored-by: N. Taylor Mullen <nimullen@microsoft.com>
Co-authored-by: Justin Kotalik <jukotali@microsoft.com>
2020-08-05 18:42:25 -07:00
Doug Bunting e13368391b
Keep `@(Reference)` metadata when creating `@(ProjectReference)` items (#21567)
- #20818, fix e.g. references to Microsoft.Web.Xdt.Extensions in our packages
- make `@(Reference)` items much more broadly applicable
- emit an error when `@(ProjectReference)` is used instead of `@(Reference)`
    - then get rid of the errors (!!)
- rename a couple of projects to match their assembly names
    - then regenerate the `@(ProjectReferenceProvider)` items
- switch intersection approach from Exclude / Exclude to Copy / Update / Copy

Projects of particular interest:
- src/DefaultBuilder/src/Microsoft.AspNetCore.csproj
    - honouring metadata left e.g. Microsoft.AspNetCore.Components.WebAssembly.DevServer package unchanged
    - removed redundant metadata after that confirmation
- src/Razor/tools/Microsoft.AspNetCore.Razor.Internal.Transport/
    - content of this package unchanged but metadata avoids extra work
    - add a comment about the extra work
- src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/
    - success! removes Microsoft.Web.Xdt.Extensions dependency from the package
- src/SiteExtensions/Runtime/Microsoft.AspNetCore.Runtime.SiteExtension.pkgproj
    - add a `Condition` to avoid an ordering issue I hit here
- src/Tools/Extensions.ApiDescription.Server/src/
    - avoid errors the new build ordering and timing caused

Separately, up the timeout in the `<DownloadFile />` task
- hit repeated timeouts downloading dotnet-runtime-5.0.0-rc.1.20370.4-win-x64.zip

nits:
- remove dupe `@(Reference)` item in Microsoft.AspNetCore.Components.WebAssembly.DevServer.csproj
- remove useless `%(ProjectReference.IsImplicitlyDefined)` metadata as well as its misspellings
- remove extra spaces from ProjectReferences.props
- clean up a few comments in ResolveReferences.targets

* !fixup! Correct other references to renamed projects
2020-08-04 10:05:55 -07:00
Pranav K f495fcb151
Avoid doing unncecessary work when generating component declaration files. (#24445)
The output of the declaration file for Razor components are unaffected by all inputs other than the input .razor file.
Consequently we can avoid regenerating these files if the output is newer than the input. This is the same heuristic we apply to Blazor WebAsssembly's
compression artifacts.

This PR combines these two improvements for a ~90ms (10%) improvement in the inner loop.

```
       17 ms  GenerateBlazorWebAssemblyBootJson          1 calls
       22 ms  Copy                                       8 calls
       39 ms  ProcessFrameworkReferences                 1 calls
       40 ms  RazorTagHelper                             1 calls
       51 ms  ResolveAssemblyReference                   1 calls
       70 ms  GetFileHash                                1 calls
       80 ms  RazorGenerate                              2 calls
      111 ms  Csc                                        2 calls

      Time Elapsed 00:00:00.95
```

```
       17 ms  GenerateBlazorWebAssemblyBootJson          1 calls
       21 ms  Copy                                       8 calls
       37 ms  ProcessFrameworkReferences                 1 calls
       51 ms  ResolveAssemblyReference                   1 calls
       70 ms  Csc                                        1 calls
       72 ms  GetFileHash                                1 calls
       79 ms  RazorGenerate                              2 calls

Time Elapsed 00:00:00.86
```

In after: Csc calls reduced to one, RazorTagHelper call removed.
2020-07-31 20:40:52 +00:00
Javier Calvarro Nelson 3a819929a7
[Blazor] Wires up CSS isolation (#24221)
* Wires up CSS isolation on the build.
* Transforms the css files during build.
* Bundles all scopes css into a single file and exposes it on _framework/scoped.styles.cs
* Packs pre-processed files as static web assets.
2020-07-24 09:02:36 +02:00
Safia Abdalla 537ab96eb2
Merge branch 'master' into merge/release/5.0-preview8-to-master 2020-07-21 01:40:02 +00:00
Pranav K e822f5f12d
Create a Blazor WebAssembly SDK (#24044) 2020-07-20 13:25:49 -07:00
Stephen Halter 30c33aad11
Quarantine flaky tests (#23995) 2020-07-16 11:47:47 -07:00
Brennan f0bb1315cc
Quarantine Publish_WithoutLinkerAndCompression_UpdatesFilesWhenSourcesChange (#23900) 2020-07-13 18:18:25 -07:00
Pranav K 69ec50bfd8
Increase test timeouts (#23868) 2020-07-13 21:58:54 +00:00
Brennan dbfdc5c87b
Update StaticWebAssetsIntegrationTest.cs (#23859) 2020-07-10 15:34:26 -07:00
Safia Abdalla bbc116254a
Add framework support for lazy-loading assemblies on route change (#23290)
* Add framework support for lazy-loading assemblies on route change
* Configure lazy-loaded assemblies in WebAssemblyLazyLoadDefinition
* Move tests to WebAssembly-only scenarios
* Refactor RouteTableFactory and add WebAssemblyDynamicResourceLoader
* Address feedback from peer review
* Rename 'dynamicAssembly' to 'lazyAssembly' and address peer review
* Add sample with loading state
* Update Router API and assembly loading tests
* Support and test cancellation and pre-rendering
* Apply suggestions from code review
Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
* Spurce up API and add tests for pre-rendering scenario
* Use CT instead of CTS in NavigationContext
* Address feedback from peer review
* Remove extra test file and update Router
Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
2020-07-08 18:16:47 -07:00
Doug Bunting 16be480616
Quarantine tests and bump Helix timeouts (#23762)
- see #23756 and #23757 for more info on quarantined tests
- see #23760 for more info on Helix timeouts
2020-07-07 19:56:30 -07:00
Pranav K 80de1e7588
Quarantine test (#23636) 2020-07-06 15:49:33 +00:00
Pranav K de034feb98
Merge branch 'master' into merge/release/5.0-preview7-to-master 2020-07-05 20:54:56 -07:00
Pranav K 499a3bcdc1
Add support for gzip compression during build and publish (#23611)
* Add support for gzip compression during build and publish

3.2 shipped with gzip compression during build and publish. During the port to 5.0, the build and publish
pipeline was different and ended up only during brotli compression during publish. However, during build
the app size is now up to 20MB. Statically compressing runtime assets during build reduces the payload size
to about 8.5 MB. This should help with faster initial boot ups and perception.

* Quarantine test

* More quarantine
2020-07-03 17:20:17 -07:00
Pranav K 9a4e6cf97c
Merge remote-tracking branch 'origin/release/5.0-preview7' 2020-07-02 11:42:14 -07:00
Pranav K 8768cab874
Use linker extensibility to enable better trimming (#23512)
* Use linker extensibility to enable better trimming

* Configure TrimmerDefaults=link if unspecified
* Allow Microsoft.AspNetCore.* and Microsoft.Extensions.* packages to be trimmed.

* Make producing the trimmer root descriptor more incremental
2020-06-30 20:39:58 -07:00
Pranav K b93db41b5e
Merge branch 'master' into merge/release/5.0-preview7-to-master 2020-06-29 13:29:53 -07:00
Chris Ross e906c2067b
Quarantine Publish_HostedApp_WithSatelliteAssemblies (#23479) 2020-06-29 19:34:09 +00:00
Pranav K 23a3e845e5
Add RazorLangVersion 5.0 (#23408)
* Add RazorLangVersion 5.0

* Fixup more tests. Add a test for 3.1
2020-06-26 17:49:29 -07:00
Brennan e4158e8a59
Quarantine Publish_HostedApp_VisualStudio_WithSatelliteAssemblies and Publish_UpdatesFilesWhenSourcesChange (#23398)
* Update WasmPublishIntegrationTest.cs

* Update WasmCompressionTests.cs
2020-06-26 22:42:48 +00:00
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
Javier Calvarro Nelson 53696e4228
Quarantine static web assets tests so we can capture more data for diagnostics (#22876) 2020-06-12 10:14:22 -07:00
Pranav K 0a42cca945
Razor SDK build ordering issues (#22684)
* Razor SDK build ordering issues

* Build the SDK completely regardless of the MSBuild runtime type
* Split SDK integration tests into a separate project. Clean up project file

* Add project to sln

* Update Microsoft.NET.Sdk.Razor.csproj

* Fixup tests

* Avoid rebuilding dependencies if they appear up to date. Fixup tests

* Fixup

* Update CSharp.Common.props

* Cleanup the build
2020-06-11 21:16:05 +00:00