Service Fabric服务的visual studio项目模板包含可以在其他多个项目中重用的代码。例如,ServiceEventSource.cs或ActorEventSource.cs
我的程序员本能想将此代码移动到共享库,因此我没有重复的代码。但也许这不是微服务的方式,因为你想拥有小型的独立服务。引入库将使其更加依赖。但它们已经依赖于EventSource类。
我的解决方案是将一些可重用的代码移动到共享项目中的基类,并在我的服务中继承该类。这是最好的方法吗?
答案 0 :(得分:0)
我猜你所有的服务都会做很多不同的工作,所以一旦你填写了你的EventSource类,除了一个可以启动服务的方法之外,它们会彼此完全不同吗?
与任何日志记录一样,有许多不同的方法,我喜欢的主要方法之一是使用IoC容器的AOP或拦截代理,这将使您的类保持干净但允许重复使用ETW代码和相当数量的记录以便以后能够调试。
答案 1 :(得分:0)
我将大量重复的代码移动到我自己的nuget库中,这些库工作得非常好。这是一个额外的依赖,但总是比复制代码更好。现在我打算在visual studio中制作我的一个SF模板,所以我不必删除和调整一些文件。
我发现了一个很好的库(EventSourceProxy),可以帮助我管理ETW的EventSource代码:https://github.com/jonwagner/EventSourceProxy