【问题标题】:Is it possible to build a .net graphql backend and a react with redux frontend?是否可以构建 .net graphql 后端并与 redux 前端反应?
【发布时间】:2020-07-24 15:56:03
【问题描述】:

我工作的公司拥有强大的 .NET 和 Microsoft SQL Server 后端,这是我无法更改的。但我们是前端不可知论者。最近我们需要升级我们的一个旧应用程序,我一直在寻找解决方案。我希望使用 React 和 Redux,因为我认为它们将是最接近 Web 和本机应用程序之间的单一代码库应用程序。但我需要弄清楚如何确保 React 可以与 .NET 和 MSS 一起使用。

到目前为止,我一直在考虑从构建 ASP.NET Core 2 GraphQL API 后端开始,我知道它可以与 MSS 一起使用。但我不确定这将如何与 Redux 一起使用。这是我要开始的文章:

https://fullstackmark.com/post/17/building-a-graphql-api-with-aspnet-core-2-and-entity-framework-core

我也研究过使用 Apollo Server,但我不确定是否必须在 Apollo 和 MSS 之间添加另一个 .Net 层。

我只是想知道是否有人对这个堆栈有任何经验,这样我就可以防止自己重新发明轮子。任何想法、建议、文章都会有所帮助和赞赏。

【问题讨论】:

    标签: sql-server asp.net-core react-redux graphql apollo-server


    【解决方案1】:

    我目前正在开发一个将 React 与 TypeScript 和 GraphQL(除其他外)和 C# .NET 后端一起使用的项目。我们在服务器端使用https://github.com/graphql-dotnet/graphql-dotnet,效果很好。

    我们没有使用 Redux,但我不明白为什么这会是一个障碍。 GraphQL 和 Redux 之间的任何兼容性问题都不应与服务器实现有关。

    互联网上有很多文章都在谈论使用这两种方法。

    https://www.robinwieruch.de/react-redux-apollo-client-state-management-tutorial https://medium.com/react-weekly/implementing-graphql-in-your-redux-app-dad7acf39e1b https://www.freecodecamp.org/news/tutorial-how-to-use-graphql-in-your-redux-app-9bf8ebbeb362/

    【讨论】:

    • 在添加实时事件时,您使用 SignalR 吗?
    • 不......我们的应用程序中确实不需要它(......但是)
    • GraphQL 中的实时事件是使用 Subscription 处理的,其底层使用 WebSocket 协议
    【解决方案2】:

    我觉得这个问题有点不清楚:

    如果您声称您的 API 是 front-end agnostic,那么为什么它不能与 React/Redux 或任何其他前端技术一起使用?

    至于 GraphQL,我认为 React 是使用 GraphQL API 的不错选择,因为它们都由同一家公司管理。

    对于 .Net GraphQL 框架,我推荐 Hot Chocolate。它是一个快速发展的开源 graphQL 服务器框架,适用于 .NET 技术。

    同时作为前端 GraphQL 框架 Relay 也可能是一个不错的选择,因为它比 其他 graphql 客户端更强大,但往往更复杂。

    但您应该问自己的主要问题是您是否真的需要使用 GraphQL。如果您的 API 不太通用,并且您确切地知道何时以及如何每个数据端点将被使用,那么为什么不使用 REST?您可能知道 GraphQL 有其局限性,并不是一个通用的解决方案。

    这里有一些文章解释了何时使用 GraphQL 而不是休息:

    Rubrik.com: GraphQL vs REST

    stablekernel.com: Advantages and disadvantages of GraphQL

    dzone.com: when and why to use GraphQL

    【讨论】:

      猜你喜欢
      • 2020-11-07
      • 2019-06-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多