Asp.net core 如果我想要一个独立的web api,但仍然运行服务器端和客户端,那么选择哪个项目模板?
当您使用Blazor创建ASP.NET核心项目时,会出现一些有趣的架构决策。有3种不同的项目模板。Asp.net core 如果我想要一个独立的web api,但仍然运行服务器端和客户端,那么选择哪个项目模板?,asp.net-core,architecture,blazor,Asp.net Core,Architecture,Blazor,当您使用Blazor创建ASP.NET核心项目时,会出现一些有趣的架构决策。有3种不同的项目模板。 -Blazor -Blazor(ASP.NET核心托管) -Blazor(ASP.NET核心中的服务器端) 问题1 我试图理解“Blazor(ASP.NETCore中的服务器端)”模板或构建项目的方法的目的或好处。为什么一个.NET核心应用程序提供另一个.NET核心应用程序?还是我遗漏了什么? 考虑到此处解释的不同托管模式。 这难道不是一个使用服务器端Blazor而不是2的项目吗? 问题2 如
-Blazor
-Blazor(ASP.NET核心托管)
-Blazor(ASP.NET核心中的服务器端)
问题1
我试图理解“Blazor(ASP.NETCore中的服务器端)”模板或构建项目的方法的目的或好处。为什么一个.NET核心应用程序提供另一个.NET核心应用程序?还是我遗漏了什么? 考虑到此处解释的不同托管模式。
这难道不是一个使用服务器端Blazor而不是2的项目吗?
问题2
如果我看到的是下图所示的体系结构,那么我不应该从“ASP.NET Core Hosted”模板开始,然后将.Client项目更改为使用“服务器端”框架吗?这样,我仍然有一个可调用的api,如果需要,可以从另一个应用程序访问?或者我认为我仍然可以使用“服务器端”模板,该模板将预先设置所有启动管道,以便使用服务器端托管模型启动客户端,并将其与将我自己的API控制器添加到.Server项目相结合,该项目将根据图通过业务规则库调用 问题3
在某种程度上,当工具/调试支持变得更好时,我可能希望将.Client应用程序切换为使用webassembly。我不认为我建议的架构禁止这样做?我会在.Server应用程序中更改启动代码,用blazor.webassembly.js和其他一些东西替换对blazor.Server.js的引用,我应该是黄金。我是不是离开基地了 建筑说明:
-客户端应用程序需要通过一些CRUD操作访问资源,因此它调用业务规则类库中的方法
-业务规则库引用一个类库,该类库包含表示各种域模型的“哑”POCO类。调用api
-API控制器/操作然后调用一个数据库或存储库,该库或存储库管理实体框架DbContext,用于获取/更新数据库中的数据
-业务规则库、数据库和API都引用“模型”库
问题1:服务器端渲染有许多好处,包括:
- web api(ASP.Net核心托管)
- 服务器端(带信号器和调试的Razor组件)
- 客户端(SPA+webassembly)
希望这有帮助谢谢,关于问题1,我理解服务器端渲染的好处,但我的问题是为什么两个单独的项目一个“服务”另一个。至少在模板生成的项目中,您必须在github上请求blazor确认。我认为服务器应用程序和api是首选方法,因为如果您以这种格式实现项目,它将提供最大的灵活性,以便将来在客户端和服务器端应用程序之间切换。“服务器端呈现”在.Net中不受支持。在Angular中,支持“服务器端渲染”,也称为预渲染。你们提到服务器端执行模型,称为Razor组件。两者之间的差异是巨大的。有