2008.03.28 12:11

UX세미나가 지난 주 토요일을 마지막으로 잘 끝났습니다.  그 동안 참여해주시고 발표해 주신 여러 강사님들과 닷넷채널 운영자에게 이자리를 빌어서 감사의 말씀을 드립니다.


Day 1
WPF의 전반적인 내용과 개발자와 디자이너의 협업 모델에 대해서 설명하고 있습니다.
http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032362446&EventCategory=3&culture=ko-KR&CountryCode=KR

Day 2
WPF의 Animation 기법에 대해서 설명합니다.
http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032365257&EventCategory=3&culture=ko-KR&CountryCode=KR

WPF에서 사용할 동영상을 엔코딩 할 수 있는 Expression Media Encoder를 설명합니다.
http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032365258&EventCategory=3&culture=ko-KR&CountryCode=KR

XAML에 대해서 심도 있게 설명을 합니다.
http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032365259&EventCategory=3&culture=ko-KR&CountryCode=KR

Day 3
Data Binding을 설명해 드립니다.

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032373347&EventCategory=3&culture=ko-KR&CountryCode=KR

Win32 기반의 소프트웨어와 WPF가 공존 할 수 있는 방법을 설명합니다.
http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032373349&EventCategory=3&culture=ko-KR&CountryCode=KR

Day 4
WPF에서 Resource와 Style을 사용하는 방법, Zoom In/out 및 Move기능을 제공하는 방법을 설명합니다. 그리고 마이크로소프트웨어 정희용 편집장의 RIA에 관한 재미있는 내용과 XAML Reader와 Flash를 활용하는 방법에 대해서 설명합니다.

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032374512&EventCategory=3&culture=ko-KR&CountryCode=KR


-------------------------------------------------------
김영욱 Microsoft MVP 2006~2008
-------------------------------------------------------
Email: iwinkey@hotmail.com
Blog: winkey.tistory.com
Phone: 010-2817-0063
닷넷채널: www.winkey.pe.kr
-------------------------------------------------------

신고
2008.03.26 14:20

XAML이 아무리 좋다고 한들 이제까지 많이 사용되고 있던 Graphic tool과 호환성에
문제가 있다고 하면 아무래도 발전속도나 확산속도에는 한계가 있을 수 밖에 없습니다.
하지만 XAML이 공개되어 있지 않거나 복잡한 포멧이 아니기 때문에 개발사의 의지만
있으면 XAML로 변환하는 일종의 Converter를 만드는게 꼭 어려운 일은 아닐 것 같습니다.

- Adobe IIlustrator

사용자 삽입 이미지

http://mikeswanson.com/XAMLExport  에서 다운로드 할 수 있으며 IIustrator 파일인 *.ai 파일을 XAML로 컨버팅 해줄 수 있는 기능을 가지고 있다. 의외로 디자인적인 소스를 컨버팅해 보면 별 무리없이 컨버팅 잘해오는 것을 볼 수 있는데 한 가지 문제가 있다고 하면 모든 도형들을 0.0에서 부터서 자기 위치까지를 가지는 캠퍼스 객체로 리턴해버리는 문제가 있다.

즉 가져온 소스를 기반으로 어떤 작업을 하려고 하면 일일히 또 다시 캠퍼스 사이즈를 다시 조정해야 할 경우도 생길 수 있다. 역시 제일 좋은 방법은 Expression Design에서 작업하는 것이겠지만. 그것이 여의치 않은 경우에만 사용하는 것이 좋겠다.

-Adobe Flash
사용자 삽입 이미지

http://www.mikeswanson.com/swf2xaml/ 에서 다운로드 할 수 있으며 Flash 혹은 Flex의 결과물인 *.swf를 XAML로 컨버팅 할 수 있는 툴이다. 하지만 직접 컨버팅 해본 결과 컨버팅 결과는 30% 정도의 완성도라고 할까.. 그렇다. 더욱이 Action Script 부분은 컨버팅 되지 않는 듯하다.
 물론 제가 이렇게 예기를 해도 또 컨버팅 테스팅을 해보시는 분들이 계실 것이고 컨버팅한 결과를 보자마자 "오 그래도 좀 컨버팅 되는데"라고 기뻐할 수도 있을 것 같지만 조금만 다시 들여다 보면 거의 제대로 컨버팅 되지 않는 다는 결론을 내릴 수 있을 것이다.
 사실 컨버팅이라는 것은 100%가 아닌 99%는 0%로 같은 의미로 받아들여야 할 경우도 많다.

-3D MAX
사용자 삽입 이미지
사용자 삽입 이미지

ZAM3D(http://www.erain.com/products/zam3d/DefaultPDC.asp)의 경우는 3D MAX에서 작업된 결과물인 *.3DS 파일을 XAML로 변환하는 툴인데 생각보다 상당히 완성도가 높은데다가 MAX의 가장 최신버전까지 잘 컨버팅 되는 것으로 알려져 있습니다. 특히 간단한 3D 디자인은 직접할 수 있어서 더욱더 유용한데 가격도 그리 비싸지 않게 책정되어 있어서 개인적으로는 필수적인 툴로 추천하고 있습니다.

이외에도 XAML Exporter for Blender(http://www.codeplex.com/xamlexporter)
Adobe Fireworks to XAML Exporter(http://www.infragistics.com/design/Fireworks_XAML_Exporter.aspx)
Lightwave to XAML Converter(http://www.shaxam.com/)
SVG to XAML Converter(http://www.wpf-graphics.com/ViewerSvg.aspx)
Aurora(http://www.mobiform.com/eng/aurora.html) : XAML Designer
Maya to XAML(http://www.highend3d.com/maya/downloads/tools/3d_converters/3782.html)
Online Converter from 3ds to XAML(http://www.wpf-graphics.com/Converter.aspx)
XamlXporter for Illustrator(http://www.codeplex.com/Wiki/View.aspx?ProjectName=xamlxporter)
PSD to XAML(http://flowlabs.net/psd2xaml.aspx)

등등이 있는데 테스트 되는데로 결과를 올려 놓도록 하겠습니다.

-------------------------------------------------------
김영욱 Microsoft MVP 2006~2008
-------------------------------------------------------
Email: iwinkey@hotmail.com
Blog: winkey.tistory.com
Phone: 010-2817-0063
닷넷채널: www.winkey.pe.kr
-------------------------------------------------------

신고
2008.02.14 10:23

WPF에서 작업하다 보면 WPF에서 제공하지 못하는 기능들을 다른 방법으로 구현하게 됩니다.
저도 지금 수행하고 있는 프로젝트에서 간단한 음성 녹음기를 만들게 되었습니다.
몇 가지 개발 방향을 검토하다가 결과적으로 선택한 방법이 Direct X를 이용하는 방법입니다.

C#에서도 Direct X를 잘 지원하기 때문에 여러가지 장점이 생기기도 하고
성능상의 이슈나 개발상의 이점을 가져 갈 수 있을 것 같습니다.

지금 제 PC에서 설치된 OS는 Window Vista 얼티메이트 버전인데
확인해 보니 Direct X 10 버전이 설치되어 있습니다.

지금 배포 대상  PC의 OS는 Windows XP 타블랫 PC 버전입니다.
따라서 Direct X 9이 설치되어 있을 것 같습니다.

결과적으로 Direct X의 설치 여부를 확인 할 수 있는 명령이 있습니다.

dxdiag를 입력해 보시면 Direct X 설치 현황을 보실 수 있습니다.
만약 dxdiag를 입력했을 때 아무 반응이 없으면 Direct X 5.0 이하의 버전이 있거나
혹은 설치되지 않았다고 보시면 됩니다.

녹음기 기능이 어느정도 정리되면 다시 포스팅하겠습니다. ^^

사용자 삽입 이미지

-------------------------------------------------------
김영욱 Microsoft MVP 2006~2007
-------------------------------------------------------
Email: iwinkey@hotmail.com
Blog: winkey.tistory.com
Phone: 010-2817-0063
닷넷채널: www.winkey.pe.kr
-------------------------------------------------------
신고
Direct X, WPF
2008.02.09 13:31

듀얼 모니터에서 WPF의 창을 배치하기 위해서는 약간의 꼼수가 필요하다.

기존의 닷넷 프로그래밍에서는
System.Windows.Forms.SystemInformation.MonitorCount를 이용해서
현재 시스템에 장착된 모니터의 갯수를 알 수 있었다.
또 해당되는 모니터의 상세한 정보를 얻고자 할 경우에는
System.Window.Forms.Screen.AllScreens[index].WorkingArea;와 같이 해당되는 모니터의
정보를 알아낼 수 있었다.

하지만 WPF에서는 기본적으로 모니터와 관련된 속성이나 기능을 추가로
제공되지 않는 것 같다.
실제로 몇몇 경우에는 듀얼 모니터를 활용하는 경우가 많고 또 개발시에도
듀얼 모니터를 이용하는 경우가 많기 때문에 WPF Application의 출력 모니터 지정은
꼭 필요한 기능중에 하나이다.

따라서 약간의 꼼수를 이용해서 이와 같은 상황을 해결할 수 있다.

fullScreenWindow.WindowStartupLocation = WindowStartupLocation.Manual;
System.Drawing.Rectangle workingArea = System.Windows.Forms.Screen.AllScreens[1].WorkingArea;
fullScreenWindow.Left = workingArea.Left;
fullScreenWindow.Top = workingArea.Top;
fullScreenWindow.Width = workingArea.Width;
fullScreenWindow.Height = workingArea.Height;
fullScreenWindow.WindowState = WindowState.Maximized;
fullScreenWindow.WindowStyle = WindowStyle.None;
fullScreenWindow.Topmost = true;
fullScreenWindow.Show();

WindowStartupLocation을 메뉴얼로 지정해야 위치를 지정하기 용의하며 위의 소스의 핵심은
System.Drawing.Rectangle workingArea = System.Windows.Forms.Screen.AllScreens[1].WorkingArea; 이다.
AllScreens[1]이라고 했기 때문에 이는 Primary Monitor가 아닌 Second Monitor의 정보를 가져와서 임시라 Ractangle을 하나 생성하고 이 정보를 바탕으로 출력하려고 하는 WPF Window를 셋팅하는 것이다.
원리는 간단한데 이 같은 생각을 해내기 까지가 힘든 과정이다. ^^

-------------------------------------------------------
김영욱 Microsoft MVP 2006~2007
-------------------------------------------------------
Email: iwinkey@hotmail.com
Blog: winkey.tistory.com
Phone: 010-2817-0063
닷넷채널: www.winkey.pe.kr
-------------------------------------------------------

신고
WPF
2008.01.27 05:38

WPF로 미디어관련 플레이어를 만들때 참조할 수 있는 링크 입니다.

상세하게 설명되어 있고 MediaElement를 사용하는 예제가
자세하게 소개 되어 있습니다.

http://technet.microsoft.com/en-us/library/bb546936.aspx

신고
2008.01.26 22:14

WPF 의 커스터 마이징

WPF 2008.01.26 22:14
WPF를 커스터 마이징 하는 여러 방법들이 있는데
가장 쉬운 방법은 스타일을 재 정의해서 새로운 컨트롤인것 처럼 만드는 것입니다.


사용자 삽입 이미지

 MSDN에 좋은 글이 있어서 링크를 남겨 놓습니다.
http://msdn.microsoft.com/msdnmag/issues/07/01/Foundations/default.aspx?loc=ko

또 다른 글은 Eric Malamisura가 쓴  WPF ListView Cutomization이라는 글입니다.
http://www.elucidweb.com/blog/CommentView,guid,9fc45d4d-8104-458a-92fd-42a6a5d3c662.aspx
신고
2008.01.20 21:40

WPF best of best 동영상

WPF 2008.01.20 21:40

WPF로 작성된 최고의 결과물들을 한 눈에 볼 수 있는 동영상입니다.
여러분들 작업에 많은 참고가 될 것 같습니다.

신고
WPF
2008.01.01 23:55
사용자 삽입 이미지





































한동안 계속 베타로 잘 사용해왔던 ZAM3D가 정식버전으로 출시되었습니다.
ZAM3D는 3D와 관련한 XAML코드를 생성해주는 툴인데 비슷한 시기에 나온 툴들을 모두 누르고
실질적인 최후의 승자가 될 것으로 생각됩니다.

플래쉬에서 3D인것 처럼 보여주는 툴인 Swift 3D라는 툴을 이미 개발했던 업체라서 그런지
안정성과 완성도, 그리고 편의성 모두 합격점을 받을 만한 프로그램입니다.

내일 부터는 또 노트북 하나 메고 프로젝트 하러 갑니다.
하지만 마음은 기대감과 중압감이 상호 교차되는 상태 입니다.
작년 7월 부터 계속 컨설팅과 교육, 그리고 기술지원으로 계속해서 발을 담그고 있었던
WPF 프로젝트여서 그런지 더더욱 잘해야 겠다는 조바심이 납니다. ^^

뭐 잘되겠지요 모든 것은 마음먹기 나름이니까요 ^^
신고
Project, WPF
2007.09.12 07:55

어제 한국 Microsoft에서 강성재과장님과 이대우 과장님이 진행했던 MSDN세미나는
초 만원이었습니다. 주가 Visual Studio 2008과 Silverlight 여서 그런지 모르겠지만
MSDN 평일 행사로서는 의외의 경우라고 할만큼 사람들이 꽉 들어찼습니다.

하지만 맨 끝에 질문이 올라오는 것을 보면 Silverlight에 관한 관심이 단연 압도하는
느낌이었습니다.

사용자 삽입 이미지
<그림1> Silverlight

'Silverlight'라는 기술이 왜 주목 받을까요?
Silverlight는 아직 완성된 기술도 아니고 해보신 분들은 알겠지만 여러가지 제약이 많은 제품입니다.
솔직한 말로 지금 올 인하기에는 너무 위험 부담이 큰 기술인것도 금방 알게 됩니다.
하지만 많은 분들이 예기 하듯이 Microsoft의 비전과 그것을 실현해 나가는 무서운 저력을 알고
있고 또 정식 제품이 나오면 훨씬 시장 파괴력은 클 것이라는 예상을 하고 있습니다.
실제로도 지금 국내의 이름만 들어도 알만한 업체에서 Silverlight를 도입하기 위해서
파일럿이나 혹인 실제 프로토 타입을 상당히 진척시켰다는 예기도 들리고 있습니다.

Silverlight는 Web을 위한 제품입니다.
사용자 삽입 이미지

<그림2> RIA시장 Adobe의 마켓쉐어

사실 Web 시장에서 그것도 RIA(Rich Internet Application)시장에서 Adobe사의 Flash와 Flex의 시장 점유율과 대상 시장은 대단히 큰 것이어서 Windows와 .NET Framework 3.0이라는 기본 요구사항을 가지고 있는 WPF의 경우에는 많은 제약 사항을 가지고 있는 것처럼 보입니다.
 혹자는 Flash에 WPF가 완전히 밀리는게 아닌가 하는 생각을 갖고 있는 사람들 조차 있지만 Flash는 Web을 위한 그것도 디자인 기술을 태생적 기반으로 하고 있는 기술입니다. 제대로 된 무엇인가를 만들기에는 많은 제약을 지닐 수 밖에 없고 개발 언어인 Action Script 역시 아직은 전문적인 개발언어에 비해서는 기능이  부족한 것도 사실입니다. 하지만 다소 부족하다 하는게 오히려 간단하고 학습이 용이 하다는 장점으로 이제껏 많이 어필해왔던 것도 아이러니한 사실입니다.

아무튼 RIA시장이 급격히 성장하면서 점점더 복잡하고 다양한 기능들이 요구되면서 다소 복잡하더라도 체계적이고 대형 프로젝트에 적합한 기술적 요구가 부각되었지만 이 요구를 나름 수용할 수 있는 것은 Adobe사의 제품외에는 대안이 없었습니다.
 Adobe사의 제품이 100%는 아니더라도 70%정도는 아쉬운 곳을 잘 채워주었기 때문에 한 동안은 Adobe사의 독주라고 할 수 있었습니다. 하지만 Silverlight가 나타나면서 시장의 판도가 흔들리고 있습니다.
사용자 삽입 이미지

 <그림3> Silverlight의 대상 시장

Microsoft가 사실 기대하고 있는 시장은 훨씬 더 큰 것이겠지만 일단 나타나고 있는 상황만을 본다면 기존의 Adobe사의 Flash나 Flex가 가지고 있는 시장이 우선 잠식 될 것으로 보입니다. 그것도 Silverlight 1.1이 정식으로 발표되면 상당한 속도로 이러한 현상은 진행 될 것으로 예상됩니다.
 Flash 기술을 사용하시는 분들에게는 많은 반발이 예상되지만 제가 보는 입장은 큰 시장은 역시 Silverlight대부분 차지하고 복잡하지 않고 디자인적인 성격이 강한 부분들은 한동안 더 Flash기반의 기술이 사용 될 것으로 보입니다.

이런 시장의 움직임이 아주 재미있게 돌아가고 있고 글도 쓰고 세미나를 하는 입장에서는 참 재미있게 요리할 내용들도 많아지는 부분에서 정말 환영할 만한 변화들입니다. 하지만 이런 와중에서 정신없이 달리다가(혹은 끌려다니다가....) 한번 문득 멈쳐서서 고민해봐야 할 문제가 있습니다.

그것은 바로 그럼 WPF는 무엇인가 하는 역할에 대한 고민입니다. Silverlight에 대한 관심이 워낙에 드높다 보니 오히려 WPF는 뒤로 밀려나 있는 느낌입니다. Silverlight가 시장에 대한 도전이 워낙 크긴 하겠지만 개발자의 입장에서는 아직 50% 정도 밖에 완성되지 않은 기술입니다. Web상에서 미디어와 관련한 기능들을 만들기에는 어느정도 쓸모 있을지 모르지만 아직 전사적인 프로젝트나 혹은 다양한 인터페이스를 시도해 보기에는 아직 모든게 여실히 부족한 기술입니다. 하지만 여기저기서 Silverlight로 뭘한다는 예기가 들리고 있어서 개인적으로는 정말 다들 용도에 맞게 사용하고 있을까? 혹은 단순히 유행을 타고 있는 것은 아닐까 하는 우려를 감출 수 없습니다.

또 다른 관점에서 본다면 Silverlight는 플랫폼 독립적입니다. 독립적이라는 것은 큰 장점이긴 하지만 다른 면에서 본다면 단점이 될 수도 있습니다. 뒤집어서 말한다면 플렛폼이 주는 지원을 전혀 받을 수 없다는 점이 될 수도 있습니다. Silverlight의 한글 지원 문제라던지 다소 복잡한 작업을 하면 역시나 떨어지는 성능 문제 등등(물론 그래도 Flash보다는 더 빠릅니다. ^^)은 역시 WPF기반으로 풀어야 할 과제들입니다.

결론을 예기하지만 유행보다는 냉정하게 생각해 볼 필요가 있는 시점입니다.
다양한 효과와 퀄리티 높은 결과물을 만들고 또 플렛폼의 지원을 받을 수 프로그램을 만들기 위해서는 주저없이 WPF를 선택하시는게 좋습니다. 아직 완성되지 않은 Silverlight에게 제대로 된 퀄리티의 프로젝트를 만들 수 없다고 투덜거리는 것은 100일된 어린아이에게 걷고 말하기를 기대하는 것과 같은 것입니다. ^^

내년에 Silverlight 1.1이 정식으로 나오더라도 WPF를 먼저 생각해보고 부득이할 경우 Silverlight를 생각해보는 방향이 적절하지 않을까요? ^^
신고