Commit Graph

20 Commits

Author SHA1 Message Date
Ryan Nowak 13fc89ce49 Dispose DI scope with async support in circuit host
Fixes part of #12918

This fixes the part of this issue that we're going to be able to do in
3.0 safely.
2019-08-14 15:24:02 -07:00
Steve Sanderson 6b2d9f23f8
Prerender select elements with value; move HtmlRenderer into Mvc.ViewFeatures (#12996) 2019-08-13 09:34:28 +01:00
Ryan Nowak 18f5ec71ed Terminate circuit on error
Fixes: #11845

See: https://github.com/aspnet/AspNetCore/pull/12857 for detailed notes.
2019-08-11 10:49:14 -07:00
Steve Sanderson d716ca9d62
Remove .Web IVTs and refactor. Fixes #12713 (#12967)
* Remove IVTs from Microsoft.AspNetCore.Components.Web to .Blazor/.Server

* Eliminate RendererRegistry from .Web, as it's not needed for server-side Blazor

* Reintroduce RendererRegistry as a WebAssembly-specific concept. Refactor event data parsing.

* Remove redundant guard

* Corresponding test updates

* Update ref sources

* CR: Remove renderer ID fully from server-side Blazor code

* CR: Make WebEventData internal and shared-source

* Hub test updates

* Clean whitespace

* Update binaries

* Regenerate binaries AGAIN

* Update Jest test

* CR: Replace constructor with static parse

* Yet again attempt to refresh the .js binaries

* Fix ref assembly

* Fix test
2019-08-09 00:03:40 +01:00
Javier Calvarro Nelson 31cfa2e305
[Blazor][Fixes #11964] Limit the amount of pending renders (#12763)
[Blazor][Fixes #11964] Limit the amount of pending renders
* Adds a default limit of 10 queued pending renders per application.
* Stops producing new render batches after that limit is hit.
* Resumes producing render batches as soon as the client acknowledges a batch.
2019-08-06 16:22:07 +02:00
Ryan Nowak bfd4305fd8
Blazor API Review: Parameters (#12547)
* Blazor API Review: Parameters

Part of #11610
2019-07-26 09:46:47 -07:00
Ryan Nowak 8ce68d04c1 Rename Configure -> Attach
Part of: #11610
2019-07-17 20:36:23 -07:00
Ryan Nowak a27b9fc335
Blazor API Review: Design concept for Dispatcher (#11930)
* Design concept for Dispatcher

Part of: #11610

This change brings forward the Dispatcher as a more primary and more
expandable concept.
- Dispatcher shows up in more places
- Dispatcher is an abstract class for horizontal scalability
- Dispatcher has parallels with S.Windows.Threading.Dispatcher where
possible

Looking for feedback on this approach. I feel pretty strongly that
making this an abstract class is the right choice, I want to see
opinions on how much to push it into people's faces.

* WIP

* PR feedback
2019-07-11 17:31:57 -07:00
Steve Sanderson 6534bcff32
Expand Blazor logging (#11919) 2019-07-08 13:50:19 +01:00
Steve Sanderson ee1cbda155 Ensure CircuitHost disposes DI scope even if other disposals throw 2019-07-05 09:41:04 +01:00
Ryan Nowak 291ad25f5d Rename .Components.Browser -> Components.Web
This is part of API review for Blazor. We're renaming these projects to
reflect the fact that they are for Blazor using web technologies (html
+css).

The old naming of .Browser of whether it meant client-side (in the
browser).
2019-07-01 15:36:35 -07:00
Javier Calvarro Nelson 2d2806b083
Better circuit ids (#10688)
* Better circuit ids.
* Generates cryptographically strong circuit ids.
  * 32 bits of entropy from a PRNG.
  * DataProtected for authenticated encryption.
2019-06-01 00:26:46 +02:00
Javier Calvarro Nelson 8499a27c7f
[Components] Relayer + Robust reconnect (#8911)
* [MVC][Components] Prerendering + Robust reconnect
* Relayers prerendering support on a separate package on top of MVC and
  components.
* Implements robust reconects with acknowledgements from the client.
* Improves interactive prerendering with the ability to reconnect to
  prerendered components.
* Removes the need to register components statically when prerendering
  them.
* Removes the need of using an element selector when prerendering an
  interactive component.
* Updates the templates to use the new fallback routing pattern and
  reenables the components test.
* Adds eslint to the Typescript project to help maintain a consistent
  style.
* Adds logging to support better debugging based on the pattern used by
  signalr.
* Fixes exception handling on the server to always report exceptions correctly to the client.
2019-04-02 19:17:03 +02:00
Steve Sanderson 03357bf92b
Components: don't block the SignalR loop during init. Fixes #8274 (#8863) 2019-03-28 16:42:55 +00:00
Pranav K 33839dc66a
Client reconnects when state's available on the server (#7395)
Reconnect if we have state on the server

Fixes #7537
2019-03-04 17:27:51 -08:00
Javier Calvarro Nelson 2d9cba86fd [Components] Prerrendering startup experience (#7770)
[Components] Prerrendering startup experience
* Introduces an IComponentPrerrenderer to handle Prerrendering
  * MVC registers a basic static prerrrenderer.
  * Components registers a more feature complete prerrender that will
    handle reconnection to the original circuit after prerrendering in
    the future to allow for prerrendered interactive components.
* Removes UseRazorComponents
  * Removes the SPA fallback in favor of a catch all route in
    Index.cshtml
  * Moves the framework files to be served by the default StaticFiles
    middleware in the pipeline by way of plugging specific providers
    through options.
  * Lifts UseSignalR(r => r.MapHub<ComponentHub>()) into startup and
    replaces it with a shorthand for MapHub using endpoint routing.
  * Adds extension methods to map components to selectors for a given
    hub.
* Updates the razor component templates to include prerendering and use a razor page as the entry 
   point.
2019-02-21 16:26:44 -08:00
Pranav K cddbc2e888
Improve Components error handling (#7165)
* Improve Components error handling

* Change event handlers IHandleEvent, IHandleAfterEvent to be async.
* Return faulted tasks to Renderer instead of handling exceptions in ComponentBase
* Use ILogger in RemoteRenderer, and log to console in WebAssemblyRenderer
* Cleaning up touched files

Fixes https://github.com/aspnet/AspNetCore/issues/4964
2019-02-13 14:22:46 -08:00
Javier Calvarro Nelson f456e3d153
[Components] [Fixes #6953, #7226]
* Moves the Synchronization context from the remote renderer to the base renderer.
* Removes all the locking from the base renderer.
2019-02-07 07:03:52 -08:00
Pranav K e312d64194
[Design]: Introduce CircuitHandler to handle circuit lifetime events
Partial fix to https://github.com/aspnet/AspNetCore/issues/6353
2019-02-04 09:38:39 -08:00
Nate McMaster 5a70f5312f
Convert Components projects to use ProjectRef (#6698)
This addresses #4246 for src/Components/. A few other changes were necessary because components had been using stale dependencies.
2019-01-16 12:28:04 -08:00