如果你想要在您的本地环境中运行解决方案,请按照以下步骤操作。 ## 克隆 GitHub 存储库 首先,你需要在本地计算机上克隆 GitHub 存储库。该存储库位于[https://github.com/volosoft/eventhub](https://github.com/volosoft/eventhub),可以使用以下命令进行克隆(需要安装 Git 工具): ``` git clone https://github.com/volosoft/eventhub.git ``` 或者,导航到[https://github.com/volosoft/eventhub](https://github.com/volosoft/eventhub),单击**Code**按钮,然后单击**Download ZIP**,如以下屏幕截图所示: ![](https://img.kancloud.cn/65/5c/655c2c61ba1913015020eb73bc104dfb_388x361.png) ## 准备基础环境 该解决方案需要**Redis**和**PostgreSQL**服务器。在`etc/docker`夹中的存储库包含`docker-compose`文件。如果您的计算机上安装了 Docker,可以直接执行文件夹中的`up.ps1`文件来运行这些服务器。如果您不能在您的计算机上使用 PowerShell,您可以在文本编辑器中打开并复制脚本,然后打开命令行终端并切换到`etc/docker`目录中执行它。第一次运行,下载 Docker 镜像可能需要几分钟。如果您不想使用 Docker,则需要在您的机器上手动安装**Redis**和**PostgreSQL**。 ## 打开解决方案 请在 Visual Studio 或其他与 .NET 兼容的 IDE 中打开前面下载的解决方案`EventHub.sln`。 ## 创建数据库 该解决方案有一个`EventHub.DbMigrator`项目,运行此应用程序(对于 Visual Studio,右键单击它并选择**设为启动项目**,然后*按 Ctrl*+*F5*)。它将创建一个数据库并初始化一些数据。 ## 运行应用程序 我们现在准备好启动程序。您可以按以下顺序运行项目(对于 Visual Studio,右键单击每个项目,选择**设为启动项目**,然后*按 Ctrl*+*F5*) * `EventHub.IdentityServer` * `EventHub.HttpApi.Host` * `EventHub.Web` * `EventHub.Admin.HttpApi.Host` * `EventHub.Admin.Web` * `EventHub.BackgroundServices` 请使用`admin`用户名和`1q2w3E*`密码进行登录。当然,您可以在 UI 上创建其他用户。 >[success] 请注意,当您运行多个应用程序时,Visual Studio 会出现一些问题。有时,以前运行的应用程序可能会停止。在这种情况下,请再次运行停止的应用程序。 微软的`Tye`使得运行多个应用程序变得更加容易。下面介绍这种运行方式: ## 使用 Tye 项目 如果你不想要开发或调试解决方案但只想运行它,您可以使用 Microsoft的`Tye`项目来运行它,而无需打开 IDE。`Tye`是一个 .NET 全局工具,用于通过简单的配置简化运行此类分布式应用程序。EventHub 解决方案支持使用`Tye`配置,您需要做的就是安装`Tye`并运行它。 在使用之前`Tye`,您仍然需要准备基础环境(同上),然后使用`EventHub.DbMigrator`创建数据库(打开命令行终端并,并切换到目录`src/EventHub.DbMigrator`,运行以下命令: ``` dotnet run ``` 数据库准备好后,您可以在命令行终端中执行以下命令来安装`Tye`: ``` dotnet tool install -g Microsoft.Tye ``` 在撰写本书时,`Tye`项目仍处于预览阶段。您可能需要指定最新的预览版本(您可以在 NuGet 上找到此内容,网址为[https://www.nuget.org/packages/Microsoft.Tye](https://www.nuget.org/packages/Microsoft.Tye)。请参阅以下代码片段,以了解如何安装`Tye`: ``` dotnet tool install -g Microsoft.Tye --version "0.10.0-alpha.21420.1" ``` `Tye`需要在您的计算机上预先安装 Docker。全部安装完成后,您可以运行以下命令启动应用程序(如果IDE已打开,建议先关闭IDE): ``` tye run ``` 第一次运行需要一些时间。完成后,您可以打开浏览器并导航至`http://127.0.0.1:8000`打开**Tye Dashboard**,如下图: ![](https://img.kancloud.cn/12/aa/12aad2ff02b2d0219d7868ff6dd2419d_1128x742.png) Tye**仪表板**用于观看实时应用及其**日志。您可以单击Bingdings**列上的链接以打开任何应用。`web`是系统的**主站**。 当您的解决方案包含多个需要一起运行的应用时,Tye 是一个很方便的工具。您还可以`dotnet watch`对项目进行配置,以便在您更改项目时自动重新加载(或使用 .NET 6.0 热加载)。请参阅 Microsoft 的[文档](%5Bhttps://github.com/dotnet/tye/tree/main/docs%5D(https://github.com/dotnet/tye/tree/main/docs))以了解更多信息。 # 概括 EventHub 是一个基于 ABP 框架的完整的、真实的实时示例应用。而且已经发布在 [openeventhub.com](https://www.openeventhub.com/) 上,我们可以在GitHub上随时发送错误报告、推送请求和拉取代码。 在本章中,我们重点介绍的解决方案的整体架构,以便您了解如何探索代码库和运行解决方案。下一章将参考该解决方案,同时介绍一些 ABP 特性和概念。 EventHub 是使用多个应用构建的一个很好的例子。这也是理解 ABP 分层模型以及如何在不同应用中重用这些层的一个示例。 截止目前你可能还不了解 EventHub 解决方案的所有细节,因为我们还没有解释模块化系统、数据库集成、动态 C# 客户端代理以及所有其他 ABP 功能。 在下一章中,我们将探索 [ASP.NET](http://ASP.NET) Core 和 ABP 框架的基本模块,以了解如何配置和初始化应用程序。