WPF 개발 방식 및 기본 컨트롤, UserControl, CustomControl 질문드립니다.

WPF를 막 시작한 신입 개발자입니다.
구글링 및 책 구매 등을 통해 열심히 WPF 프레임워크에 대해 학습하고 있습니다.

학습하는 동안, 항상 온전하게 이해가 되지 않는 부분이 있었습니다.

그 부분에 대해서 여쭙고, 혹은 이에 관련된 학습 자료가 있다면 무엇을 찾아야 하는지 질문 드리고 싶습니다!

저는 회사에서, DevExpress를 이용해 Window 안에 컨트롤을 만들고 ViewModel과 DataBinding을 하는 방식으로 개발을 하고 있습니다.

질문은 다음과 같습니다!

  1. Window태그 안에 컨트롤을 다 넣어서 만드는 방식이 옳은 것인지? (또는 효율적인지)

  2. UserControl, CustomControl 등과 같이 C#을 통해 프로그래밍 하는 것과 유료 UI Component로 xaml로 컨트롤을 선언하는 것의 차이가 무엇인지 이해가 되지 않습니다.

UserControl과 CustomControl 개념을 학습하고 있는데 도구 상자에 있는 기본 컨트롤 또는 DevExpress와 같은 유료 컨트롤을 사용하는 것과의 차이를 이해하지 못하겠습니다.

귀한 시간 내주시고 글 읽어주셔서 감사드립니다!

  1. 회사 코드는 대부분 역사적인 이유를 가지고 있습니다. 정답이 존재하면 정답대로 하면 되겠지만 사실 코딩은 매 순간 트레이드오프에서 선택만 있는거라… 윈도우 태그안에 다 넣어 만들면 올바른 건지는 정답이 없고 그런 선택을 한거겠지요.
    회사 코드는 그냥 두고 집에서 본인이 생각하는 형태로 사이드 작성해 보세요. 꼭 회사 코드를 고칠 필요는 없어요. 나중에 고도화나 신규 프로젝트 할 때 올바르게 작성하려면 준비게 되어 있어야죠

  2. 문제의 외주화는 중요하죠. 직접 만들었는데 문제 발생하면 큰일이라서…

1개의 좋아요

이번에 MFC로 만들어진 프로그램을 WPF로 옮기는 신규 프로젝트를 맡고 있습니다ㅠㅠ WPF는 처음이라서 어떤 구조로 개발을 해야 하는지 갈피가 잡히지 않습니다…

사실 프로그램 자체는 그렇게 복잡한 구조는 아니고, 사용자에게 컨트롤을 통해 입력 값을 받고 JSON으로 저장하는 정도입니다…!

  1. Window태그 안에 컨트롤을 다 넣어서 만드는 방식이 옳은 것인지? (또는 효율적인지)
    → 프로그램 규모가 작다면 (컨트롤 10개 미만) 한곳에 다 넣어도 무방하죠. 페이지가 많다 or 중복적으로 사용하는 컨트롤들이 많다 or MVVM패턴을 이용하는 프로그램이라면 사용자 정의 컨트롤로 나눠서 만들면 좋지요~

  2. UserControl, CustomControl 등과 같이 C#을 통해 프로그래밍 하는 것과 유료 UI Component로 xaml로 컨트롤을 선언하는 것의 차이가 무엇인지 이해가 되지 않습니다.
    → 쉽게 생각해서 유료 UI 사용하면 이쁘고, 기능적인 것을 쉽게 사용할 수 있슴돠ㅎㅎ 비유로 하면…

직접 만드는것 : 드라이버와 모터로 직접 전동 드라이버를 만드것. 드라이버를 그대로 사용할 수 있지만, 모터가 있다면 이 둘을 직접 결합하여 전동 드라이버를 만드는 행위. 그런데 성능 보장 못함. 고장나면 내가 고쳐야함. 하지만 만들고 고치는 과정에서 많은 공부가 됨. 시간이 많다면 좋음.
유료 UI : 보쉬. 안정적인 기능. 보증 및 AS되니 내가 이 부분 신경꺼도 됨. 생산성 굿굿

1개의 좋아요

답변 감사드립니다!!

답변은 이미 다른분들께서 해주셔서

저는 요런 류의 궁금증이 생길 때 약간 다른 방식으로 생각을 해보는 것을 추천합니다.

  1. Window태그 안에 컨트롤을 다 넣어서 만드는 방식이 옳은 것인지? (또는 효율적인지)

옳은지 옳지 않은 지 잘 모르겠다면
Window태그 안에 컨트롤을 다 넣어서 만드는 방식과 그렇지 않은 방식의 차이를 나열하고
상황별로 장단점을 찾아보면서 공부해보는 건 어떨까 싶어요.


2.UserControl, CustomControl 등과 같이 C#을 통해 프로그래밍 하는 것과 유료 UI Component로 xaml로 컨트롤을 선언하는 것의 차이가 무엇인지?

요것두 마찬가지라고 봐요.
(UserControl, CustomControl 을 C# 프로그래밍, 유료 component 를 xaml 이라고 표현하신다면 아직은 컨트롤에 대해 좀 더 공부가 필요해 보이긴하지만서두…)

뭔가 컨트롤이나 타입의 차이를 모르겠다면
애초에 왜 그러한 구분이 생겨났는지부터 공부해 보면(즉, 정의를 공부해보면)
차이를 좀 더 명확히 알 수 있겠죠?

개인적으루 공부할 시간이 좀 더 주어진다면
스스로에게 여러 가능성을 던져가면서 답을 찾아보는 게
확실히 도움이 되고 또 오래 각인되더라구요.

3개의 좋아요

좋은 조언 감사드립니다!! 프로젝트 진행하면서 틈틈이 조언대로 공부해봐야겠습니다ㅎㅎ