VS에서 응용 프로그램 구조를 설정하려고하는데 합리적인 수준으로 "시도"하고 나중에 증명하고 싶습니다. 이 응용 프로그램은 규칙을 따르지 않은 이전 Winform 앱을 WPF로 다시 작성합니다. 레이어, 계층, 약어 등이 없습니다.
상당히 게으른 엔터프라이즈 응용 프로그램입니다. Linq To SQL을 DB로 사용하고 항상 MS SQL 일 가능성이 높습니다. 또한 기존 기술이 설정되어 있습니다.
MVVM과 DDD를 최대한 활용하고 싶지만 이들을 결합 할 때 응용 프로그램의 구조가 혼란스러워집니다. 몇 가지 예를 들어서 설명해 드리겠습니다.
MVVM을 따르면 내 폴더 구조는 다음과 같습니다.
Views
Models
ViewModels
Helpers
그러나 이것이 내 프로젝트 구조가 다음과 유사한 단순한 DDD 계층 접근 방식에 어떻게 적합합니까?
MyApp.UI
MyApp.Domain
MyApp.Data
나는를 배치해야합니까 Models
도메인 층 또는 내가 말 3 개 버전이 있습니까 Person
? 이것은 DB 객체의 리포지토리와 매핑을 어디에 배치 할 것인가에 대한 또 다른 질문으로 이어집니다. 나는 데이터를 가정합니다 ...
Views
나는 UI에 갈 것이지만 ViewModels
?
마지막으로, 비즈니스 로직을 어디에 포함시킬 것인가?
CodePlex, DDD Example 에서 다음을 발견했으며 도움이되었지만 웹 응용 프로그램에 대한 것 같지만 중요하지 않으며 무지가 빛납니다.
내가 틀리지 말아라, 나는 많은 폴더를 가질 수 있고 내가 원하는대로 전화 할 수 있다는 것을 안다. 나는 물건을 어디에 두어야하는지 알아 내려고 노력하고 있는데, 이것이 그 장소가 반드시 불려지는 것이 아니라 확장이 가능할 것입니다.
내 질문의 핵심은 다음과 같이 보일 수 있습니다.
에 tblPerson
의해 생성 된 객체가 *.dbml
있습니다. 이것은 명백하며 내 "데이터"레이어에 속합니다.
이제 Model, DTO, Domain Model 또는 별도의 Layer (project?)에서 호출 된 모든 것이 Person
있습니다. 나는이 필요 Mapper
위한 Person
에 tblPerson
내가 어디에 넣어하는 방법 확실하지 않다 그.
그런 다음 ViewModel을 사용 EditPerson
하여 가져 오는 자체 속성을 Person
가지지 만 더 많이 가져올 수 있습니다.
마지막으로 해당 ViewModel에 바인딩 된 View가 있습니다 ....
내 가정과 추측으로 단락이 채워 졌음을 분명히하기 위해 누군가가 나를 위해 공기를 깨끗하게하거나 통찰력을 제공하여 6 개월에서 1 년 동안 내가 필요 이상으로 자신을 걷어 차지 않기를 바라고 있습니다.