使用Redstone提供网页

时间:2015-02-18 09:34:44

标签: dart web-deployment dart-polymer redstone.dart

我正在使用redstonepolymer使用Dart开发一个Web应用程序 因为Dart允许服务器端和客户端开发,我想知道Web应用程序的优秀模式是什么(特别是Dart)

选项1:

  1. 有一台服务器,比如/bin/server.dart

    1.1。在那里得到一个请求并用json回复

  2.     @app.Route("/user/:id", methods: const [app.GET])
        getUser(int id) { ... }
    
    1. 有一个客户端,即web / user.html和web / user.dart

      user.dart中的

      2.1向服务器发出请求

      2.2接收json并形成一个合适的user.html

    2. 选项2:

      1. 拥有服务器/ bin / server

        1.1在那里得到一个请求并回复一个html页面,类似于

      2.     @app.Route("/")
            helloWorld() => "Hello, World!";
        

        如果在第一种情况下我或多或少知道(并理解)如何使事情有效,而我发现我没有利用Dart的服务器 - 客户端代码共享真的很令人沮丧:我需要编码并解码回json以获得相同的数据。有没有办法避免它?

        第二个选项对我来说不太清楚:我将如何以这种方式提供网页?我如何让Polymer做它的工作?

        对文本中的问题的回答以及开发网络应用程序的一般方法的一般解释非常感谢。

2 个答案:

答案 0 :(得分:2)

您可以在此处查看Redstone + Polymer应用程序示例:https://github.com/luizmineo/io_2014_contacts_demo

基本上,它的工作原理为Option 1:客户端和服务器通过服务API进行通信,数据编码为JSON。虽然,Redstone也使用shelf_static包来向浏览器提供客户端代码。

如果您愿意,也可以使用服务器端模板引擎(如胡子)在服务器中构建html页面,但我认为将它与Polymer集成非常困难。 / p>

最后,在客户端和服务器之间传输数据时,您总是需要对数据进行编码,但这并不意味着他们无法共享代码。例如,他们可以使用相同的域类。查看上面链接的示例应用程序以获取更多详细信息。

答案 1 :(得分:0)

我不认为选项2是可能的。 Polymer依赖于dart:html,这是服务器端不允许的。