닷넷 기반용 윈도우를 설계하다!
JsWindow (가칭)
목적 :
필요한 프로그램은 만들어쓰자! 라는 것에서 시작된 프로젝트와 관련된 프로그램들을 만들어서 사용하다보니 이 프로그램들을 모두 띠웠을경우 여러폼이 떠있게 되는데 이때 이걸 한프로그램내에 등록시키면서 사용하면 좀더 쉽게 관리되지 않을까 하여 시작하게 되었음.
작업 :
대략 1달정도 설계하면서 코드작업을 반복했으나... 설계 기법을 정리하는 것이 쉽지 않았음.
1. dll 로드해서 프로그램을 읽어들이는 구현방법으로 기초해서 메인모듈(window)을 설계시작.
2. dll 로드시 dll 정보를 노출할 클래스 설계.
3. window에 아이콘 실행시 -> dll로딩하고 -> 실행하며 폼안에 가두고, window작업표시줄에 버튼배치후
실행된 프로그램과 연결지어두는 방법 설계 및 구현
4. 각 실행된 프로그램 클릭시 최상으로 오게끔 이벤트들을 붙여주는 방법 구상 및 구현.
5. 시작버튼 처럼 만들기 위해 각 메뉴구성과 함께 윈도우 내부적으로 가지게 될 폴더구성에 대한 구상 및
구현해서 테스트.
6. 아이콘 자리 배치 및 아이콘 이동시 자기 자리 위치기억시키기 위한 방법 구상 후 구현
7. 바탕화면에 특정 아이콘별 그룹화 하려던 중... 로직 미쓰가 나서 제대로 처리 못함.
8. 윈도우 내에서 사용될 탐색기 <-- 자체 개발할 예정이었으나 추후로 미룸.
...
작업중지함 ( 8월 20일경 시작 ~ 9월 27일 부로 )
--> 작업중 원할하지 못한 설계와 회사 일문제가 걸려서 작업을 대충하게 되므로 완전한 결과물을 만들어내지도 못했고 기본적인 것들을 만들었으나... 설계 미쓰라는 생각에 다시 설계하기로 맘먹고 지금까지의 작업을 모두 기록해놓고 덮을 생각임.
제작물
XmlHelper 음.. 이건 모듈로 쓸만한듯함.
Dll_Loader 이건 제작된 프로그램들을 로드해서 윈도우 내에 추가할때 사용하는 모듈.
IConBtn, TaskBar_Btn, FadeInForm... 등등...
설계를 다시 해서 좀더 멋지게 바꿀 예정임.
아래는 기본 윈도우 화면임.
* FadeIn효과로 폼이 서서히 나타나며, 아이콘, 폼등은 마지막 위치와 상태를 기억하며,
각 폼등은 위치변환이 되도록 만들어놨음.
--> 스샷으로 볼수 없는 기능들이 존재함. ( 몇가지 기능 구현중 재미 있었음. )
다음에 조정되어야 할 사항:
1. Icon 버튼과 Task 버튼은 각 기능에 맞춰서 따로 만들어져야 함.
2. Window와 dll간에 데이타 전달과정에 대해 조금 미쓰난부분을 수정하면 됨 tip : Interface를 적용.
3. Control에 Location을 뽑아 내는 것을 좀더 공부할 필요가 있을듯 함.
-> 컨트롤.컨트롤.컨트롤.컨트롤.Location 을 뽑아내서 form으로 이 컨트롤위를 덮어씌우거나
또는 컨트롤로 뒤집어 씌워야 하는 경우를 생각했을대 순조롭게 계산되지 않았음.