elsa-core:4.ASP.NET Core Server with Elsa Dashboard

在本快速入门中,我们将了解一个最小的 ASP.NET Core 应用程序,该应用程序承载 Elsa Dashboard 组件并将其连接到 Elsa Server。

ElsaDashboard + Docker

尽管能够设置您自己的 Elsa Dashboard 项目以自定义某些方面很有用,但在许多情况下,您可能会发现基本仪表板是连接到 Elsa 服务器所需要的。

Elsa 附带了一个名为 ElsaDashboard.Web 的预制项目,您可以将其配置为与现有的 Elsa 服务器通信。此外,您还可以构建和运行一个 Dockerfile。

有关更多信息,请查看 ElsaDashboard + Docker 快速入门。

我们会:

  • 创建 ASP.NET Core 应用程序。
  • 安装 Elsa Dashboard 组件。

项目

创建一个名为 ElsaQuickstarts.Server.Dashboard 的新的空 ASP.NET Core 项目:

dotnet new web -n "ElsaQuickstarts.Server.Dashboard"

CD 到创建的项目文件夹中:

cd ElsaQuickstarts.Server.Dashboard

添加以下包:

dotnet add package Elsa.Designer.Components.Web

Startup

打开 Startup.cs 并将其内容替换为以下内容:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;

namespace ElsaQuickstarts.Server.Dashboard
{
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddRazorPages();
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseStaticFiles();
            app.UseRouting();
            app.UseEndpoints(endpoints => { endpoints.MapFallbackToPage("/_Host"); });
        }
    }
}

_Host.cshtml + _ViewImports.cshtml

请注意,该应用程序将始终提供 _Host.cshtml 页面,我们接下来将创建该页面。

  1. 创建一个名为 Pages 的新文件夹。
  2. 在 Pages 中,创建一个名为cshtml 的新文件。
  3. 在 Pages 中,创建一个名为cshtml 的新文件。

将以下内容添加到 _ViewImports.cshtml:

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

并将以下内容添加到_Host.cshtml:

@page "/"
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <title>Elsa Workflows</title>
    <link rel="icon" type="image/png" sizes="32x32" href="/_content/Elsa.Designer.Components.Web/elsa-workflows-studio/assets/images/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="16x16" href="/_content/Elsa.Designer.Components.Web/elsa-workflows-studio/assets/images/favicon-16x16.png">
    <link rel="stylesheet" href="/_content/Elsa.Designer.Components.Web/elsa-workflows-studio/assets/fonts/inter/inter.css">
    <link rel="stylesheet" href="/_content/Elsa.Designer.Components.Web/elsa-workflows-studio/elsa-workflows-studio.css">
    <script src="/_content/Elsa.Designer.Components.Web/monaco-editor/min/vs/loader.js"></script>
    <script type="module" src="/_content/Elsa.Designer.Components.Web/elsa-workflows-studio/elsa-workflows-studio.esm.js"></script>
</head>
<body>
<elsa-studio-root server-url="https://your-elsa-server-url" monaco-lib-path="_content/Elsa.Designer.Components.Web/monaco-editor/min">
    <elsa-studio-dashboard></elsa-studio-dashboard>
</elsa-studio-root>
</body>
</html>

运行

运行程序并打开 Web 浏览器到主页(如果您不更改 launchSettings.json,通常会自动发生):

在您确保将组件指向正在运行的 Elsa 服务器之前,所有菜单项都不会正常工作。

posted @ 2021-09-08 16:07  中阳里士  阅读(856)  评论(0编辑  收藏  举报