【问题标题】:Node.js alongside .Net librariesNode.js 和 .Net 库
【发布时间】:2016-06-16 22:47:44
【问题描述】:

我不确定这个问题是否已被提出或是否在正确的堆栈站点中。 - 如果不是,请告诉我,我很乐意将其删除。

我是 .Net-stack 开发人员;更具体地说,网络。我也喜欢 .Net 提供的许多工具和框架。

我还使用 JavaScript 和各种框架(例如 Angular)进行了很多开发。尤其是近两年。

随着我开发更多的 JS,我发现自己对 Node.js 及其优势很感兴趣。我承认,除了一些典型的 hello world 示例之外,我对 Node.js 了解不多。

现在,我宁愿不必学习一大堆其他框架来替换我在 .Net 中使用的一些框架——例如实体框架。

所以这让我想知道 - 是否有任何可用的东西可以弥合 Node 和 .Net 之间的差距。

也许我的思维过程没有正常工作,尽管我想要实现的是:

  • 使用 Angular 之类的前端
  • 调用 Node.js Rest API
  • 节点然后接触到使用 .Net 构建的业务层

我认为,我将/可以获得 Node.js 提供的速度和可扩展性,但在 Rest 服务和数据库之间的所有方面都保持我在 .Net 方面的多年经验。

这是存在的,甚至是可能的吗?

【问题讨论】:

    标签: .net node.js architecture


    【解决方案1】:

    是的,这是完全可能的。

    将 node.js 应用程序视为它自己的 http 服务器,就像您的 .net 服务器一样。它们都可以在不同端口上运行的同一物理(或虚拟)服务器上共存。然后,您可以使用 IIS(或 apache、nginx 等)反向代理设置将它们置于同一域和端口下。通过这种设置,两者之间的通信只需要一个简单的 http 调用,您的前端看起来就像在一个系统下运行,尽管实际上它们是两个独立的应用程序。

    【讨论】:

    • 这几乎就是我的想法 - 只需将 Node.js 用于服务器请求即可。不过,您在帖子的其余部分中迷失了我-使用 IIS。这会是站点 -> 节点 -> IIS -> 其他 .Net 库(似乎不对..)
    • 这样看。我在域http://www.example.com 的端口80 上运行了一个coldfusion 应用程序。我还有一个 node.js 应用程序在端口 5000 http://localhost:5000 上运行。为了使 node.js 应用程序公开可用,我可以在 iis 中使用反向代理将所有请求转发到 http://www.example.com/apihttp://localhost:5000。从外面看,你看起来像是从同一个服务器和端口发出请求(ajax 请求都是同源的,没有 CORS 废话),但你不是,它们实际上是两台服务器。
    • 我目前工作的公司正在以完全相同的方式打破 PHP 单体。我们使用 apache 对我们的节点应用程序运行反向代理,并通过 http 进行 2-3 个应用程序之间的所有通信。工作得很漂亮。在您使用 node 之后,我建议您查看PM2 以管理长时间运行的 node 进程。
    • 不过,如果您使用的是 Windows,Windows 服务也可以很好地保持节点进程的运行,最重要的是,两者可以结合使用。 :)
    【解决方案2】:

    在过去几年中,出现了一种称为微服务的新软件架构趋势。

    本质上,微服务背后的理念是在单一应用程序之上拥有多个小型专用应用程序。

    您所描述的正是将您的 Web 应用程序(可能用 Node 编写)与所有用 .Net 编写的业务逻辑(可以是一个或多个应用程序)解耦

    除了让您灵活地为特定任务选择最佳语言/技术外,这还使您能够轻松有效地扩展您的应用程序。

    你可以阅读更多关于它in this post

    编辑:也如 Kevin B 所述,您可以使用 http 调用在这些应用程序之间进行通信。除此之外,您还可以使用 pub/sub 或队列在微服务之间进行通信

    【讨论】:

    • 啊,太好了,谢谢 :) 该链接也非常有用。现在我知道有一种趋势,它叫什么,它对我的​​帮助无穷无尽:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 2010-10-11
    • 1970-01-01
    相关资源
    最近更新 更多