我搞不懂剃刀组件和Blazor组件有什么不同,哪个更好,在最新版本的.NET Core3.0预览版3中,将这些组件添加到剃刀组件中
剃刀组件的改进:
extension
Components
发布于 2019-03-10 19:09:24
从本质上讲,有三个部分需要理解。
剃刀组件
这是核心进程外组件模型的名称,该模型创建于2018年7月,用于服务器端Blazor的第一个版本。
Razor组件是框架的核心,包含以下所有内容。
服务器端Blazor
这是一种服务器端托管模型,运行在ASP.NET核心上,用于Razor组件。此版本在服务器上托管Razor组件模型。它使用一个小的运行时将UI事件从浏览器发送到服务器。一旦被Razor组件处理,任何UI更新都会从服务器发送回浏览器,然后运行时处理DOM的更新。所有这些通信都是通过SignalR连接来处理的。甚至JS互操作调用也是这样处理的。
客户端Blazor
这是Razor组件的客户端托管模型。
在此模型中,所有内容都托管在浏览器中。Mono编译为WebAssembly,是.NET运行时。在此之上是Razor组件,然后是应用程序。
这种架构的伟大之处在于,理论上,添加到Razor组件中的任何功能都应该对两个托管模型都可用。尽管在现实中,情况并不总是如此。
有什么更好的?
这在很大程度上取决于你想做什么。
客户端Blazors最大的缺点是它的下载大小。仅此一点就可以排除许多开发人员的可能性。下载很容易进入多MB,如果有人试图在连接速度很慢的手机上查看你的应用程序,他们将不会有很好的体验。然而,值得注意的是,在第一次下载之后,许多内容被缓存,因此后续的加载可能只有100kb。
客户端Blazors的调试体验现在也非常原始。这意味着作为一名开发人员,在它上面工作有时是具有挑战性的。
服务器端Blazor在调试方面拥有更好的开发人员体验。该应用程序的下载速度要快得多,并且在进行任何缓存之前只有几个100kb的大小。
缺点是潜在的可扩展性。但这在很大程度上取决于您期望的并发用户数。因为这个模型使用SignalR,所以你的应用程序在并发连接上有一个最高限制。但是,你可以通过插入Azure SignalR来管理这一点,以允许更多的连接到你的应用程序。
最终,两种Razor组件的托管模型都有很长的路要走。两者的身份验证故事都还处于非常早期的阶段,尽管客户端Blazor可以说处于更好的位置。路由引擎仍然是有限的,表单和验证只是刚刚发布了它的第一个版本,还有工作要做。
另一件要记住的事情是,可以很容易地在模型之间进行交换。所以无论你做什么决定,你都不会被绑在里面。甚至会有一种方法内置到框架中,这样你现在所做的一切都不会被浪费。
有任何问题,请提出来。但我希望这能有所帮助。
发布于 2019-03-10 19:46:59
Razor Components是一个框架,可用于创建SPA web应用程序。它分为两种执行模式。当web应用程序在浏览器上托管和执行时,它被称为Blazor。Blazor应用程序是用C#编写的,并编译成.NET程序集。它们由Mono运行时作为.NET程序集在浏览器上执行和运行,该运行时本身被编译为Web Assembly。
第二种执行模式是服务器端。也就是说,您的web应用程序在服务器上执行,而不是在浏览器上执行。请注意,这里的运行时环境不是Mono Web Assembly,而是Asp.net核心运行时。这就是所谓的服务器端Blazor,但是术语Razor组件也被使用了,所以让困惑的人感到困惑。原因是历史性的:一开始,只有Blazor在浏览器上运行。但后来出现了这样的想法,即web应用程序可以在服务器上运行,并且只有差异可以通过SignalR发送到浏览器。在服务器上运行web应用程序比在浏览器上运行要容易得多,开发人员可以使用许多他不能在浏览器上使用的元素,例如调试等。由于这种可能性,Asp.Net将Blazor框架重命名为Razor组件,您可以将其视为Blazor构建在其上的超级结构。这就是为什么会产生混乱。让我们强调这种划分,如下所示:
Razor组件--> Blazor (前端;浏览器)
Razor组件--> Razor组件(服务器端Blazor )
我知道这是一个困惑的来源,但这就是...
至于哪个问题更好,我只能说这完全取决于你的要求。每种执行模式都有其优点和缺点。Blazor应用程序更适合作为公共网站在因特网上运行,而服务器端Blazor应用程序最好作为企业网站在内联网上使用。
您显示的列表与Razor组件框架相关。目前,一些改进可能只与Blazor相关,而另一些则与服务器端Blazor相关。只有一种方法可以知道哪个是哪个:学习Razor组件。学习它需要时间,比Angular更短,特别是如果你是一名.Net开发人员,但它仍然需要一些投资。
希望这能帮到你。我稍后会改进它,但如果您有特定的问题,请不要犹豫地问...
https://stackoverflow.com/questions/55086914
复制相似问题