我是Blazor的新手,开始使用.NET 8版本.我感到困惑的是,即使我 Select 了WebAssembly渲染模式VS,仍然创建了两个独立的项目. 引用客户端项目的启动项目需要什么?为什么不把两者结合起来呢启动项目包含像Error.razor App.razor等文件.

请注意,我最初想到的方式是Blazor Web应用程序WASM将创建单个项目,而我将只使用现有的API.这也是其他前端框架非常典型的架构.

谁能解释一下当我使用WebAssembly RenderMode时,其他/启动项目的优势是什么?这对我有什么用处?

推荐答案

我是Blazor的新手,开始在.NET8版本中使用它.我很困惑 在即使我 Select 了WebAssembly渲染模式的部分 VS仍然创建了两个独立的项目.

根据你的问题,是的,在使用Blazor WebAssembly时,可能会对两个独立的项目产生一些混淆,但它确实提供了广泛的灵活性,其中包括,在Blazor WebAssembly托管模型中,客户端和服务器项目的分离提供了明确的关注点分离.

不仅如此,它显然支持服务器端功能,促进了与ASP.NET Core features的集成,并提供了hosting and deployment个选项的灵活性.虽然乍一看它可能与其他前端框架不同,但它与服务器-客户端体系 struct 和ASP.NET核心框架的功能非常一致.

为什么不把两者结合起来呢?启动项目包含如下文件 错误.剃须刀apply.剃须刀等.

Blazor WebAssembly对于简单的脱机应用程序可以是独立的,但单独的服务器项目可以释放更高的安全性、可伸缩性、复杂的服务器任务和潜在的脱机功能,使其成为更复杂和要求更高的应用程序的理想 Select .但如果将它们结合在一起,复杂性会增加,这可能会使应用程序更难管理.如果你从design pattern point of view个方面来看,鼓励解耦或松散耦合的应用程序,而不推荐紧密解耦的应用程序.

因此,随着应用程序的增长或需要服务器端功能,在这些情况下,拥有单独的服务器项目可提供可伸缩和可维护的体系 struct ,最好以这种方式拆分项目.

但是为什么需要一个单独的服务器来托管Web呢 集合?它对Web Assembly客户端有什么改进?当我们 创造独立的夹克衫,它没有这个功能.我只是好奇 这一部分,因为API端点是不言而喻的

正如前面所说的,这是因为可维护的设计或架构模式.如果你的应用程序主要是显示信息和处理用户交互,而不需要复杂的服务器端逻辑,那么独立的方法是有效的,并避免了托管成本.但是,尽管离线访问受到API可用性的限制,但一些功能仍然可以在没有互联网连接的情况下工作.

除此之外,服务器还可以充当访问后端API的代理.这通过将敏感的API凭据和逻辑保留在服务器上并仅向客户端公开特定的数据点来增强安全性.因此,虽然独立的Blazor WebAssembly提供了简单性和离线功能,但服务器项目显着改进.

Note:虽然它造成了一些混乱,但在架构上,它提供了很多好处.然而,它完全取决于需求、场景和要求.另外,请给我have a look at this official documents美元.

Csharp相关问答推荐

C#中的两个线程之间读写浮点类型

是否可以将gltf转换为字节数组,然后将字节数组转换回文件?

System. InvalidOperationException:无法将数据库中的字符串值i转换为映射的ItemType枚举中的任何值''''

ASP.NET核心结果.文件vs结果.流

ASP.NET MVC中创建视图的过滤器

需要澄清C#的Clean Architecture解决方案模板的AuditableEntityInterceptor类

如何在C#中将对象[*,*]直接转换为字符串[*,*]?

如何在C#中使用正则表达式抓取用逗号分隔的两个单词?

需要在重新启动ApplicartionPool或IIS后启动/唤醒API的帮助

在C#中,有没有一种方法可以集中定义跨多个方法使用的XML参数描述符?

共享暂存/生产环境中Azure事件中心的建议配置

try 使用C#ASP.NET收集WMI信息时访问被拒绝,但在PowerShell中工作

当前代码Cosmos DB 3.37.1:PartitionKey key key mismatch exception

在两个已具有一对多关系的表之间添加另一个一对多关系

具有类型识别的泛型方法

数据库.Migrate在对接容器重启时失败

如何从另一个类的列表中按ID取值

序列化过程中的死循环

当我手动停止和关闭系统并打开时,Windows服务未启动

具有嵌套属性的IGGroup