我想开发一个C#windows客户端应用程序,它会在插入新数据库记录时通知用户。 服务器是一个远程linux机器,mysql作为数据库引擎,它有PHP前端。 由于我是C#世界的新手,我想就如何解决这个问题提出一些建议。 谢谢!
答案 0 :(得分:0)
我不熟悉.NET的MySQL API,但是在网上快速搜索并没有比实现自己的轮询逻辑更好,例如这个问题:Update C# client whenever database is updated
为此,您可以将DateTime列添加到需要轮询和存储上次轮询时间的所有表中。这样就可以查询自上次轮询间隔以来已更改的所有记录。
至于客户端通知,我建议使用某种消息框架。在同质的Microsoft环境中,我建议使用Microsoft Message Queue MSMQ。对于(纯)MSMQ来说,最棒的是.NET 开箱即用支持该功能。使用它很简单,你很快就会找到使用它的方法。
还有许多其他框架构建在MSMQ之上,让您的生活更轻松和/或提供其他功能,例如:比如开源项目MassTransit或NServiceBus。由于您使用的是 Windows和Linux 系统,因此可能值得查看RabbitMQ,它支持最主要的操作系统。
使用此类消息传递系统的优点是,您可以以消息发布者和接收者都不需要彼此了解的方式配置应用程序。例如,他们不需要彼此具有硬编码引用(或地址)。
无论您在任何给定时间有多少客户在线,这都为您提供了出色的灵活性和可扩展性。