【发布时间】:2012-09-20 10:10:38
【问题描述】:
是否可以编写可由 3rd 方应用程序处理的自定义事件?
我们有一个现有的应用程序,我们发现许多使用该应用程序的人正在使用 sql 触发器来自定义编写他们自己确定的功能,当我们的应用程序发生事情时。
这导致某些情况下,我们自己的流程会因为劣质的第 3 方触发器阻止我们的应用而变慢。
我在想,如果我们可以引发他们可以在自己的服务或应用程序中处理的事件,而不是必须使用触发器,那么我们可以让第三方开发人员更容易做到这一点。
这样我们就会失去阻塞,因为我们可以触发事件并继续。此外,它们的缓慢/潜在崩溃也会发生在我们的流程之外。
A) 这是一种合理的方法吗?
B) 这可能吗?我可以将事件的范围超出我的应用范围吗?
编辑
从那以后我发现了其他有趣的相关问题:
- wcf cross application communication
- Interprocess pubsub without network dependency
- Listen for events in another application(这似乎非常接近我所追求的)
我想我正在寻找最简单的方法,但如果我们想在公司内的许多其他应用程序中采用这种方法,我们将面临一些进一步的挑战:
我们在 vb6 和 delphi 中有一些较旧的应用程序 - 我只是希望能够在我的(或第 3 方)较新的 C# 应用程序或服务中监听它们的事件。
现在,我将看看: Managed Spy 和 http://pubsub.codeplex.com
【问题讨论】:
-
我认为这是可能的,但它们需要位于外部程序集中,您应该与第 3 方开发人员共享。我想知道自己该怎么做。
-
事件可能不是执行此操作的最佳方式,尤其是当您的应用程序作为可执行文件或服务运行时。看看Managed Extensibility Framework