问题描述
我们正在制作产品。到目前为止,它只是一组桌面应用程序。第一次,我们将很快开始构建一个 Asp.Net 核心 Web 应用程序(后端为 asp.net 核心,前端为 blazor 或 angular)。
Web 应用应可部署在 Azure 应用服务和本地服务器上。 我们必须提供一个捆绑包或任何东西,让他们将其安装在他们的服务器上。但显然,我们无法交付代码、visual studio 和他们在他们想要的地方发布。他们还应该能够编辑 appsettings.json
我猜如果安装在本地服务器上,他们应该将其部署在 IIS 上?或者一些 docker 方法会是更好的方法(没有真正测试过这个,因为 Visual Studio 要求我提供一个 docker 容器注册表,因此我无法直接生成一个 docker 镜像)
那么我应该为他们提供什么才能将其部署在云端和本地?
解决方法
-
你有很多选择。没有“一个正确的答案”。
-
无论您选择什么,“客户”都会将您的“应用”部署到某个“服务器”。该应用不直接部署到用户的桌面。听起来您已经明白这一点,但值得强调一下。
-
那么什么是“服务器”?
- 在 ASP.Net 时代,“服务器”是“IIS”。这仍然是 ASP.Net Core/.Net 5 的绝佳选择
- Azure 应用服务是另一个不错的选择
- 正如 Martheen 所建议的,“Dockerizing”您的应用是另一种可能性。
- 由于您的平台是ASP.Net Core/.Net 5,所以除了IIS,您还可以选择其他HTTP服务器
- 由于 Azure 是一种选择,因此除了 Azure 应用服务或 Docker 之外,您还有很多选择
-
无论您选择什么,如果客户要部署到不同的环境,您很可能需要向他们提供不同的安装说明。将应用部署到 IIS 的过程必然不同于部署到 Azure 应用服务或部署 Docker 映像的过程。
-
您的“包裹”必须包括:
- 您的应用
- 您的 Angular 前端
- .Net Core 运行时
- Blazor 运行时
- “其他”(配置文件、安装脚本等)
-
Angular 本身需要“打包”以包含在您的“应用程序”中。也许您已经使用 Angular Template 构建了 ASP.Net Core 项目。那会简化事情。或者,您可能正在使用 Angular CLI;独立于 MSVS/MSBuild。无论如何,在打包您的应用时必须有一些 Angular 的“构建步骤”。
-
我会从这里开始:
我希望这有帮助......至少有点......
,Blazor 服务器项目在您发布时进行了预编译。您将获得:
-
一个主exe文件
-
一些dll文件
-
你在 wwwroot 中放入的任何东西(css 文件、图标等)
-
一些配置文件,包括 web.config 和 appsettings.json
-
没有源代码文件
我还没有做过任何 WASM 项目,但我很确定这些项目也是如此。
有多种发布选项 - 可以通过 FTP 上传到 IIS 服务器的文件夹、直接发布到 Azure 应用服务等。我的理解是 WASM 根本不需要任何服务器——它甚至可以由 CDN 提供服务。