【问题标题】:Combining Flutter frontend with .NET Core backend for Android and iOS将 Flutter 前端与 Android 和 iOS 的 .NET Core 后端相结合
【发布时间】:2018-08-13 07:54:49
【问题描述】:

目前为一家使用 .NET(不是 Core)但想要切换到 .NET Core 的公司工作,并考虑通过创建一个具有 Flutter.io 前端和 .NET Core 后端的应用来实现。带有后端的应用程序只是为了了解 .NET Core 的功能。

我找不到任何信息,如果这两者的组合甚至适用于 Android/iOS。

我之所以问,是因为 Flutter 刚刚发布到 beta 阶段。

【问题讨论】:

  • 所写的这个问题确实有点宽泛和/或不清楚。假设您想为 Web API 后端使用 .NET(Core 与否),那么这无关紧要。如果你的意思是别的,你应该澄清这个问题。
  • 我应该提到工作想使用 WCF (SOAP) 作为后端。据我找到答案,Flutter 在支持 SOAP 方面没有原生支持,不是吗?
  • Soap 仍然只是 http 请求。您不会获得与 .NET 一样多的工具,但它仍然可以工作

标签: c# .net dart .net-core flutter


【解决方案1】:

我也看到一个叫Flutnet的项目使用了2,但是我自己没有用过。

https://www.flutnet.com/

【讨论】:

    【解决方案2】:

    .NET/core 用于 API,flutter 用于原生应用。 它们完全不相关。

    一侧不会影响另一侧。所以是的,你可以同时使用。

    【讨论】:

    【解决方案3】:

    我喜欢将 Flutter 与我的 .Net Web Api 后端一起使用。 Flutter 中的 web api 支持很棒,因为它们内置在 JSON serialization support 中。这个组合很漂亮,我迷上了这个强大的框架

    【讨论】:

      【解决方案4】:

      ServiceStack v5.1 具有added native support for Dart and Flutter,您可以在其中从远程 URL 生成端到端的 Typed API,例如:

      $ npm install -g @servicestack/cli
      
      $ dart-ref https://www.techstacks.io
      

      .NET Core 2.0 以及任何.NET's popular hosting options 都支持此功能。上面的示例为.NET Core 2.0 TechStacks project 生成了一个Typed API。

      HelloFlutter App 显示了使用类型化 API 调用 .NET Core 2.0 和经典 ASP.NET 应用后端的示例:

      要调用任何服务,您只需导入 servicestack Dart package 和生成的 DTO,例如:

      import 'package:servicestack/client.dart';
      import 'techstacks.dtos.dart';
      

      然后创建一个JsonServiceClient 的实例,并使用您的远程 URL 进行配置,例如:

      var client = new JsonServiceClient("https://www.techstacks.io");
      

      然后您可以像任何异步 API 一样在 Flutter 小部件中调用它:

      class HelloFlutter extends StatefulWidget {
        @override
        State<StatefulWidget> createState() => new HelloFlutterState();
      }
      
      class HelloFlutterState extends State<HelloFlutter> {
        //State for this widget
        String result = "";
      
        @override
        Widget build(BuildContext context) {
      
            //...
            new RaisedButton(
              child: new Text("Async"),
              onPressed: () async {
                var r = await client .get(new Hello(name: "Async"));
                setState(() {
                  result = r.result;
                });
              },
            ),
      
            //...
            new Text(result),
        }
      }
      

      有关更多信息,请参阅ServiceStack's native Dart support 的文档。

      【讨论】:

        猜你喜欢
        • 2018-05-13
        • 2017-09-17
        • 2021-07-27
        • 2017-05-30
        • 2020-06-13
        • 2022-07-28
        • 2017-06-23
        • 2019-10-29
        • 2020-06-17
        相关资源
        最近更新 更多