전문 용어 충돌에 어려움을 겪고 있으며 좋은 해결책을 찾을 수 없습니다. 어쩌면 다른 누군가가이 문제를 겪었을 것입니다.MVVM 패턴을 사용하도록 기존 코드를 리팩토링 할 때이 전문 용어 혼란을 어떻게 해결합니까?
WPF를 사용하기 위해 기존 WinForms 응용 프로그램을 다시 작성하고 있습니다. 새 응용 프로그램에서 MVVM 패턴을 사용할 것입니다. 내 오래된 응용 프로그램은 ADO를 광범위하게 사용합니다. 특히, 개체를 랩하는 DataRow
개체가 있습니다. 그리고 행의 어떤 열이 UI의 특정 컨텍스트에 나타날 수 있는지 정의하려면이 정의가 RowView
객체에 있습니다.
개념적으로, "보기"이에 대한 적절한 용어입니다 - 하나가 DataRow
을 기초하여 각각보기 많은 등의 열, 액세스 권한, 자사의 하위 집합을 정의하는 RowView
객체를 사용하여 여러 객체를 가질 수에서와 SQL 데이터베이스. ColumnView
개체에는 RowView
의 ColumnViews
컬렉션에 특정보기의 각 열의 표현에 대한 메타 정보가 들어 있습니다.
이것은 모두 젖은 쿵쾅 거리기로 MVVM 패턴을 치고 있습니다. MVVM에서 "보기"는 다른 것을 의미합니다. 즉, UI의 객체 표시를 의미합니다. MVVM에 관한 한 내 응용 프로그램의 RowView
은보기가 아닙니다. MVVM에는 실제로는 RowView
객체가 없지만 UI와 특정 객체 사이의 상호 작용 로직을 지원하는 기본 RowViewModel
과 행의 각 열에 대해 기본 객체 인 ColumnView
이 있습니다.
일반적으로 전문 용어의 혼동은 카테고리 오류에서 발생하지만,이 경우 나는 카테고리가 올바르게 있다고 생각합니다. 문제는 서로 다른 컨텍스트가 다른 것들에 대해 동일한 이름을 사용한다는 것입니다.
즉 "네임 스페이스"하지만 확실히 기술적으로을 를 작동 이러한 용어를 명확하게하기 위해 네임 스페이스를 사용하는 동안이 코드 하나를 가로 질러 보았 때 혼란에게 새로운 개발자 경험을 해명 할 것을 심각하게 의심이 발생 순진 대답 비트.
또 다른 가능성은 개체의 이름을 다른 것으로 변경하는 것입니다. 마찬가지로 모델에서 "행"과 "열"을 사용하고 뷰와 뷰 모델에서 "레코드"와 "필드"를 사용할 수 있습니다. 그래서 나는 과 RowView
에서 을 구성 할 수 있으며, 각 열의 값과 ColumnView
에서 Field
을 작성할 수 있습니다. 그런 다음 WPF에 노출되는 RecordViewModel
및 FieldViewModel
개체를 가질 수 있으며 UI 개발자는 RowView
및 ColumnView
개체가 존재한다는 것을 결코 알 필요가 없습니다. 그러나 이런 종류의 악취도 있습니다.
MVVM을 사용하기 위해 소프트웨어를 다시 작성하는 동안이 문제를 겪은 사람이 있습니까? 도대체 당신은 무엇을 했습니까?
+1. 프로젝트의 독창적 인 개발자가되는 것이 가장 큰 약점 중 하나는 명쾌하지 않은 답변은 완전히 이해할 수 없다는 것입니다. 80 %의 시간 동안 나는 (SO의 커다란 이점 중 하나 인) 질문을 작성함으로써 대답을 얻었습니다. 이 시대는 아니 었습니다. 고맙습니다. –
@ 로버트 로스니 : 오 .. 네, 거기서 들려요. 작은 시너지없이 조금 힘들어. 물건을 튀게하는 사람을 갖는 것은 대부분의 사람들에게 과소 평가됩니다. 다행히 도울 수있어. –