准备 Web 应用程序代码

已完成

本单元将介绍如何创建 Web 应用程序代码,并将其集成到源代码管理存储库中。

启动 Web 应用程序

既然你已创建用于部署 Web 应用程序的资源,接下来必须准备要部署的代码。 启动新的 Web 应用程序的方法有许多种,因此本文使用的方法可能与你过去常用的方法不同。 使用该方法的目的在于快速地为完成整个部署周期提供一个起点。

注意

此页上显示的所有代码和命令仅用于说明目的,你无需执行任何一项。 我们将在后续练习中用到它们。

你可以通过 .NET SDK 中的 dotnet 命令行工具直接为新的 Web 应用程序创建代码。 具体而言,可以使用 dotnet new 命令通过模板生成新的应用程序:

dotnet new mvc --name <YourAppName>

此命令将在具有指定名称的新文件夹中创建新的 ASP.NET Core MVC 应用程序。

若要快速创建入门 Web 应用程序,可以使用常用于 Java 生态系统的 Maven (mvn) 命令行工具。 具体来说,Maven 包含名为 archetypes 的功能,该功能可以通过模板快速为不同类型的应用程序创建起始代码。 你可使用 maven-archetype-webapp 模板为在其主页上显示“Hello World!”的简单 Web 应用生成代码。

mvn archetype:generate -DgroupId=example.webapp -DartifactId=helloworld -DinteractiveMode=false -DarchetypeArtifactId=maven-archetype-webapp

此命令将创建一个 helloworld 文件夹,其中包含应用程序的源代码。

你可以使用与 Node.js 捆绑在一起的节点包管理器 (npm) 命令行工具来创建新的应用程序。 init 命令将创建应用程序所需的新 package.json

npm init -y

打开在当前文件夹上创建的 package.json 文件后,你可以将 start 项添加到 scripts 部分,以说明 Web 应用程序的运行方式:

...
  "scripts": {
    "start": "node index.js"
  },
...

完成上述操作后,可以在新的 index.js 文件中编写实际的 Web 应用程序代码:

const http = require('http');
const port = process.env.PORT || 3000;

http.createServer(function(request, response) {
  response.writeHead(200, { 'Content-Type': 'text/plain' });
  response.end('Hello World!');
}).listen(port);

console.log(`Server running at http://localhost:${port}`);

此代码示例将创建一个服务器,该服务器将在计算机端口 3000 上进行侦听并向每个请求回复“Hello World!”消息。

若要通过几行代码创建新的入门 Web 应用程序,则可以使用 Flask,这是一种常用的 Web 应用程序框架。 可以使用以下命令安装 Flask:

pip install flask

你可以在环境中使用 Flask 后,使用以下代码创建最小的 Web 应用程序:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!\n"

此代码示例将创建一个服务器,该服务器将向每个请求回复“Hello World!”消息。

将代码添加到源代码管理

准备好 Web 应用程序代码后,下一步通常是将代码放到源代码管理存储库中,如 Git。 如果计算机已安装 Git,对源代码文件夹运行这些命令将初始化该存储库。

git init
git add .
git commit -m "Initial commit"

你可以通过这些命令初始化本地 Git 存储库,并创建首次代码提交。 这样做可以立即获得的好处是通过提交保留更改历史记录。 稍后,你还能够将本地存储库与远程存储库(例如托管在 GitHub 上的存储库)同步。 这样你就可以设置持续集成和持续部署 (CI/CD)。 尽管建议将源代码管理存储库用于生产应用程序,但这并非是能够将应用程序部署到 Azure 应用服务的必要条件。

注意

使用 CI/CD 时,可以自动生成、测试和部署每个代码更改,从而能够通过可靠的方式更加频繁地进行代码部署。 你可以通过它更加快速有效地为应用程序提供新功能和 bug 修复。