[TIL] C# Windows Presentation Foundation : October 7, 2020

RE_BROTHER·2020년 10월 6일
0

TIL

목록 보기
25/41
post-thumbnail

Windows Presentation Foundation

C# WPF

Microsoft에서 Java이겨보겠다고 부랴부랴 만들어낸 C#으로 Windows GUI 프로그램 개발을 진행하게 되었다.
Python에서 pip으로 제공되어 설치해서 사용했던 selenium 패키지가 C#에서도 Nuget Package Manager를 통해 설치하여 사용이 가능하고, 이를 통하여 특수 업무 자동화 프로젝트 개발을 진행한다.

이전에도 Windows C++ MFC 개발을 진행한 경험은 있으나, MFC 개발과 WPF 개발을 경험한 입장에서 몇가지 차이점을 끄적여볼까 한다.

C++ MFC vs C# WPF

공통점

크게 언어가 다른 점과 사소한 몇가지를 제외하면 비슷한 느낌이 많이 든다. 개발하는 툴도 마찬가지로 Microsoft사의 Visual Studio를 사용하고, MFC에 있었던 레이아웃(Toolbox)이 WPF에도 그대로 전승되어 사용된다는 느낌이 많았고, 해당 Tool들의 Rule이 매우 흡사하다.

차이점

  1. 생각
    나는 평생 C#이라는 언어를 쓸 것이라는 생각을 해본 경험조차 없다.
    상당한 거부감이 있었고 도대체 XAML은 뭔지도 모르겠고, 그냥 C++로 MFC 개발 진행할 때도 자료가 매우 없다는 점을 느꼈는데 도대체 써본적도 없는 C#으로 어떻게 개발을 진행해야할지 갈피 조차도 잡히지 않았다.
    하지만 생각과는 다르게 2년 6개월전 MFC를 처음 개발했던 나와 지금 현재의 나 사이에 차이점을 느낄 수 있었다.
  2. 패키지
    C++ MFC 개발 진행시에는 다른 사람이 구현해놓은 패키지 적용을 위해선 해당 패키지의 *.cpp 파일과 *.h 파일을 끌어와서 프로젝트에 적용하고 해당 패키지를 사용할 파일에서 하나 하나씩 선언 후에 사용이 가능했다.
    C# WPF에서는 Nuget Package Manager를 통해 패키지를 바로 검색하고, 프로젝트에 import하여 기타 다른 작업 없이 사용할 수 있다. 개인적으로 Pythonpip보다 편하다고 생각된다.
  3. XAML(eXtensible Application Markup Language)
    C++ MFC에서 Toolbox에 있는 각종 레이아웃들을 끄집어내어 다이얼로그에 배치했다면, WPF에서는 HTML과 유사한 Markup Language를 통해 레이아웃 생성이 가능하다. script를 통한 event 발생과 레이아웃 setting이 가능하며, 초반에 익숙해지기 어려울 뿐이지 익숙해진다면 충분히 매력있는 요소 중 하나라고 생각한다.

to be

아마 한동안은 회사 업무로 인해 Python, Javascript보다 C#을 쓰는 일이 더 잦아질 것 같다. 또한 Flutter 개발을 위해 Dart도 쓰게 될 것 같은데...
빠르게 마무리하고, 대학원 진학 준비도 하고... 마지막 학기도 잘 마무리해야겠다.

profile
I hope the All-Rounder Developer & Researcher

0개의 댓글