2017-01-05 4 views
1

서비스 패브릭 서비스 용 비주얼 스튜디오 프로젝트 템플릿에는 다른 여러 프로젝트에서 다시 사용할 수있는 코드가 포함되어 있습니다. 예를 들어 ServiceEventSource.cs 또는 ActorEventSource.cs서비스 패브릭에서 새 서비스를 만들면 중복 코드가 발생합니다.

내 프로그래머 본능은이 코드를 공유 라이브러리로 이동하려고하므로 중복 코드가 없습니다. 그러나 작은 독립적 인 서비스를 원하기 때문에 이것은 마이크로 서비스와 함께가는 길은 아닐 것입니다. 라이브러리를 도입하면 더 많이 의존하게 될 것입니다. 그러나 그들은 이미 EventSource 클래스에 의존하고 있습니다.

내 솔루션은 일부 재사용 가능한 코드를 공유 프로젝트의 기본 클래스로 옮기고 내 서비스에서 해당 클래스를 상속받는 것입니다. 이것이 최선의 접근 방법입니까?

답변

0

나는 조용한 잘 작동하는 내 자신의 nuget 라이브러리로 많은 중복 코드를 옮겼다. 추가 종속성은 있지만 항상 코드를 복제하는 것이 좋습니다. 이제 비주얼 스튜디오에서 내 SF 템플릿을 만들 계획이므로 일부 파일을 제거하고 조정할 필요가 없습니다.

ETW 용 EventSource 코드 관리에 도움이되는 멋진 라이브러리 (EventSourceProxy)를 발견했습니다. https://github.com/jonwagner/EventSourceProxy

0

귀하의 모든 서비스가 서로 다른 많은 일을하고있을 것이라고 생각합니다. 일단 EventSource 클래스를 채우면 서비스가 시작될 방법을 제외하고는 완전히 다릅니다.

로깅과 마찬가지로 여러 가지 방법이 있습니다. IOC 컨테이너를 사용하여 AOP 또는 인터셉터 프록시를 사용하는 것이 가장 좋은 방법 중 하나입니다. 클래스를 깨끗하게 유지하지만 ETW 코드와 적절한 양을 다시 사용할 수 있습니다. 나중에 라인을 디버깅 할 수있게하는 로깅