我安装了VS2015和最新的Azure SDK。与 VS2013 和之前的 Azure SDK 相比,我对新项目模板的添加感到有些困惑。我正在尝试了解新的 Azure 应用服务。
我曾经创建一个 Web API 项目并将其发布为 Azure 云服务。现在,我有更多选择:
1) Azure Cloud Service -> ASP.NET Web Role -> Web API
这个我很熟悉。
2) Azure Cloud Service -> ASP.NET Web Role -> Azure API App
为什么有人会创建 Azure API 应用程序并将其发布为云服务?
3) ASP.NET Web Application -> Web API
4) ASP.NET Web Application -> Azure API App
这两个与没有云服务模板的前两个本质上是相同的。然而,它们的发布方式更让我困惑。您可以将每个应用程序发布为 Microsoft Azure Web 应用程序或 Microsoft Azure API 应用程序。
如何比较和对比以下内容:
- Web API -> 作为 Web 应用程序发布
- Web API -> 作为 API 应用发布
- API 应用程序 -> 发布为 Web 应用程序
- API 应用 -> 作为 API 应用发布
最佳答案
我同意,该工具有点混淆了这一点。以下是我的处理方法:
“云服务”似乎已成为过去,我正在做的任何新项目都会使用 AppService 并使用 ARM(Azure 资源管理器)模板编写该应用程序服务的设置脚本。您可以在 VS 2015 的“云”->“Azure 资源组”下找到一个模板。这完全是可选的,但却是一个很好的最佳实践。
正如您在上面指出的,所有 4 种组合都是有效的。事实上,Azure API 应用程序在表面下使用与网站相同的技术(它有点隐藏在门户中,但您可以通过在预览门户中打开 API 应用程序从 API 应用程序向下导航到底层网站,然后在“API App Host”标签下双击)。
在 VS2015 中使用 API 应用程序模板,您将获得一个标准的 asp.net 网站,就像使用 Web 应用程序模板一样,但主要区别在于 API 应用程序默认情况下是精简的,与网站模板不同这将有很多对 API 应用程序没有用的库(没有 jquery、bootstrap RazorViews 等)。较小的占用空间意味着 asp.net 启动时需要加载的内容较少,因此启动时间更快。
API 应用程序具有可在逻辑应用程序中使用的简单集成点(想象一下逻辑应用程序中定义的 Salesforce 工作流程,需要调用 API 将数据更新到数据库)。您可以使用网络应用程序来完成此操作,但需要做更多的工作。
我相信不久的将来的计划是建立一个 API 应用程序市场(应用程序商店风格),让我们开发人员能够销售 API。
大摇大摆地走出困境。 API 应用程序模板已预安装 Swashbuckle,用于为您的 API 生成 Swagger 文档(可以说您可以通过 nuget 将其安装到您的 Web 应用程序模板中)。
总体而言,API 应用程序具有与 Web 应用程序完全相同的功能,但在某些地方通过额外的位进行了精简。
关于VS2015 中的 Azure 应用服务项目模板和新发布目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32924873/