webUI 프로젝트와 도메인 역할을하는 클래스 lib 프로젝트가 포함 된 VS2015 솔루션이 있습니다. 클래스 lib에는 20 개 이상의 EF DB First 생성 클래스 (edmx 모델)와이 클래스에서 작동하는 20 개의 repo가 있습니다. 기본 db를 변경해야 할 때 edmx 모델을 버리고 재생성합니다. 이 클래스 중 하나는 Domain.DbEntities.plc
입니다. 내 webUI는이 도메인 lib를 참조합니다. 동일한 기본 DB 테이블에있는 여러 도메인의 클래스 간 통신
Domain lib
참조가 있고 방법 변수 일부 수용성
Domain.DbEntities.plc
Domain.DbEntities.plc
도를 사용하는 일부 복귀 래퍼 클래스가 용액에 추가 첨가 프로젝트
PlcCommunicator
. 내 webUI 프로젝트는 "PlcCommunicator"프로젝트를 참조하고 모든 것이 잘 작동합니다.
솔루션이 더 커지면서 시간이 갈수록 더 많은 프로젝트를 추가하고 사용했습니다. Domain lib
. 하지만 이제는 PlcMonitoringLogger
이라는 또 다른 프로젝트를 추가했으며 메인 도메인의 일부 하위 도메인을 만들었습니다. 5 개 클래스는 모두 EF DB입니다. Main Domain
과 동일한 db에 생성 된 edmx 클래스가 처음 생성되었습니다. 이 클래스 중 하나는 PlcMonitoringDomain.DbEntities.plc
입니다.
는 지금은 PLCCommunicator
프로젝트를 사용하는 내 PlcMonitoringLogger
프로젝트가 필요합니다 (Domain.DbEntities.plc
와의 차이를 참고). 그러나 PlcCommunicator
은 Domain.DbEntities.plc
및 PlcMonitoringLogger
과 함께 작동하며 PlcMonitoringDomain.DbEntities.plc
만 알 수 있습니다. 그래서 제가 직면 한 문제가 있습니다 .... Domain.DbEntities.plc
객체 대신 plc
대신에 객체를 받아들이고 Domain.DbEntities.plc
객체 대신 plc
의 ID를 반환하도록 PlcCommunicator
메서드의 매개 변수를 변경할 수 있습니다. 그러나 이것이 올바른 접근 방법입니까? 함정이 있습니까? 장단점은 무엇입니까? 또 다른 해결책은 base plc class
을 만드는 것일 수 있지만 이는 옳지 않은 것처럼 보입니다. 서로를 분리하고 base
클래스를 만드는 것은 옳다고 생각하지 않습니다.
제한된 컨텍스트에 대한 내용을 읽었습니다. 그러나 나는 기존의 프로젝트를이 디자인 패턴을 사용하는 것으로 바로 바꿀 수는 없으며 원하지 않는다. 마지막 장소에는 아직 경험이 없기 때문에 초심자에게는 어렵습니다. 바운드 컨텍스트에서 벗어나는면을 사용하는 "베이비 스텝"을 만드는 것이 최선의 방법이라고 생각합니다. 전체 리빌드를하지 마십시오!
아무도이 주제 또는 제발 말하기에 유용한 아이디어가 있다면 응답하십시오!
서로 다른 프로젝트에 배치하여 분리하는 것은 불가능합니다. 구현이 아닌 추상화를 프로그래밍하여 최상의 결과를 얻을 수 있습니다 (IMHO). – Maarten