【问题标题】:Combining MVC + Blazor in the same project在同一个项目中结合 MVC + Blazor
【发布时间】:2019-07-04 22:58:41
【问题描述】:

我们当前的应用程序现在在 ASP.NET Core (MVC) 上运行,我想知道是否会有在同一个项目中使用 MVC 和 Blazor(客户端)的官方方式?

我之所以要这样做,是因为我们无法一次性从 MVC 迁移到 Blazor,因为应用程序太大了。 我正在考虑从 MVC 到 Blazor 的逐步过渡。只是不确定这是否可行?

【问题讨论】:

  • 您可能想查看how to migrate from MVC to Blazor 上的这篇文章,作者实际上建议采取逐步的方法,因此该应用程序实际上是混合的,直到它变得完全 blazorized。跨度>

标签: .net asp.net-core blazor


【解决方案1】:

这对于服务器端 Blazor 来说绝对是可能的,Chris Sainty's blog(以及该博客中示例的 source)给出了一个具体如何做到这一点的示例。

我个人更喜欢将 Blazor 组件放在与 MVC 项目相同的解决方案中的单独项目中。有几个原因:

  • 我发现 Blazor 项目的启动速度比 MVC 快
  • 我只设法使项目的自动重建(基本热重载)在 Blazor 项目中工作,而不是在 MVC 项目中
  • 我发现能够隔离 Blazor 组件以确保问题与页面的 MVC 部分无关是很有用的。

我倾向于将 Blazor 项目设置为启动项目进行初始调试,然后在准备将组件集成到 MVC 页面时切换到 MVC 项目。

如果您想尝试这种方法,我对问题 Adding Server-Side Blazor to an existing MVC Core app 的回答将完整介绍如何将单独的 Blazor 项目添加到包含 MVC 项目的现有解决方案中,然后如何使用这些 Blazor 组件在 MVC 项目中。

我希望非常相似的方法也适用于客户端 Blazor,但我还没有尝试过。

【讨论】:

  • 该设置如何在已部署的服务器上运行?您是否将 MVC 和 Blazor 部署为单独的应用程序?是否可以只部署 MVC 项目并使用 Blazor 项目作为依赖项(即库)?
  • @metabuddy,是的,这正是我们所做的,对于部署的版本,Blazor 项目只是充当 MVC 项目中引用的库项目。
【解决方案2】:

根据ASP.NET Core 3.0 Preview 2 release notes

目前您不能直接将Blazor 与 ASP.NET Core MVC 一起使用,但您可以与新引入的Razor Component 一起使用。微软希望在即将发布的 ASP.MET Core 版本中直接使用 Blazor 和 ASP.NET Core MVC。

更多详情:ASP.NET Core updates in .NET Core 3.0 Preview 2

【讨论】:

  • 这是一个非常有用的答案。考虑到它是在 2019 年编写的 - 现在是否添加了能够直接将 Blazor 与 ASP.NET Core MVC 一起使用的功能?
猜你喜欢
  • 1970-01-01
  • 2016-07-06
  • 1970-01-01
  • 2015-01-03
  • 1970-01-01
  • 1970-01-01
  • 2012-10-03
  • 2010-11-24
  • 1970-01-01
相关资源
最近更新 更多