gpt4 book ai didi

c# - 我应该为我的应用程序使用 C#/.Net 还是 C++?

转载 作者:行者123 更新时间:2023-11-28 01:13:19 28 4
gpt4 key购买 nike

我正在做一个与 SQL Server 对话的项目,大部分后端代码都在 C++ 中。

这是一个在将少量流体加载到载体中时控制其流动的应用程序。一些与 Controller 对话的后端模块反过来控制流体的流动是在 C++ 中。由于它们存在内存泄漏和其他一些错误,因此已尝试将它们迁移到 .Net

据我了解,当我们将 .Net 用于后端模块 时,性能会下降。所以我的意见不是将这些后端模块转换为 .Net,而是解决 C++ 本身的问题。

讨论中的代码是一个与 Controller 固件交互的应用程序。它基本上需要一些命令并从 Controller 获得响应。此代码没有 UI,并且相同的代码还与 SQL 交互以更新数据。两者都是一个 exe 的一部分。

.Net 在性能预期不严格时被认为是好的。如果必须编写新代码,尤其是涉及 UI 设计时,它会很合适。另一种观点认为,.Net 适用于多层架构中的较高层,但不适用于较低层。

我想从不同的角度了解别人的意见。需要考虑的一些方面是:

  • 速度
  • 代码的可维护性
  • future 与迁移相关的风险
  • 等等

请从重写现有代码的角度进行评论。如果我们决定这样做,它将是一对一的 C++ 行到 C# 的转换。

最佳答案

快速回答:

如果您有能干的 C++ 程序员,他们可以使用调试器并了解他们的应用程序领域以及如何使用 Controller ,那么进行仔细审查并修复内存错误和问题可能会更容易。毕竟,时间和精力已经花在了代码上,除非是微不足道的代码,否则用 C# 重写可能会引入新的逻辑错误。

OP 的问题:

The code in discussion is driver code which interacts with firmware of controllers. It basically takes some commands and gets response from controllers. This code does not have UI and the same driver code interacts with SQL as well to update the data

您是在谈论您命名为“驱动程序”的用户模式软件,还是在谈论内核模式设备驱动程序?

如果您能提供有关这些运行控制流体流量的固件的 Controller 的更多信息,将会有所帮助。 C++ 后端是否通过 RS232(串行)连接到 Controller ?以太网? USB?网络协议(protocol)/网络协议(protocol)? PCI?

如果您通过 TCP/IP 或 RS232(串行)连接到 Controller 硬件,C#/.NET 可以很好地处理该任务。对于 USB、PCI、以太网等任何其他设备,您将需要一个设备驱动程序,该驱动程序必须根据驱动程序的要求使用 C 或 C++ 进行编程。当然你可以封装C++中的用户态部分或者封装直接调用Win32,但是会增加项目的开发任务。

关于c# - 我应该为我的应用程序使用 C#/.Net 还是 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/851128/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com