【问题标题】:How to approach microfrontends in ASP.NET?如何在 ASP.NET 中处理微前端?
【发布时间】:2020-06-10 09:24:11
【问题描述】:

我对微服务和 Web 开发还很陌生,但我在 ASP.NET 中为自己构建了一个小型微服务架构,其中我有一些服务,其中包含由 REST api 公开的简单 CRUD 操作。目前,我可以在单个 MVC 客户端中使用它们,并通过模型绑定使用来自微服务的数据来渲染视图。

我现在想要实现的是让每个服务的前端也独立,但我很难弄清楚如何做。据我了解,每项服务都必须有自己的观点,并以某种方式将这些观点提供给客户。 但是在这种情况下,我该如何处理 .cshtml 中的模型绑定,就像我目前在客户端中所做的那样?

我已尝试阅读该主题,但未能找到切入点。

在任何地方都有在 ASP.NET(非核心)中实现微前端的示例吗?

【问题讨论】:

  • 我正在寻找相同的。有没有办法在我的局部视图中使用微前端。

标签: c# asp.net-mvc microservices micro-frontend


【解决方案1】:

服务只是服务,您使用它们将数据暴露给一个或多个应用程序。通常通过使用某种身份验证来访问服务。您希望将视图绑定到微服务中。因为那时你只是在制作一个 MVC 类型的应用程序并将其称为微服务,这可以但不是微服务。

将服务视为发送和接收数据的一个主要目的,例如用户服务。您的前端将调用该服务来获取有关用户的数据、更新用户、创建用户等。每个服务都是不同的,一个视图可以访问多个服务。

查看链接了解更多详情:

因此,您需要使用选择的框架/stach 来制作前端,例如 Blazor/MVC 5/Vue/Angular/React/etc,并让该前端代码调用您正在创建的服务HTTP 请求。

基于 cmets 编辑:

同样,您还需要确保您的前端应用程序遵循类似的方法。您希望通过构建一系列更小且重点突出的应用程序来避免庞大的单体前端。

例如,您可以有一个巨大的应用程序来处理:会议、日历、约会、旅行计划、用户和客户。或者,您可以采用微服务方法并将每个功能构建到其自己的可独立部署的应用程序中。因此,您将拥有会议应用程序、日历应用程序、用户应用程序等。每个应用程序都是它自己的实体,但使用您拥有的服务,因此您可以分离以实现松散耦合,从而实现可扩展性,以及与微相关的其他优点服务架构,在您的前端。

有关微前端的更多详细信息,请参阅here

【讨论】:

  • 感谢您的回答。根据微软的这个图,可以实现构成 viewModel 的微服务:docs.microsoft.com/de-de/dotnet/architecture/microservices/…我正在寻找一种方法来实现这样的微服务。
  • 该视图模型将存在于您的前端项目中。就像在 Blazor 或 MVC 中一样,您希望为每个视图创建一个视图模型。您将使用访问您的 API/微服务的服务类填充该模型。
  • 如果澄清得更好,微服务根本不会产生或使用视图模型。这是在前端应用程序中完成的。你的前端是什么?我们可以帮助您为它制作一个视图模型,但您的微服务将无法做到这一点。
  • 但这会再次导致单片前端吗?我目前在 MVC 中有一个单体前端。我想要实现的是微前端,每个服务都提供自己的 UI。
  • 实际上,您所要求的将使您的服务和前端成为一个整体应用程序。您应该做的是拥有多个前端应用程序,在您的情况下是多个 MVC 应用程序,以及为它们提供支持的多个服务。关键是保持服务和前端彼此分离,并构建多个应用程序而不是单个单体。
猜你喜欢
  • 2017-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 1970-01-01
  • 2019-06-03
  • 1970-01-01
相关资源
最近更新 更多