Microsoft MVP성태의 닷넷 이야기
Windows Form Application는 사라질까요? [링크 복사], [링크+제목 복사]
조회: 12765
글쓴 사람
초급개발자
홈페이지
첨부 파일
 

안녕하세요?
현재 까지 C#으로 주로 Windows Form개발만 했는데
점점 신기술에 뒤쳐지는 기분이네요..
MS가 UWP만 밀건지.....
그래도 복잡한 전문가용 프로그램은 윈폼으로 개발 되지 않을까요?
UWP보단 윈폼에서 표현할 수 있는게 많을거 같은데...
성태님은 어떻게 예상하고 계신지 궁금해서 글 올려 봤습니다...
앞으로의 트랜드에 대해서 조언 부탁 드립니다...^^...
감사합니다....








[최초 등록일: ]
[최종 수정일: 6/7/2016]


비밀번호

댓글 작성자
 



2016-06-07 03시25분
UWP는 그 환경이 너무 독특하기 때문에 윈폼의 경쟁 상대는 아닙니다. 오히려 WPF 응용 프로그램이 윈폼의 대체제라고 보시면 됩니다. 말씀하신 복잡성이라면, 그 복잡한 비주얼 스튜디오 IDE 자체도 WPF로 만들어졌다는 것을 감안하면 윈폼이 딱히 그 부분에 경쟁력이 있어 보이진 않습니다.

이런 면에서 봤을 때 WPF를 공부하지 않아야 할 이유는 없습니다. (UWP도 덤으로 따라오는 것을 감안하면 배워둘 가치가 충분히 있습니다.)

그렇지만 윈폼은 그 기반이 되는 Win32 구조가 살아있는 한 절대 사라지지 않을 것입니다. 또한 명백히 ".NET Full Framework"라는 배포본이 존재할 것이므로 윈폼이 거기서 제외될 가능성은 거의 없을 거라 봅니다. (설령 제외시킨다 해도 어셈블리 자체가 원래도 독립적이었기 때문에 별도 배포로도 얼마든지 살아 있을 수 있습니다.)

윈폼이 사라질 걱정은 안하셔도 되지만, 어쨌든 신기술에 뒤쳐지는 기분을 느끼는 것은 그다지 좋은 신호는 아니라고 보입니다. ^^
정성태
2016-06-08 08시05분
[spowner] 윈도 어플리케이션을 Windows Forms으로 만드는 저로서는, MS가 Windows Forms에 대한 기능 개선을 하지 않는 것에 대한 약간의 아쉬움은 있습니다.
익숙한 것이 좋다고, Windows Forms에 너무 많이 익숙하거든요. 회사 입장에서는 생산성도 굉장히 중요하므로... 그렇습니다.
어쨌든, Windows Forms의 기반 컨트롤들은 여러 상황에서 상당히 비효율적으로 동작하긴 합니다. 대표적인게 DataGrid 컨트롤 입니다.
GridLayout같은 경우, 있는 그대로 쓰려면 정말정말 느리게 동작을 하고요, 여러가지 커스터마이징 하는 기법이 있긴 한데, 가령, 배경 이미지가 들어갔다 치면...
이래저래 많이 느려집니다. 결국에는 저희고 WPF를 공부해서 사용해봐야 하는 입장이고요, WPF의 기본 성능이 얼마나 Windows Forms보다 뛰어나느냐는 확인해봐야 겠지만...
아래 성태님이 말씀하신 것 처럼 Visual Studio IDE가 WPF로 만들어졌기 때문에, 나름의 최적화는 꾸준히 이루어지지 않을까 하는 기대감이 있습니다. ㅎㅎ
UWP도 같이 공부해보시는건 당연히 좋구요. 하지만, UWP의 영역은 아래 성태님이 말씀하신 것 처럼 좀 영역이 다릅니다. UWP로 윈도 어플리케이션을 개발할 수 있지만,
아직까지는 많이 제한적인것 같더라고요... 가령, App의 배경화면을 투명으로 하고 싶은데, UWP로는 불가능 한것으로 알고 있습니다.

[guest]

1  2  3  4  5  6  7  8  9  [10]  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5699갓경섭7/29/20224438C# 프로그램 느려짐 현상 [2]
5698kss7/29/20225203ValueTask 질문입니다. [5]
5697스팸7/28/20225188윈도우서버 Port 고갈문제 (Event ID 4227, 4231) [3]파일 다운로드1
5696유석7/27/20225472닷넷 4.X 와 닷넷 6.0 버전 차이 [6]
5695초보코더7/26/20224835[WCF] EndpointNotFoundException 기본 연결이 닫혔습니다. 원격 서버에 연결할 수 없습니다. [1]
5693차가워7/22/20224308socket 종료 시 reveive수신부에서 에러 나는거 처리 문의 [5]
5692도비7/21/20223918Ubuntu LVM 확장 관련 [1]파일 다운로드1
5691따봉이7/21/20224612Task 비동기 UI 크로스 쓰레딩 Err 관련 [1]
5690훈이7/20/20223852wpf질문입니다 [2]
5689질문7/20/20223645비동기 함수를 사용하는 방법에 대한 질문입니다 [1]
5688김정현7/11/20223735소스 디버깅(F5)시 프로그램 켜지지 않고 디버깅 가능한 상태 [1]
5687규철7/6/20223853개발업무 문서 관리 방법 문의 [3]
5686권용완7/5/20223821Linq Entites 에서 string[]에 담긴 데이터를 제외하는 방법 문의 [3]
5685차가워7/4/20223991메모리 선택 문의 [1]
5683김민혁7/1/20224542HttpWebRequest POST 전송 관련해서 질문 드립니다. [4]파일 다운로드1
5682김기헌6/20/20223985안녕하세요 서로 다른 스레드에서 동일 인스턴스의 메소드를 호출할때 질문드립니다 [2]
5681미래는투...6/19/20223870VC++ 빌드 관련 문의 (h파일이 바뀌었는데 컴파일을 꼭 하지 않아도 되나요?) [1]
5680Syong6/12/20224873EXE파일에 속성값 추가하는 방법이 있나요? [2]파일 다운로드1
5679차가워6/8/20224006tcpip socket 여러 랜카드 사용 시 연결 문의 [1]
5678차가워6/7/20223917원자적 실행 문의 [3]
5677장성욱6/7/20223940블루투스 포트와 시리얼포트 연결시 에러 [2]
5675차가워5/29/20224623윈도우설정 프로세스사용계획 옵션과 c# 스레드 [1]
5674민우5/29/20224494C++ 의 RTTI, Reflection 으로 객체 멤버변수, 멤버함수 목록 추출 문의 [2]
5673조은현5/25/20225428안녕하세요 선생님! c#에서 TCP/IP의 keep alive 기능의 사용법에 대해서 질문드리고 싶어요! [2]파일 다운로드2
5672game...5/23/20225324안녕하세요 GC를 일시적으로 중단시키는 방법이 있을까요? [5]
5671한예지 donator5/20/20224927델리게이트와 함수포인터 선언 시, 차이점 질문 있습니다. [3]
1  2  3  4  5  6  7  8  9  [10]  11  12  13  14  15  ...