dotnet / AspNetCore.Docs

Documentation for ASP.NET Core
https://docs.microsoft.com/aspnet/core
Creative Commons Attribution 4.0 International
12.6k stars 25.29k forks source link

Microsoft and the Web #10977

Closed brice-prunier-dev closed 5 years ago

brice-prunier-dev commented 5 years ago

Microsoft has been a major player in the world of development for a long time now. However if It has a pioneer in language with .NET & Typescript and desktop App it has surprisingly be inconsistent on WebClient development. First it started by being innovative with ASPNET Forms (I’m talking of 1.0 at a time where CGI was the rule). After it ran after Java to offer a real MVC development model. Once again it tries to break the rule with Silverlight (we all know of it finished ) after what it was completely absent at a time where Javascript was rising up. With Typescript an Angular initiative we though MS will offer an homemade framework ( I prefer not to talk about WinJS that was a dead born project ). The response has been Blazor with WebAssembly. Why not … At a time where javascript is becoming one of the biggest ecosystem with new module every day, choosing C# and WebAssembly seems a move that it putting aside plenty of existing resource. I understand that you can call JavaScript from Blazor App but what about JS 6 module import, I’m not sure OF Blazor compatibility with most of Js framework…. Choosing SPA model seemed at first time a good start but with latest Blazor release introducing client side hosting, we get exactly what has always been the error of Microsoft for many years. Instead to clearly propose a model and be a leader, Microsoft tries to keep open different trend that brings more confusion then flexibility. What does it means to come back on a server side pattern when SPA is the answer to use client cpu resources that are day after days more powerful: your phone is more power full than the server I started to work on 20 year ago. Once a gain Web development in Microsoft seem to be a great mess: Client Hosting or Server hosting ?. You can choose one pattern or its opposite and you wonder what the good path is. At the end i don’t want to rewrite my app because at the beginning it was small and because of success should scale up/out.


Détails du document

Ne pas modifier cette section. C’est obligatoire pour docs.microsoft.com ➟ Liaison des problèmes GitHub.

manigandham commented 5 years ago

What's the actual issue here?

React and other JS frameworks already have Server-Side Rendering (SSR) features that initialize and run the app on the server first and output the HTML directly to the browser, with the JS framework optionally picking it up from there.

There's no difference between that and what Server-side Razor Components offer, except that in this case you can continue to have the server rendering the app and still use highly interactive views without doing a full page refresh by using a websocket connection instead. This is Microsoft pushing forward, not copying others.

guardrex commented 5 years ago

Hello @brice-prunier-dev ... that's great feedback. We only work documentation issues on this repo, so it won't be widely seen here. Product feedback is accepted on the aspnet/AspNetCore issues at https://github.com/aspnet/AspNetCore/issues. Move your remarks to an issue there.

brice-prunier-dev commented 5 years ago

I take the risk to answer on this thread because my feedback is link to documentation. When you propose a new technology i expect to get a precise understanding on what drive a technology. Blazor started on the client side why does it move to server side? You expose a set of tradeoff for both technology that all application wants to solve:

  1. I want a fast start (Server side)
  2. I want to easily comply with crawler (Server side)
  3. I want to scale (Client side)
  4. I want to get an infrastructure as light as possible (Client side) When you talk about limitation on scale-up for Server hosting what are you talking about: • How many session can you run with Server Hosting compare to a state less API layer?

@manigandham : I don’t say MS is copying other vendor on Server-Side Rendering. I just say that Client Hosting or Server Hosting (with state management) comes with quite different constraints and today i don’t know where both choice take me. • If it goes on SSR what’s the use of Web Assembly… Not using Web Assembly is not the same product… • Is “client side hosting” will allow other JS framework reuse? • Same question on Server Side ? • If I go for OAuth on server side hosting, am i in a trusted flow or not ?

To come back to my original thread: Presenting Blazor should at first present what the product is targeting in terms of web solutions in the actual ecosystem. Moving from Client Side to Server Side (with state management) change all the underlying technology! why such a 360° move? Is you take SSR on Angular : it is a optimization for startup but the development model stay the same. With Razor we have two different development models without a clear understanding of the overall logic, this quite different in term of communication.

guardrex commented 5 years ago

Hello @brice-prunier-dev ... again, that's awesome feedback. However, this isn't the correct spot for such a discussion.

[EDIT] Actually, your last response does lean more in the direction of documentation-related concerns because you're asking for clarifications on the product and engineering decisions. For now, let's leave the discussion where I moved it. If management would like to do more in those areas, I recommend that we open a new issue with the specific changes that you/they would like to make. I assure you that on aspnet/AspNetCore the issue will get much better visibility than over here.

I've moved your conversation over to https://github.com/aspnet/AspNetCore/issues/7670. Everyone please continue the discussion there.

I'm going to lock this conversation ... not because of you ... just in case anyone else shows up here to add comments. They should do so on the aspnet/AspNetCore issue that I just opened.