많은 분 들이 실버라이트에서 WinForm을 사용할 수 없느냐는 질문을 하시는데요, '아직' 불가능하다는 얘기밖에 못했어요.
그런데 NETiKA라는 회사에서 WinForms를 그대로 모사한 Silverlight 및 Flash용 라이브러리를 내놨네요. 일명 GOA WinForms.
다운받고 간단하게 만들어 봤어요.
테스트 주소 : http://gongdo.oranc.co.kr/Silverlight/Samples/GOATest/TestPage.html

보시다시피 실버라잇 위에서 구현되었음을 확인할 수 있죠.
공식 사이트의 데모 페이지 주소는 : http://community.netikatech.com/demos/
정말 대단하죠. 이런 구현을 단 1~2MB 이내에 구현하다니요.
GOA WinForms는 일반 버전과 Professional 버전이 있는데요 버전별 기능을 보면...
GOA WinForms에서 지원하는 컴포넌트
와~~우
이건 뭐 기능만 보면 안되는게 없네~ 싶네요.
그런데 예제를 만들어보니 곧바로 걸리는 게 있더라구요.
바로 GOA WinForms의 개체들을 대상으로 애니메이션을 만들려면 Silverlight이 제공하는 Storyboard와 Timeline을 사용하여 제어할 수 없고, 전통적인 타이머 방식을 사용해야 한다는 점이에요.
왜냐면 이들 컴포넌트들은 DependencyObject에서 파생되지 않았고 각 프로퍼티들도 DependencyProperty를 구현하고 있지 않기 때문이죠.
DependencyObject와 Property는 몇몇 기능 구현에 있어서 매우 중요한 역할을 해요. 실제로 MS에서 제공한 실버라잇 UI 컴포넌트들은 모두 DependencyObject에서 파생되며 각 프로퍼티들은 DependencyProperty를 제공하고 있어요.
두 번째 문제는 역시나 유니코드 지원. 하지만 이건 실버라잇도 안되고 있으니 뭐라고 할 사항은 아닌 것 같네요.
굉장히 구현하는데 시간이 많이 걸렸을 것 같은데, 사실 이 부분... MS가 마음만 먹으면 WinForms와 거의 완벽하게 같은 환경을 구현하는건 일도 아니잖아요?
뭐, 그러길 바라구요.
하여간 대단한 라이브러리네요.
그런데 NETiKA라는 회사에서 WinForms를 그대로 모사한 Silverlight 및 Flash용 라이브러리를 내놨네요. 일명 GOA WinForms.
다운받고 간단하게 만들어 봤어요.
테스트 주소 : http://gongdo.oranc.co.kr/Silverlight/Samples/GOATest/TestPage.html
보시다시피 실버라잇 위에서 구현되었음을 확인할 수 있죠.
공식 사이트의 데모 페이지 주소는 : http://community.netikatech.com/demos/
정말 대단하죠. 이런 구현을 단 1~2MB 이내에 구현하다니요.
GOA WinForms는 일반 버전과 Professional 버전이 있는데요 버전별 기능을 보면...
GOA WinForms에서 지원하는 컴포넌트
Control, ContainerControl, ScrollableControl, PanelButton, CheckBox, RadioButton, GroupBox, Label TextBox, NumericUpDown ImageBox, ImageList ScrollBar, HScrollBar, VScrollBar Form, MessageBox, Cursor ListBox, CheckedListBox ComboBox TreeView MonthCalendar TabControl, Splitter ToolTip, ProgressBar, Timer ToolStrip, StatusStrip, MenuStrip, ToolStripButton, ToolStripComboBox, ToolStripDropDown, ToolStripLabel, ToolStripProgressBar, ToolStripSeparator, ToolStripSplitButton, ToolStripTextBox XamlCanvas (Silverlight specific)
GOA WinForms Professional에서 지원하는 컴포넌트
고급 계층형 데이터그리드 컨트롤
|
| 고급 데이터 에디터 Date 에디터, Numeric 에디터, Mask 에디터, Color 에디터 등... |
| 확장 콤보박스 |
| 확장 콤보박스 with 드랍 다운 그리드 |
| 에러 제공자 |
| 익스플로러 바 with 다중 뷰 스타일(VS2005 ToolBox, Outlook 2003 Navigation Pane, etc.) |
| 파워풀 컨트롤 스타일링 |
| 리치 툴팁 |
와~~우
이건 뭐 기능만 보면 안되는게 없네~ 싶네요.
그런데 예제를 만들어보니 곧바로 걸리는 게 있더라구요.
바로 GOA WinForms의 개체들을 대상으로 애니메이션을 만들려면 Silverlight이 제공하는 Storyboard와 Timeline을 사용하여 제어할 수 없고, 전통적인 타이머 방식을 사용해야 한다는 점이에요.
왜냐면 이들 컴포넌트들은 DependencyObject에서 파생되지 않았고 각 프로퍼티들도 DependencyProperty를 구현하고 있지 않기 때문이죠.
DependencyObject와 Property는 몇몇 기능 구현에 있어서 매우 중요한 역할을 해요. 실제로 MS에서 제공한 실버라잇 UI 컴포넌트들은 모두 DependencyObject에서 파생되며 각 프로퍼티들은 DependencyProperty를 제공하고 있어요.
두 번째 문제는 역시나 유니코드 지원. 하지만 이건 실버라잇도 안되고 있으니 뭐라고 할 사항은 아닌 것 같네요.
굉장히 구현하는데 시간이 많이 걸렸을 것 같은데, 사실 이 부분... MS가 마음만 먹으면 WinForms와 거의 완벽하게 같은 환경을 구현하는건 일도 아니잖아요?
뭐, 그러길 바라구요.
하여간 대단한 라이브러리네요.
