订单处理器
事件驱动与MCP集成,用于订单处理。
______________________________________________________________________
目录
______________________________________________________________________
引言
这 订单处理器 该项目展示了MCP功能如何使用户能够有效地管理订单,而不需要复杂的界面。它还强调了事件驱动的架构,其中消费者应用程序(代表企业将用于管理发货订单的第三方物流或其他应用程序)使用OrderCreated事件并将Feedback事件发布到生产者可以收听的反馈EventHub,以更新已处理订单的状态。
快速演示
https://github.com/user-attachments/assets/f60a23ee-5faf-499e-ba01-07b4bf575ba8
技术栈
- 后端: .NET 10
- 数据库: MS SQL Server
______________________________________________________________________
架构概述
Created using [Mermaid Charts]
这个项目正在建模 2个独立系统 -一个业务用户用来创建订单的应用程序(生产者),以及一个监听订单创建事件并获取它们的应用程序。这将是一个公司或其第三方物流公司用于运输订单的航运/物流应用程序。
为了简单起见,这些应用程序是在一个单独的仓库中创建的,但这两个应用程序彼此之间没有依赖关系,以保持它在现实世界中的工作方式。
Producer公开了MCP函数,允许用户获取有关订单的相关数据并创建新订单。当创建订单时,它会被持久化到数据库中,并在数据库上放置OrderCreated事件 orders EventHub。
消费者倾听 orders EventHub和(在等待10秒模拟异步后)发布并订购反馈事件,告诉Producer它已收到订单进行处理。然后,生产商将该订单的状态更新为“已处理”。
______________________________________________________________________
构建并运行
先决条件
- .NET 10 SDK
- Visual Studio 2026(目前唯一运行.NET 10的VS版本)
- 使用GitHub Copilot的Visual Studio代码
- ExpressRoute v18或更高版本
- SQL Server 快速版
设置
数据库
- 在本地设置一个名为的新SQL Server数据库
OrderProcessorProducer. - 将连接字符串信息复制到
OrderProcessorProducer基础设施项目中的连接字符串appsettings.Development.json.
- 用于连接字符串需求的帐户 db_datareader 和 db_datawriter DB上的权限。
- 打开
OrderProcessorVisual Studio中的解决方案 - 复制粘贴
eng/sql/seed-data.sql进入你的OrderProcessorProducerDB。 - 复制粘贴
src/OrderProcessor/Migrations/CreateSchema.sql进入你的OrderProcessorProducerDB。
.NET应用程序
- 打开
OrderProcessorVisual Studio中的解决方案 - 请联系我,获取要在中设置的EventHub连接字符串
local.settings.json文件,或自行启动orders和orders-feedbackEventHubs,并获取它们的连接字符串。 - 设置
OrderProcessor.Producer和OrderProcessor.Consumer作为启动项目,并运行。 - 应用程序运行后,打开
.vscode\mcp.json在Visual Studio代码中打开文件,然后单击“开始”。 - 在VS Code中打开GitHub Copilot聊天,并确保
order-processor-producer选择使用MCP服务器及其所有相关工具。
用法
使用GitHub Copilot询问您对订单和订单创建的任何要求!一些示例提示:
给我所有订单的状态
为我创建订单
订单中可以包括哪些产品?
我可以使用宾夕法尼亚州的哪些航运公司来运输订单?
从\[发送地址\]向\[接收地址\]发送订单
把我刚下的订单的状态告诉我。
状态改变了吗?
哪些订单的状态为“已处理”?
贡献
欢迎投稿! 请按照项目的编码风格和指导方针打开问题或提交拉取请求。
许可证
本项目根据非商业许可证获得许可。 仅允许出于非商业目的使用、修改和分发。 有关详细信息,请参阅LICENSE文件。
联系
凯西·刘易斯 casey.lewis08@gmail.com
