跨平台集成:.NET与Node.js的协同工作

在当今的软件开发领域,被各种基础设施、组件、库和工具所包围,这些不仅由Microsoft提供,还由更广泛的.NET社区的许多慷慨成员通过开源项目提供。当然,这并不是说围绕其他技术的开发者社区就不那么庞大和精彩——只是根据经验(确实是*经验*,可能会/会有所不同!)。无论如何,尽管开发平台的资源非常丰富,但有时会发现,与习惯的环境相比,跨平台使用某些技术可能更适合。当在寻找一个可以集成到参与的大型.NET项目中的eLearning解决方案时,就遇到了这样的情况,发现了一个完美的解决方案,但它是用NodeJS开发的,而不是首选的C# .NET平台。这是一系列短文章的第一篇,将描述将一个在Azure上开发的、使用MongoDB的在线培训/eLearning平台集成到.NET项目中的解决方案的背景。

  • 将NodeJS应用程序发布到Azure(本文)
  • 本地安装和测试eLearning平台(即将推出)
  • 在Azure CosmosDB中复制MongoDB数据库(即将推出)
  • 上传并发布eLearning平台到Azure(即将推出)

云的美妙之处,特别是Azure,在于能够在同一个虚拟空间中运行许多不同的技术,并且让它们轻松连接,尽管它们有不同的托管和环境要求。当然,需要配置这个,设置那个,但总的来说,这比过去的方式要容易得多!在这个项目之前,从未需要在Azure上部署NodeJS解决方案,所以第一步是逐步进行,并找出任何“陷阱”。需要处理的有两件事。起点是看看需要什么才能在Azure上发布一个简单的“hello world”风格的Node应用程序并使其工作。

开始

对于这个简单的例子,假设是一个新项目。在Visual Studio中创建一个新项目,对于类型,选择“New NodeJS project forAzure”。使用VS 2017,从菜单中选择“File New Project”。在JavaScript部分,查找“Basic Azure Node.JS Express Application”。它应该看起来像这样:

// JavaScript const express = require('express'); const app = express(); app.get('/', function(req, res) { res.send('Hello World!'); }); app.listen(3000, function() { console.log('Example app listening on port 3000!'); });

在上面的代码中,声明了一个常量‘express’,并将其指向库‘express’。然后创建了另一个常量‘app’(应用程序)并将其分配给核心的express()方法。现在轻量级的魔法…用‘app.get’说的是‘当在Node.js中运行的Web应用程序使用http GET动词调用到Web服务器的根‘/’时,然后返回一个‘Hello world’的‘响应’。另一行说当应用程序启动并绑定到端口3000时,打印一条消息到控制台,说它正在监听并准备就绪。非常整洁!可以在上了解更多关于Express的信息。

发布Node.js到Azure

将简单测试网站上传到Azure非常简单。再一次,微软的优秀团队为做了非常简单的事情…每天都感谢他们!在项目的顶部,右键单击并选择“发布”:

  1. 在弹出的窗口中,选择“MicrosoftAzureApp Service”。
  2. 接下来,需要将应用程序分配给一个服务应用程序和资源组。如果还没有这些,点击后续屏幕上的“New”。
  3. 请注意,分配给这个应用程序的App-name需要在Azure DNS命名空间中是唯一的,所以可能需要尝试几个选项才能得到想要的。
  4. 运行Node不需要一个重型计算实例,所以可以选择一个相当轻量级的。
  5. 这是应用程序服务准备发布的屏幕截图。点击“Create”继续。

在远程设置好之后,Visual Studio将继续将应用程序发布到Azure。当它完成它的魔法后,它应该会自动为打开一个浏览器,将看到基础应用程序成功发布。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485