dotnet / aspnetcore

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
https://asp.net
MIT License
35.36k stars 9.99k forks source link

Better deal with cycles in SSR Blazor component parameters #50147

Open halter73 opened 1 year ago

halter73 commented 1 year ago

We could consider using ReferenceHandler.Preserve as suggested in the error messages, or at least make the error clearer so users can fix it themselves.

See https://github.com/dotnet/aspnetcore/issues/49657#issuecomment-1681719551 for context.

javiercn commented 1 year ago

@halter73 this is an explicit design decision we made from the beginning of Blazor.

The fact that we encode the parameters as JSON is an "implementation detail" that we might decide to change in the future, and we don't have to deal with the complexity of serializing object graphs, even if JSON gives that ability for "free".

There are other contexts in which we pass parameters (like from JavaScript) and we want the subset of supported features to be as close as possible between the two.

ghost commented 1 year ago

Thanks for contacting us.

We're moving this issue to the .NET 9 Planning milestone for future evaluation / consideration. We would like to keep this around to collect more feedback, which can help us with prioritizing this work. We will re-evaluate this issue, during our next planning meeting(s). If we later determine, that the issue has no community involvement, or it's very rare and low-impact issue, we will close it - so that the team can focus on more important and high impact issues. To learn more about what to expect next and how this issue will be handled you can read more about our triage process here.

mkArtakMSFT commented 11 months ago

@halter73 , @javiercn I'm not sure what was the conclusion here. Did you two discuss this offline? Is there still any pending action here or should this be closed?

ghost commented 9 months ago

Thanks for contacting us.

We're moving this issue to the .NET 9 Planning milestone for future evaluation / consideration. We would like to keep this around to collect more feedback, which can help us with prioritizing this work. We will re-evaluate this issue, during our next planning meeting(s). If we later determine, that the issue has no community involvement, or it's very rare and low-impact issue, we will close it - so that the team can focus on more important and high impact issues. To learn more about what to expect next and how this issue will be handled you can read more about our triage process here.