Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 使用信号机的优点和缺点是什么_Asp.net Mvc_Signalr - Fatal编程技术网

Asp.net mvc 使用信号机的优点和缺点是什么

Asp.net mvc 使用信号机的优点和缺点是什么,asp.net-mvc,signalr,Asp.net Mvc,Signalr,在用asp.NETMVC编写的基于javascript的数据驱动应用程序中,使用信号器作为通信方法有哪些优点和缺点 谢谢,当然,除非需要signar提供的功能,否则不应该使用它,也就是说,一个简单的双工web服务层专注于JavaScript客户端。如果您是ASP.NET的新手,那么这可能不是您马上需要的—在开始编写复杂的、数据驱动的JavaScript应用程序之前,您还有很多其他东西需要学习。如果您只打算使用.NET客户端,请坚持使用WCF:它更灵活,而且它的静态类型更适合C#和VB.NET 也

在用asp.NETMVC编写的基于javascript的数据驱动应用程序中,使用信号器作为通信方法有哪些优点和缺点


谢谢,

当然,除非需要signar提供的功能,否则不应该使用它,也就是说,一个简单的双工web服务层专注于JavaScript客户端。如果您是ASP.NET的新手,那么这可能不是您马上需要的—在开始编写复杂的、数据驱动的JavaScript应用程序之前,您还有很多其他东西需要学习。如果您只打算使用.NET客户端,请坚持使用WCF:它更灵活,而且它的静态类型更适合C#和VB.NET

也就是说,当JavaScript应用程序确实需要基于.NET的web服务后端时,Signal是一个不错的选择。配置比Windows通信基础更简单,而对于JavaScript应用程序,有一套更好的功能。它似乎是由微软赞助的(他们允许它位于Microsoft.AspNet名称空间中),负责它的人似乎很聪明,工作也很努力(如果有时有点尖刻的话)。我曾经在午夜报告了一个bug,在15分钟内得到了响应,在早上起床时得到了修复。当然,它是开源的,他们愿意考虑拉动请求,所以如果你需要修复的东西,你将比微软以前的封闭源码模型有更好的运气。 它唯一的缺点是它非常新——最近达到了1.0RC1的状态——因此缺少了一些很好的特性,仍然有一些bug(当然,这些bug最终会得到修复)

这里有一个例子说明它是如何仍然有点新的。如果您试图序列化复杂的对象图,您几乎肯定会遇到一个问题,即它使用Json.NET的专有格式进行对象引用,因此您最终会得到许多Json,如下所示:

{
  "$id": "57",
  "Name": "_default",
  "User": {
      "$id": "58",
      "UserTag": "ken",
      "Sessions": [{
          "$id": "59",
          "SessionId": "0ca7474e-273c-4eb2-a0c1-1eba2f1a711c",
          "User": {
              "$ref": "58"
          },
          "Room": {
              "$ref": "57"
          }
      }],
  },

  "Sessions": [{
      "$ref": "59"
  }]
}

读取
会话[]
数组并发现其中唯一的对象根本不是
会话
,而是具有单个
$ref
属性的任意对象,这并没有多大帮助。为了解决这个问题,你需要用类似的东西来包装你所有的信号员呼叫。不难,但在信号机中处理一些事情会很好。(当然,如果我是一个更好的人,我会自己编写代码,并将其作为拉取请求提交-只是还没有考虑到而已。)

在什么意义上,与什么相比?问题是,对于像我这样的新手来说,只有使用此功能的真正开发人员才能通过这种方式讲述它,他们肯定经历了其他一切