VB .net vs C# vs Qt
글쓴이: original81 / 작성시간: 금, 2011/04/08 - 2:21오후
현재 펌웨어 엔지니어로 일하고 있습니다. 임베디드도 하고 있고요.
지금까지 C로 펌웨어/임베디드 리눅스 밖에 해보질 않았는데 GUI 를 같이 해야 하는 회사라 뭔가 해야 할거 같습니다.
기존 코드는 VB 6.0 으로 제작되어 있고 새로 제작 하는 경우는 VB .net 으로 작성하는 경우가 많습니다.
우선 GUI 도 익숙하지 않고 BASIC 이라는 언어도 익숙하지 않고 무엇하나 익숙한 것이 없습니다.
그러면서 GUI에 C# 이라는 것을 이번에 도전해 볼까 싶어서 C# 으로 바꾸고 싶은 생각이 막연히 있습니다.
객체지향으로 프로그램 설계하는게 땜쟁이 펌웨어 엔지니어에게 어려울거 같지만
유연한 프로그램 작성이 향후 프로그램 유지/보수에 용이 하면 좋을거 같아 C# 을 고려중입니다.
Qt 는 GUI 로 KLDP 에서 검색하니 꼭 빠지지 않고 나와 적어 보았습니다.
Qt로 사용한적은 있지만 C# 보다 GUI 작성에 용이 하지 않은 느낌을 많이 받았습니다.
Hello,World 는 모두 하나씩은 짜봤는데 이것만 가지고 어느것으로 갈지 막막합니다.
일단 기존 VB 코드는 익숙해져있는 상태 입니다.
어떤게 더 효율적일지 선배님들의 고견을 듣고 싶습니다.
( 자유게시판이 더 어울릴거 같아 자유게시판에 글을 남겼습니다. )
Forums:
기본적으로
GUI위주의 프로그램이라면 vb6가 가장 쉽습니다.
텍스트처리라던가 파서등과 같이 내부 로직이 복잡해지면 어려워 집니다.
ATL을 사용할 줄 알면, ActiveX+vb6 조합이 가장 이상적입니다.
C,C++의 장점과 vb6의 장점을 모두 사용할 수 있죠.
DLL을 이용하는 것도 있지만, call back에 한계가 있습니다.
당연한 것이지만, 인베디드 환경에서는 사용할 수 없습니다.
vb.net과 c#은 이식성이 좋습니다.
그러나, 닷넷을 기본으로 하기 때문에 한국환경에서는 배포가 매우 어렵습니다.
바이러스에 감염되거나 정품이 아닌 시스템이 많기 때문에 배포 문제가 생각보다 골치아픕니다.
운이 없으면 인스톨대상의 절반가량에서 크레임이 들어 오기도 합니다.
다만, 인베디드환경(WinCE)을 목표로 한다면 이것도 나쁜 선택은 아닙니다.
Qt는 GUI가 위 언어들보다는 상대적으로 쉽지는 않습니다.
(예쁘게 보일려면 손이 많이가죠.) 다만, 텍스트 처리 능력이 강력합니다.
이식성도 좋습니다. 배포도 무난한 편입니다.
한국에서 윈도우 PC만을 대상으로 한다면, vb6+vc 조합이 가장 좋은 타겟입니다.
대상이 WinCE계열이라면 닷넷(vb.net,C#)으로 가면 좋습니다.
대상이 PC와 WinCE이지만, PC가 WinCE보다 메인타겟이라면 Qt가 낫습니다.
인스톨러 구성이 쉽기 때문이죠. 덤으로 리눅스까지 고려해야 한다면 선택의 여지가 없이 Qt입니다.
There is no spoon. Neo from the Matrix 1999.
댓글 감사합니다.
댓글 감사합니다. 시야가 넓어진거 같습니다.
저의 현 상황에서 다시 여쭤봐도 될런지요?
GUI 는 Windows 기반으로 동작하고 XP 이상에서만 동작합니다.
현재 VB6 으로 되어 있는 프로젝트를 수정하는데 어려움이 많습니다.
버튼, 텍스트 박스 같은 객체를 그리고 다시 지우는데 undo 가 안되 어려움이 컸습니다.
텍스트박스의 배열 선언은 매력적이나 undo 안되는것이 너무크고 처음 설계되어 있는 프로그램 구조를 바꿔야 할때 힘들었습니다.
실행파일 하나로만되어 있고 xp 에서 동작하게 끔 하는 GUI 는 VB6.0 밖에 답이 없을까요?
사실 실행파일 하나로만 배포가 되길 원한다면,
mfc를 이용하지 않는 vc 아니면, 델파이밖에 없습니다.
vb6는 배포시 딸려나가야 하는 dll이나 ocx가 꽤나 많습니다.
델파이는 사용해 보지 않아서 모르지만,
적어도 mfc를 이용하지 않는 vc보다는 확실히 vb6가 쉬울 겁니다.
한가지 팁을 말씀드리면,
일반 에디터에서 form파일(xxx.frm)을 열면, 앞부분에 컨트롤에 대한 선언이 정의 되어 있습니다.
어느 정도 코딩실력이 있는 사람이면, 누구나 파악할 수 있을 정도로 그다지 어렵지는 않습니다.
사실, 비주얼 베이식 폼에디터에서 그리드 모드를 사용하면 칸이 너무 넓고, 안쓰면 컨트롤을 배열하기가 어렵습니다.
대략적으로 전반적인 폼 디자인은 폼에디터에서 하더라도,
세부적인 배치는 이러한 일반 에디터를 form 파일을 열어 수정하는 편이 더 편합니다.
There is no spoon. Neo from the Matrix 1999.