用于物联网的 ASP.NET Web API 的性能

发布日期:2026-07-13 10:33:03   来源 : 杭州电子商务研究院    浏览量 :0
杭州电子商务研究院 发布日期:2026-07-13 10:33:03  
0

介绍

如果您符合以下情况,本指南适合您:

  1. 物联网开发人员或与物联网人员合作,为连接的设备提供通信支持
  2. 对为设备构建 Web 服务感兴趣
  3. ASP.NET 开发人员
  4. 任何想要构建原生 HTTP Web 服务的人

我在本指南中的目标是说服您至少考虑使用 ASP.NET Web API 作为为 IoT 连接设备编程 Web 服务的主要框架。

阅读我之前的指南《为什么使用 ASP.NET Web API 进行物联网?》以了解更多信息。

表现

WCF 和 ASP.NET 的性能都很好。在这种情况下,这两个框架都不会导致任何问题。让我们考虑一个简单的 API 调用。

      public string Get() {
  // Return the list of the data
  return dataList;
}
    

性能取决于某些因素:

  1. 可供程序运行的 CPU 和 RAM 资源;ASP.NET Web API 可以托管在程序中
  2. 网络带宽和吞吐量。
  3. 其他服务在后台运行。
  4. 数据引擎返回数据或从内存或文件加载数据所需的时间。

其余部分由 ASP.NET Web API 执行,将数据序列化为 JSON 格式并通过网络发送数据。大多数情况下,数据的序列化和反序列化可能需要一些时间。幸运的是,ASP.NET Web API 使用 Newtonsoft.Json API执行数据(反)序列化操作,速度非常快。

即使是 ASP.NET Web API 的入口级和出口级门也经过了精细调整,不会给任何性能因素带来困难。这使得 ASP.NET Web API 成为一个非常强大的框架,可以在 HTTP 协议之上创建 Web 服务。

无论内存基准有多小,WCF 都会使用大量低效的服务来上传和运行整个项目,并使用 TCP/IP 进行处理。HTTP 基于 TCP,不会在通信中引起同样的问题。

服务自托管

如果您认为 ASP.NET 和 WCF 都需要以相同的方式运行整个项目,那您就错了!

ASP.NET Web API 是一个开源项目,您可以在最小的控制台应用程序中托管该项目。这种托管方法允许项目将 RAM 和 CPU 资源用于所需的请求处理,而不是用于其他根本不需要的服务。

是的,在控制台程序中托管 Web API 所需的唯一代码如下,

      // Namespace references
using System.Web.Http;
using System.Web.Http.SelfHost;

/*
 * This goes in the main function
 * The main function is required, rest is optional.
 */

 // Create a new object with the address where you want to host the application at.
var configuration = new HttpSelfHostConfiguration("http://localhost:12345");

// Add the routing scheme, this is required.
config.Routes.MapHttpRoute("Default", "api/{controller}/{id}", new { id = RouteParameter.Optional });

// Start the service.
using (var apiServer = new HttpSelfHostServer(configuration))
{
  apiServer.OpenAsync().Wait();

  // Wait for the server manager to close it. Until then, anyone can connect.
  Console.WriteLine("Press Enter to quit.");
  Console.ReadLine();
}
    

这是托管服务所需的代码,您可以在任何地方托管该服务。其余的工作是使用 ASP.NET Web API 的代码,您使用它来实际处理请求。此代码会将请求转发给 API 控制器,它们将根据所使用的 HTTP 动词执行操作。这使您的 Web 服务能够以非常低的内存运行,并且消耗很少的 CPU 时钟周期。

以下是一些使 ASP.NET Web API 成为我个人最喜欢的用于为连接设备构建 Web 服务的框架的原因。

跨平台支持

流行的 WCF 框架还有另一个关键问题:在 Android、iOS 和微控制器等平台上使用服务很困难。使用 TCP/IP 或 HTTP 等本机协议可以解决该问题。

本机协议允许所有设备轻松实现这些协议而不会出现问题。与 WCF 不同,本机协议不需要服务器颁发任何客户端证书。ASP.NET Web API 可以托管在小型环境中,也可以发布到服务器上,您的企业库和云解决方案可以在这些服务器上为客户端提供弹性、快速的响应。这样,您就可以允许通过 HTTP 协议与任何客户端进行通信。

如今,TCP/IP 和 HTTP 协议可以在每个平台上进行编程,例如:

  1. 视窗

    • Windows 运行时(Windows 8 和 Windows 10 应用程序)
    • .NET 框架
    • 本机 Windows 服务
  2. Linux

    • 安卓
    • Ubuntu
    • 其余 Linux 发行版
  3. Apple 产品

  4. 微控制器

因此,原生服务可以在每个平台上使用,因此您完全不必担心底层框架。此外,使用原生服务还可以让您访问原生 GUI 和原生 UX 指南,因为您可以访问应用程序本身中的数据并将其呈现在屏幕上、将其说出来或打印数据。当您跨平台时,一切皆有可能。

下一步

继续阅读我的下一篇指南《为 IoT 构建和连接 ASP.NET Web API》,深入了解如何构建和连接 ASP.NET Web API。

以上内容来自杭州电子商务研究院推送
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据