396 Results for '전체'

  1. 2009/07/02 실버라이트 하기 좋은 날 #1 (2)
  2. 2009/06/22 실버라이트 무인설치
  3. 2009/06/11 Behaviors make me depressed.
  4. 2009/06/09 DataBinding with Behaviors in SL3
  5. 2009/05/22 VS2008, VS10, Silverlight 2, 3 함께 살기
  6. 2009/05/21 소니! VAIO 시리즈에 Intel-VT를 허하라!
  7. 2009/05/21 My Visual Studio 2010 machine (2)
  8. 2009/05/21 내가 굳이 Intel-VT를 통해 Windows 7의 XP Mode를 쓰고 싶은 이유 (6)
  9. 2009/05/17 DTFE2009 훈스닷넷 1세션 실버라이트 3 발표 자료 (3)
  10. 2009/05/14 마이크로소프트가 감시하고 있는 나의 모에... (4)
  11. 2009/05/13 DTFE2009 훈스닷넷 UX 세미나 - 실버라이트 3 가지고 놀기 예고편
  12. 2009/05/11 How about if DependencyObject could be a DataBinding target?
  13. 2009/05/09 Behaviors in Silverlight 2
  14. 2009/05/05 제1회 DevDcc 실버라이트3 발표자료 (3)
  15. 2009/05/04 Windows 7과 Virtualization 기술, 아직 갈 길이 멀지도... (6)
  16. 2009/05/04 Windows 7 RC 한국어 버전 좋네요 >_< (11)
  17. 2009/05/01 쒧!! SONY VAIO 저주나 받아라. (2)
  18. 2009/05/01 두근두근x7 [Updated] (8)
  19. 2009/04/27 I am a Developer and... (11)
  20. 2009/04/24 왕(King)과 황제(Emperor)의 다른 점. (4)
  21. 2009/04/19 DevDcc 1회 행사에 와주신 분들께 감사드려요. (5)
  22. 2009/04/07 데이터 바인딩#2 데이터 바인딩의 원리와 사용법 (1)
  23. 2009/04/05 스타크래프트 프로리그를 즐기는 방법 (5)
  24. 2009/04/05 Behavior를 실버라이트 2에서 사용하기 (3)
  25. 2009/04/04 블렌드의 희한한 이름 제한
  26. 2009/03/30 [MIX09] RIA를 확실히 실패하게 만드는 10가지 방법 (1)
  27. 2009/03/27 실버라이트 3의 새 기능 정리 (2)
  28. 2009/03/27 데이터 바인딩#1 맛보기
  29. 2009/03/26 실버라이트 3에 대한 생각 (2)
  30. 2009/03/19 MIX09 특별 MSDN 타이틀

제가 또 일 끝까지 안하고 새로 일 벌리는 걸 좋아하죠. (…후우…)

MSDN POPCON에 ‘공도의 실버라이트 하기 좋은 날’이란 동영상 시리즈를 연재하기로 했어요. 매주 목요일날 업데이트 예정이고요, 내용은 그야말로 자유. 피드백 많이 주세요 :D

그 대망의 시리즈 제 1편: http://blogs.msdn.com/popcon/archive/2009/07/02/s-1.aspx

소개가 참 간드러지게 나왔는데요, 제가 원래 그 모양이니 모…ㅎㅎ

아래는 기각당한 초안이에요. 사실 이쪽이 더 마음에 들어서 남겨놉니다.^^

한 몇 개월 전부터 실버라이튼지 뭔지 하는 게 자꾸 사람들이 얘기는 하는데,
그까이꺼 대애애~충 훑어보니 뭐 별 어려워 보이는 것도 없고 해서 한 번 해 보는데,
팀장님이 '너 뭐하냐?' 물어보니 나름 깝쭉대 보지만?
아뿔사! 이건 뭐 내가 뭘 하는 지 설명을 못하겠네...
하는 당신을 위한 초고농도압축액기스추출 동영상!
액기스만 모았습니다. 짧습니다. 효과 (아마도)확실합니다!
(※부작용 발생 시 가까운 개발자나 디자이너에게 하소연하시기 바랍니다.)

P.S. 
손발은 오글오글.

저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

  1. BlogIcon othniel 2009/07/02 14:50  comment URL  Edit/Remove  Submit comment.

    제목이 너무 좋네요 실버라이트 하기 좋은날 (오늘 천둥번개 동반) ~ ㅎ
    공도님 대단하세요 ^^

    • BlogIcon Gongdo 2009/07/02 16:53  comment URL  Modify/Remove

      사실은 제목 줄임말이 별로 좋지 않아서 고민하다가 딱히 떠오르는게 없어서 이걸로 했어요.
      부드러운 줄임말이 대센데 말이죠.
      공실날? 공실좋? 실하날? 어떡게 줄여도 마음에 안드네요. 좋은 아이디어 있으면 주세요^^

흔히 마이크로소프트에서 배포하는 설치파일은 무인설치(Unattended installation) 라고 해서 설치 화면을 보여주지 않고 설치할 수 있는 옵션을 제공하죠.

실버라이트 설치 파일도 마찬가지에요. 방법은 아주 심플. 커맨드 프롬프트에서 실버라이트 설치 파일이 있는 디렉터리로 이동한 후 다음 커맨드를 입력하면 돼요.

  • 설치
    Silverlight.3.0.exe -q
  • 제거
    Silverlight.3.0.exe –qu

참 쉽죠? :p

참고로 당연하겠지만 윈도 비스타 이상에서는 삭제나 설치할 때 UAC가 뜨게 되죠.

어디다 쓰냐고요? 물론 웹으로만 배포할 경우에는 별로 쓸모 없겠지만 엔터프라이즈 솔루션의 경우 실버라이트 애플리케이션이 솔루션의 일부로 포함될 수도 있겠죠. 이럴 때 한꺼번에 배포한다면 편리할 거에요.

저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

I posted how to use DataBinding with Behaviors in Silverlight 3 recently. However, it turns out, it's impossible or very limitted.

Follow code is what I expected to work.

<Grid x:Name="LayoutRoot" Background="White">
    <Button Content="Test" HorizontalAlignment="Right">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="Click">
                <hi:ShowMessageBoxAction x:Name="Action1"/>
            </i:EventTrigger>
        </i:Interaction.Triggers

        <i:Interaction.Behaviors>
            <hi:BindingProxyBehavior
                        TargetName="Action1"
                        TargetPropertyName="Message"
                        Binding="{Binding Path=MockString}" />
        </i:Interaction.Behaviors>
    </Button>
</Grid>

[It doesn't work, 'cause Behaviors are not FrameworkElements]

- ShowMessageBoxAction which named "Action1" by x:Name attribute has a property named Message.
- BindingProxyBehavior is a Behavior. And it figures out "Action1" by AssociatedObject(LayoutRoot).FindName method when it has been invoked.

But It's impossible, 'cause Behaviors are not Frameworks so they can't be found by FrameworkElement.FindName method.

It's OK, I can understand why is it impossible. However how do you think about code follow:

<DataTemplate x:Key="DataTemplate1">
    <Grid>
        <Button HorizontalAlignment="Left" Content="{Binding Mode=OneWay, Path=Title}">
            <i:Interaction.Triggers>
                <i:EventTrigger x:Name="Trriger1" EventName="Click">
                    <hi:ShowMessageBoxAction x:Name="ShowMessageAction"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>           

            <i:Interaction.Behaviors>
                <hi:BindingProxyBehavior
                    TargetName="ShowMessageAction"
                    TargetPropertyName="Message"
                    Binding="{Binding Path=Description}" />
            </i:Interaction.Behaviors>
        </Button>
    </Grid>
</DataTemplate>

[Does it work or not?]

It's similar to first one, except root Grid is in the DataTemplate.
Guess what? it works. Very well.
HOW COME!? Isn't it wierd?

Now I have to give up to do DataBinding with Behaviors in Silverlight 3 by that way.
It makes me depressed. "No binding, more work".
Anyway all I really want to ask Microsoft is, just allow us DataBinding with Behaviors, so we can create application rapidly, design-friendly, and even elegantly! Like follow code:

<Grid x:Name="LayoutRoot">
    <Button Content="Test">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="Click">
                <hi:ShowMessageBoxAction
                    x:Name="Action1"
                    Message="{Binding Path=Description}" />
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </Button>
</Grid>

[Elegant DataBinding with Behaviors]

Here for sample project:

저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

Because Behaviors are not FrameworkElements, you can't use DataBinding with Behaviors. I posted this about it before.

<Button Content="Description">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Click">
            <local:ShowMessageBoxAction Message="{Binding Description}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</
Button>
[You can't use DataBinding with Behaviors like above]

Well, I'm still thinking about that it's the best way to use DataBinding with Behaviors. Why I can't do like that! However, if you really want to mix up DataBinding and Behaviors just like me, there are some work-arounds.

First, you can attach a 'Binder' class to FrameworkElement as an AttachedProperty. Morten Nielsen writed such a cool class, 'SurrogateBinder' which is general data binding helper. It could be attached to any FrameworkElement, and it passes through the value which from data source to actual target. Here's sample code:

<TextBox RenderTransformOrigin="0.5,0.5"
        Text="Hello Universe!"
        binders:SurrogateBind.Value="{Binding Path=MoreValues.Heading}" 
        binders:SurrogateBind.Target="RenderTransform.Children.Item[1].Angle" >
    <TextBox.RenderTransform>
        <TransformGroup>
            <ScaleTransform />
            <RotateTransform />
        </TransformGroup>
    </TextBox.RenderTransform>
</TextBox>

It works well with any property of FrameworkElement but not for AttachedProperty like Behaviors. So you must modify little bit to targeting AttachedProperty. Also SurrogateBinder can't be set on Blend, so most of designers might not want to use it. Blend-support is important for XAML design. So I don't prefer in-line AttachedProperty as a solution, even though it is cool & smart.

SecondPete Blois who is a program manager of Expression Blend introduced this article to show how Binding property could be used with Blend for binding to non-FrameworkElement, like Behaviors. As you know, we can't use DataBinding to properties on Behaviors, 'cause Behavior is not a FrameworkElement. But Blend seems to allow DataBinding to a property which is type of Binding. Hey! it's so tricky isn't it? :(

<i:Interaction.Behaviors>
    <id:DataStateBehavior Binding='{Binding IsOnline}' Value='True'/>
</i:Interaction.Behaviors>
[You can use DataBinding only on a property which is type of Binding. Could you guess that?]

It looks much cooler than other, but it's not a general solution. Imagine that you want to bind to 3rd party's Behavior, you nerver can do, of course it might has no Binding property! However, sample is just sample and actually it's not only for DataBinding with Behavior but also for Trigger which is raised by condition of data.

Thrid. Now, here's my approach.

<i:Interaction.Triggers>
    <i:EventTrigger EventName="Click">
        <hi:ShowMessageBoxAction x:Name="ShowMessageAction"/>
    </i:EventTrigger>
</i:Interaction.Triggers>
<i:Interaction.Behaviors>
    <hi:BindingProxyBehavior
        TargetName="ShowMessageAction"
        TargetPropertyName="Message"
        Binding="{Binding Path=Description}" />
</i:Interaction.Behaviors>


Sigh, looks messy huh? But it based on standard Behavior, so it works well with Blend and you don't need to worry about writing these XAML code. Blend will generate XAML code as well as you write.
'BindingProxyBehavior' implements Behavior class, and it exposes  some properties which are needed to determine DataBinding & binding target. It focuses only one binding per an instance, but you can attach multiple instance of it, 'cause it's a standard Behavior.

Here's sample project. Enjoy it :)


Actually I'dont like any of them, but first code-block which is impossible currently. So I really want to say, why not with DataBinding? Please?
저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

뭐 결론부터 말하자면 VS2010에서 실버라이트 프로젝트를 테스트 할 수 있다 외에 특별히 장점이 없네요.

우선 VS2010에서는 아직 실버라이트 툴링 부분에는 집중하고 있지 않나봐요.
가장 타격이 컸던건 XAML에서 인텔리센스가 뜨긴하는데 Enum값은 안나오는 등 여러모로 신경을 거슬리게 하는게 있어요.
그래서 저도 걍 깔아봤다에 의의를 두고 메인 작업은 VS2008 + 실버라이트 3 베타 1으로 하려고요.


스샷으로는 잘 안보이겠지만 VS2008 + Silverlight 2, VS2010 + Silverlight 2, VS2010 + Silverlight 3환경에서 동시에 개발할 수 있어요. 참고로 현재 OS는 Windows 7 빌드 7127 x64 환경인데요, 문제 없이 잘 되네요. :D

(윈도 타이틀 바가 투명으로 나와서 간지나죠? 이건 Windows 7 빌드 7127에서 가능한 레지스트리 조작인데요, 스누피님의 블로그를 참고^^ http://snoopy.textcube.com/775)

여튼 설치 순서는 아래에. 중간에 선택 사항도 있으니 잘 보시길.

1. 마음을 비우고 윈도 재설치(생략 가능)
2. Visual Studio 2008 설치
3. TeamExplorer 2008 설치(옵션)
4. Visual Studio 2008 SP1 설치
5. Visual Studio 2010 beta 1 설치

(VS2008에서 실버라이트 2 개발환경으로 할 경우)
6-1. Silverlight 2 Tools for Visual Studio 2008 SP1 설치
6-2. Silverlight 3.0 beta 1 SDK 설치
6-3. Silverlight 3.0 beta 1 개발자 런타임 설치
6-4. Expression Blend 3 preview 설치
6-5. Expression Blend 2 설치
6-6. Expression Blend 2 SP1 설치

(VS2008에서 실버라이트 3 개발환경으로 할 경우)
6-1. Silverlight 2.0 SDK 설치
6-2. Silverlight 3 beta Tools for Visual Studio 2008 SP1 설치
6-3. Expression Blend 2 설치
6-4. Expression Blend 2 SP1 설치
6-5. Expression Blend 3 preview 설치

7. 기타 등등.

주욱 늘여놓으니까 복잡해보이지만 막상 해보면 당연히 그렇게 해야 할 것 들이라서요.
아마 VS2010씩이나 테스트 하시는 분들이라면 자세한 설명은 없어도 될 것 같아서 생략합니다.
저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

이미 한 두차례 포스팅 했듯이, 소니의 거의 모든 VAIO 랩탑 시리즈들은 CPU에서 Intel-VT를 지원하는지 여부를 떠나서 BIOS에서 무조건 사용할 수 없도록 설정되어 있죠.

외국에서도 이 문제에 불만을 갖고 있는 사용자가 많더군요.
http://digg.com/hardware/Sony_Please_enable_VT_Virtualization_on_the_VAIO_Series
VAIO type Z유저가 있다면, 여기에서 DIGG 한판 더해줍시다.

에휴... 이렇게 해봐야 소니는 꿈쩍도 않겠죠?
메일을 보내봤는데 나름 성의 있는 답변은 왔지만 결국은 문제를 해결하고 싶은 생각은 눈꼽만큼도 없어 보이더군요.
그래봐야 한줌 유저일 뿐이니...
저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

Hurray! Now I'm living with both of Silverlight 2 and Silverlight 3 by Visual Studio 2010! Thanks for posting, Tim.
And also I'm able to run Visual Studio 2008 for my current TFS.


<Trinity!>

Here's simple instruction what I've done for above.
1. Prepare clean machine
2. Install Visual Studio 2008
3. Install TeamExplorer 2008 (Optional for TFS user)
4. Install Visual Studio 2008 SP1
5. Install Silverlight 2 Tools for Visual Studio 2008 SP1
6. Install Visual Studio 2010 beta 1
7. Install Silverlight 3 SDK beta 1
8. Install Silverlight 3 beta 1 developer runtime
9. Install Blend 2 & SP1
10. Install Blend 3 preview

and then, you might setting up some options depends on your taste.
Anyway, It runs fine! (at least still now, 'cause I didn't try meaningful work.)
I'm working on VS2008 with Silverlight 2 for current project over TFS, VS2010 with Silverlight 2 for online demos or samples, and then Silverlight 3 for experimental demos and studies!
Of course it's on my virtual machine just in case. You'd better too, you know :)

Well, I know that it takes more time for Silverlight 3 tooling on VS2010 than VS2008, but it's just beta. I think it's enough for studying and enjoying :)

Enjoy your #VS10 also Silverlight, cheers!
저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

  1. BlogIcon Ronald 2009/05/21 20:13  comment URL  Edit/Remove  Submit comment.

    Good overview, thanks.

  2. Gilbert 2009/05/22 09:45  comment URL  Edit/Remove  Submit comment.

    I'd like to install the VS2010 on my machine along your instruction soon.
    Thank you!

SHOW ME THE MONEEEEEEEEEEY!!!!!

VMWare 가격이 만만치 않거든요.
제가 필요한 기능이라곤 오직 쓰레기 n-protect를 사용하는 인터넷 뱅킹. ActiveX 없이 혹은, 데스크탑 애플리케이션으로 뱅킹을 할 수 있다면 VMWare나 Windows 7의 XP Mode따위 필요 없어요.
여튼 현시창이기 때문에, 인터넷 뱅킹 없이 지름 라이프를 유지할 수는 없는 노릇이고, Win7 머신을 n-protect로 더럽히긴 싫고.
별 수 없이 Virtual machine 중 하나를 선택해야죠.


그런데 VMWare의 가격은 물경 189 달러!! 환율이 많이 내렸지만 그래도 20만원이 넘는 돈!
CPU의 업글 비용은 대략 10만원!
후우... 이거야 원-_-;
그래서 지금은 그냥 *공짜* Virtual PC 2007로 쓰고 있죠.

그래도 위의 두 선택중에 하나라면 CPU 업글 쪽이 이득이라고 봐요.
물론 제 VAIO는 P8600씩이나 되는 우월한 CPU를 장착하고도 빌어먹을 Sony 정책으로 Virtualization을 지원하지 않아서 천상 VPC2007을 어글리하게 써야겠지만요, 20만원을 넘게 들여 VMWare를 살 만큼 VMWare의 기능이 필요한 건 아니에요.

후우... Windows Virtual PC, 걍 Virtualization과 관계 없이 Seamless 모드 지원하면 안되겠니? 우리 좀 편하게 살자 응?
저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

  1. BlogIcon ivoryguard 2009/05/21 12:29  comment URL  Edit/Remove  Submit comment.

    VMWare도 잠깐 써봤고 Virtual PC는 좀 써본 결과...
    Virtual PC 2007에서 VT모드는 개발 테스트 용으로는 있으나 없으나 별반 성능 차이가 안나더군요^^;

    그리고 VMWare는 Host OS의 USB 장치까지 인식할 수 있다는 장점이 있다는 것 이외에는 Virtual PC보다 크게 빠르다는 느낌은 들지 않더군요..

    아 그리고... VMWare Server는 공짜입니다~! VMWare Workstation과 기타 다른 서버 제품이 돈이 들구요.

    VMWare Server는 HOST OS와의 공유 폴더 기능을 제공하지 않는 것 이외에 다른 가상화 기능은 대부분 제공하므로 굳이 돈 쓰실 필요 없을 듯^^

    • BlogIcon gongdo 2009/05/21 13:04  comment URL  Modify/Remove

      헉 그랬군요. VWWare vSphere까지만 보고 좌절했었는데;
      예전엔 주리줄창 VMWare workstation만 썼거든요.
      근데 똑같은 기능을 Server/Workstation으로 나눈 이유는 뭘까요 -_- 헤깔리네...
      암튼 시간나면 한번 해봐야겠네요.

  2. BlogIcon ivoryguard 2009/05/21 13:08  comment URL  Edit/Remove  Submit comment.

    VMWare Server는 이전의 ESX Server가 이름이 바뀐 것으로 알고 있구요...

    Workstation이 사용하기가 더 편합니다.
    왜냐... VMWare Server는 HOST OS와 다이렉트로 파일을 공유할 수 있는 방법이 없거든요-.-; 클라이언트 어플 테스트 용으로는 굉장히 치명적인 문제지요.

    그래서... 전 그냥 Virtual PC 2007씁니다.
    공도님의 놋북보다 더 느린 놋북인데도 그럭저럭 잘 돌아가더군요.
    놋북 성능향상의 비밀은 320G 7200RPM 하드로의 교체이지요^^

    • BlogIcon gongdo 2009/05/21 13:35  comment URL  Modify/Remove

      사실 CPU는 듀얼만 되면 크게 차이 안나더라고요^^
      역시 가장 큰 영향을 주는건 RAM과 HDD!
      제거랑 같은 HDD쓰시는군요^^
      올해에는 SSD의 꿈★이 이루어질런지... ㅎㅎ

  3. carles 2009/06/02 16:13  comment URL  Edit/Remove  Submit comment.

    VirtualBox 써보세요.
    가상 PC 최초로 OpenGL가속도 지원됩니다.
    속도도 빠르고요.

    • BlogIcon 공도 2009/06/04 17:23  comment URL  Modify/Remove

      흠 전에는 V-Box에서 키보드 보안 등의 ActiveX가 충돌났었거든요. 최근엔 어떤지 모르겠네요.

지난 16일, Dev&Tech Festival 2009 행사의 일환으로 훈스닷넷에서도 커뮤니티 세미나를 가졌어요. 비가 오는데도 자리를 꽉 채울 만큼 많이 오셔서 감사합니다.^^

이번에는 디자이너 이은아님과 함께 실버라이트 3 가지고 놀기라는 주제로 준비를 했어요.


실버라이트 3는 아직 베타 상태로 나온지 얼마되지 않았기 떄문에 실버라이트에 익숙하지 않으신 분들을 위해서 최대한 재밌는 데모 위주로 진행하려고 노력했는데 끝나고 올라온 후기를 보니 XAML(재믈)이 무슨 말인지 몰라서 이해하기 어려웠다는 분들도 계셨어요. 좀 더 설명을 덧붙였어야 했구나 하는 생각도 들어요.

여튼 발표한 내용은 크게 픽셀 이펙트와 비헤이비어에 촛점을 맞춰서 어떤 식으로 활용되는지 소개를 했고요, 시간 관계상 소개를 하지는 않았지만 데모 전반에 네비게이션 프레임을 적극적으로 활용하여 페이지 구성과 전환을 디자이너가 직접 할 수 있게 해봤어요. 

데모는 간단해보이지만 나름 공을 많이 들인 야근기담(^^)이 준비하면서도 즐거웠고 실버라이트 3가 등장하면서 달라질 디자인-개발 프로세스에 기대를 갖게 만들었어요. 다시 보면서 손발이 오그라들긴 하지만 제가 직접(!) 출연한 기타 히어로 공연(-_-)은 세미나 당일날 급조한거죠. 사실은 이걸 위해 무려 의상도 직접 준비한건데요, 원래는 라이브로 하려던 거였는데 준비가 미흡해서 제대로 쇼를 못한건 아쉬워요. 허허헛...

마지막으로 날리는 썩소 씨-익 ^_____,^


저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

  1. 바르 2009/05/18 16:15  comment URL  Edit/Remove  Submit comment.

    자료감사합니다 ^^ 잘보겠습니다. ㅎㅎ 선글라스가 간지용 저리가라네요 ㅋ

  2. BlogIcon 패러다임 2009/05/19 11:08  comment URL  Edit/Remove  Submit comment.

    자료 감사드려요. ^^;;

    기존 약속 있던것도 깨고 꼭~~ 가려고 했는데 집안에 일이 생겨서 그만.. ^^;;

    소중한 자료 감사 감사 드립니다. ~~ ^^

  3. BlogIcon UXPRO 2009/05/21 11:59  comment URL  Edit/Remove  Submit comment.

    간지 선글라스... 옷이랑 코디... 짱 멋지심!!

아이콘 정리하다가 흠칫;;


그런거 아니라능~

저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

  1. BlogIcon 남정현 2009/05/15 08:32  comment URL  Edit/Remove  Submit comment.

    웃음을 만들어주셔서 감사합니다. ㅋㅋㅋ (응?)

  2. BlogIcon 준서아빠 2009/05/15 17:47  comment URL  Edit/Remove  Submit comment.

    그런게 깔려 있다능...

  3. 모짱 2009/05/31 05:20  comment URL  Edit/Remove  Submit comment.

    심슨 가족에 나오는 술집이름 아니냐능..

DTFE2009 - Dev&Tech Festival 행사의 일환으로 훈스닷넷이 UX 세미나를 하죠.
저도 은아님과 함께 1세션 - 실버라이트 3 가지고 놀기를 주제로 발표를 해요.

하루 밤 날 새서 만든 예고 편... 참고로 실버라이트 3 런타임이 설치되어 있어야 해요. [런타임 다운로드]
실버라이트 2 개발 환경에서도 런타임만 따로 설치해도 되니깐 한 번 해보세요^^
+ 볼륨 업!!


세미나에서 만나요 :D

저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

The Binding object only can take DependencyProperty on the FrameworkElement as a binding target in Silverlight. ‘Course, all of methods and properties related to DataBinding is on the FrameworkElement. DataBinding model might be designed to bind a source data to target ‘UI Element’ at the first time, I guess. It’s reasonable, and it looks like flawless. Just Before Behaviors feature was added to Silverlight.

Oneday, I created a simple Silverlight 3 application to explain Behaviors for my coworkers with Silverlight 3. Me and my coworkers were quite familiar with DataBinding through expierence of Silverlight 2, so I wanted to show them a demo with DataBinding.

The behavior what I created was very simple, you might already know ‘ShowMessageBoxAction’ if you tried Silverlight 3 Behaviors. Here’s the code:

 public class ShowMessageBoxAction : TriggerAction<DependencyObject>
{
    public string Message { get; set; }

    protected override void Invoke(object parameter)
    {
        MessageBox.Show(Message);
    }
}

Yes it was a triggered action which shows MessageBox when Click event raised on Button. Nothing special, isn’t it? And then I wanted to mix it up DataBinding like:

<Button Content="Description">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Click">
            <local:ShowMessageBoxAction Message="{Binding Description}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</
Button>

If you are a developer who is familiar with DatatBinding, you might be aware of my mistake and it would never work. As I mentioned above, a target of DataBinding must be a DependencyProperty on FrameworkElement. I think I got out of my mind at that time. It’s absolutely my mistake because all the Triggers and Behaviors were not FrameworkElement so these were not parts of VisualTree.

However, was that approach bad or evil? Well, I don’t think so. Because it looks like natural. I mean, when we write some XAML codes, It’s not easy to be aware of whether an element(tag) is a FrameworkElement or just other AttachedProperty. And it’s almost impossible to explain it reasonably for designers. Imagine that how designers add some behaviors to an element by using Expression Blend, Behaviors will shown on ‘Object Tree Panel’, not a just Property Panel. Who could know it’s impossible to use DataBinding untill opened a property panel of a Behavior and realize that DataBinding property was disabled.

What do I want to say? Well, I’m understand why Behaviors can’t be binded using DataBinding. However I think DataBinding makes work easy and efficeint, so how about if DataBinding could reach through any DependencyObject or AttachedProperty element?


저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

Because, Silverlight 2 also can reference to Microsoft.Expression.Interactivity Assembly which is from Blend 3 library, you can take many advantages of Behaviors model from Silverlight 3 in Silverlight 2 as well. Yes, you can write Behaviors code without version dependency, and it can be referenced by both of Silverlight 2 and 3.

When I found that possibility, I was excited. As you know, Behaviors model brings you a great functionality which might reduce ‘bording-coding’ dramatically. All you have to do is that just copy-paste XAML from Blend 3, absolutely better than Blend 2, And even no code-behind!

I'm going to show you how to make a simple Silverlight 2 application using a simple trigger-action behavior. Create a new Silverlight project, and follow next steps.

Step 1. Referece a Microsoft.Expression.Interactivity Assembly.

Simply, copy a Microsoft.Expression.Interactivity Assembly to any folder to reference from your application. Usually, you can find it C:\Program Files\Microsoft Expression\Blend 3 Preview\Libraries\Silverlight folder if you installed Blend 3 Preview.

Notice that you must rename the assembly file, because Blend 2 can’t recongnize the name contains ‘Microsoft.Expression’. I don’t know why Blend 2 blocks specific assembly names like that. So just rename it say, Interactivy.dll or something. In this example, I renamed Microsoft.Expression.Interactivity.dll to Interactivity.dll. 

After you reference the assembly, you might be encountered an error follow:

It makes you blind in Visual Studio. Don’t panic. :) It’s  just a bug in Visual Studio Designer which already known. However Blend 2 will display it fine, if there was no other errors. Check this out further information.

Step 2. Create a simple trigger-action behavior.

Now, add a class say, ShowMessageBoxAction. It’ll show message box when trigger event raised on associated object.

public class ShowMessageBoxAction : TriggerAction< Dependencyobject>
{
    #region Message

    ///  
    /// Gets or sets the Message possible Value of the string object.
    ///  
    public string Message
    {
        get { return (string)GetValue(MessageProperty); }
        set { SetValue(MessageProperty, value); }
    }

    ///  
    /// Identifies the Message dependency property.
    ///  
    public static readonly DependencyProperty MessageProperty =
    DependencyProperty.Register(
        "Message",
        typeof(string),
        typeof(ShowMessageBoxAction),
        new PropertyMetadata("Message")
    );

    #endregion Message

    protected override void Invoke(object parameter)
    {
        MessageBox.Show(Message);
    }
}

It has a property which you want to show up, and it ovverides Invoke method which is called when trigger event raised.

Step 3. Add a button with trigger.

Make some UI to check trigger performs well, follow:

<UserControl
    x:Class="SL2Behaviors.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:i="clr-namespace:Microsoft.Expression.Interactivity;assembly=Microsoft.Expression.Interactivity"
    xmlns:local="clr-namespace:SL2Behaviors"
    Width="400" Height="300">
    <Grid x:Name="LayoutRoot" Background="White">
        <Button Content="Click Me">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="Click">
                    <local:ShowMessageBoxAction Message="Hello Behaviors in Silverlight 2!" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </Button>
    </Grid>
</UserControl>

Step 4. Build & run!

How is it? It works fine like Silverlight 3 does. Also you can use other Behaviors like this as well. Try it after these steps. Yes, now you can use Behaviors in your Silverlight 2 applications.

Here is source code for above. It'll be more helpful rather than my poor English. :)



저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

제 메인 PC의 개발 환경이 실버라이트 2로 되어 있어서 자료 정리에 시간이 많이 걸렸네요. 여튼 4월 18일 건국대 새천년 기념관에서 개최된 제 1회 DevDcc 행사에서 발표했던 “실버라이트 3의 등장과 디자인-개발 패러다임의 변화”의 PPT와 데모에요.

데모1에서는 디자이너 이은아님과 함께 처음 실버라이트를 접한 디자이너와 어느 정도 실버라이트 개발에 익숙해진 개발자가 겪을 수 있는 문제점을 다뤄봤어요. 디자이너와 개발자가 서로의 작업을 이해하고 도와주는 것이 역시 유일한 답이겠죠. 또 데모에는 남성 개발자들의 압도적인 지지를 받고 있는 *소녀시대*의 gee 영상으로 카드를 만들어 봤는데요, 아마 데모보다 이쪽에 더 관심 있는 분들이 많지 않을까 하네요 ㅎㅎ.

또한 데모1에서 자세한 설명은 하지 않았지만 Perspective 3D와 데이터 바인딩 그리고 WrapPanel등 실버라이트 3에서 새로 추가되거나 강화된 기능들을 적극적으로 활용하여 만들었으니 어느 정도 참고가 될 거에요.

데모 2에서는 디자이너 장미연님과 함께 했는데요, 장미연님은 현업에서 WPF 프로젝트를 수행하고 있고 개발과 디자인의 중간영역에서 디자이너가 어떤 역할을 해야 하는지에 대해 많은 경험을 가지고 계시죠. 또한 프로젝트 특성상 데이터를 다루는 일이 많은데요, 이 데모를 통해 실버라이트 3 그리고 블렌드 3에서 강화된 데이터 관련 기능을 어떻게 활용하는지 제시하고 있어요.

데모 2에서 개발자는 데이터 원본 생성과 패널 및 컨트롤 코드를 작성하는 임무를 맡고 디자이너는 그 데이터와 컨트롤들을 활용하여 자유롭게 디자인 할 수 있죠. 데모에서 최종적으로는 기존의 딱딱했던 사각형의 리스트박스에서 벗어나 애니메이션 효과와 함께 원형으로 배치되는 패널을 사용하여 데이터를 표시하고 있어요.

데모 3에서는 디자이너 김선구님과 함께 실버라이트 3에서 추가된 가장 강력한 기능 중 하나인 비헤이비어Behaviors에 대해 알아봤는데요, Behaviors는 크게 트리거Trigger & 액션Action과 비헤이비어Behavior로 나눌 수 있어요. Trigger&Action은 어떤 오브젝트에서 이벤트가 발생했을 때 특정 동작을 수행하는 것을 말하고 Behavior는 어떤 오브젝트가 가지는 그 외의 모든 행동 특성을 의미해요. Behaviors는 개발자에게 오브젝트의 행동을 모듈 단위로 설계하도록 도와주고 디자이너에게는 이 Behaviors를 사용하여 개발자의 도움 없이도 멋진 인터랙션을 가지는 애플리케이션을 디자인 할 수 있어요.

데모 3에서는 Behaviors의 활용을 극대화 하여 심지어 물리엔진 조차도 아주 간단하게 사용할 수 있는 방법을 제시하는데요, 저는 Behaviors의 개념이 앞으로 애플리케이션의 개발 패러다임을 확 바꿀 수 있다고 확신해요.

발표 자료가 이미지 중심으로 이루어져 있어서 자세한 설명은 동영상으로 보는 게 좋을 텐데요, 아쉽게도 아직 동영상 자료의 인코딩과 편집이 덜 끝났어요. 동영상이 업데이트 되면 블로그에 업데이트 할게요.

다시 한번 DevDcc 행사에 참가해주신 여러분께 감사 드립니다. ^^/

저작자 표시
Posted by gongdo

Submit comment.

  1. BlogIcon 짱묜 2009/05/05 10:36  comment URL  Edit/Remove  Submit comment.

    ))ㅑ~~ 므쪄요 하하하하

  2. BlogIcon 길버트 2009/05/05 19:23  comment URL  Edit/Remove  Submit comment.

    공도씨를 비롯하여 이은아, 장미연, 김선구 미모의 디자이너님들 고생 많으셨어요.

  3. UXPRO 2009/05/06 14:58  comment URL  Edit/Remove  Submit comment.

    모두 모두 수고하셨습니다.
    좋은 세미나 잘 들었습니다. ^^

알려진 바와 같이 Windows 7은 XP MODE를 지원하죠. 바로 새로 나온 Windows Virtual PC를 통해 Windows 7에서 XP를 함께 사용할 수 있는 건데요, 자세한 내용은 꼬알라의 하얀집, 백승주 과장님께서 잘 정리해 주셨죠. Windows Virtual PC – Windows XP Mode for Windows 7을 참고하세요.

그런데 이렇게 멋진 기능은 반드시 PC가 Virtualization을 지원해야 해요. 즉, Intel 플랫폼의 경우 Intel-VT, AMD 플랫폼의 경우는 AMD-V라는 기능을 CPU뿐만 아니라 메인보드의 BIOS에서도 지원을 해야 하죠.

문제는 이 Virtualization 기술이 발표 된지 상당히 오래되었지만 아직 ‘대다수’의 신규 PC 플랫폼에 적용된다고 말하긴 어렵다는 점이에요. AMD-V의 경우 일반 판매되는 대부분의 플랫폼이 AMD-V 기술을 사용할 수 있게 되어 있지만 Intel의 경우 유독 저가형에는 VT기술이 비활성화 되어 나온 경우가 많아요. 국내 최대의 PC 구매 정보 사이트인 다나와에서 Intel 쪽 상황을 볼까요?

다나와의 4월 CPU 인기순위를 참고하면 Intel CPU중에서 가장 많이 팔리는 순서는 Core2Duo E5200 –> E7400 –> E8400 –> Core2Quad Q8200 이에요. 이 중에서 E8400을 제외한 3개의 CPU가 Intel-VT 기술이 비활성화 되어 있죠. 그런데 다나와 상품 소개란에는 아주 혼란스럽게 된다고 표기된 곳도 있고 아닌 곳도 있어요. 저도 대충 확인하고 E5200을 구매했다가 눈물 좀 흘렸죠.

그나마 인텔은 6월 12일 이후로 Intel-VT 기술을 새로 발매될 revision의 E5300이상의 모델에 활성화 하겠다고 하는군요. 물론 기존의 CPU에는 해당사항이 없는 얘기고요. 당분간 유저의 혼란은 더 커질 거에요. 똑같은 CPU인데 revision에 따라 VT가 지원되고 안되고 –_-. 뭐 인텔의 상술(?)가지고 왈가왈부하고 싶지는 않아요. 그렇지만 한 가지 분명한 건 현재 매우 높은 시장 점유율을 차지하고 있는 인텔 CPU들이 Intel-VT를 지원하지 않는 다는 사실이죠. 이 점을 마이크로소프트에서는 분명히 인지하길 바라고, ‘최근 출시되는 대부분의 플랫폼이 Virtualization을 지원한다’는 판단은 분명히 잘못되었다고 말하고 싶어요. 적어도 일반 유저를 대상으로 한 시장에는 말이죠.

뭐, 한낱 조립 시장 따위로 전체 시장을 얘기할 수는 없겠죠? 그럼 대기업 브랜드 PC나 노트북 시장은 어떨까요? 저도 구체적인 자료는 없어서 단순히 다나와 인기(판매)순위를 참고해 보죠.

4월 현재 다나와의 브랜드 PC(대기업제 PC) 인기 순위에서 CPU만 살펴보면,
E5200, E7400, E7300, ATOM N230, E5200, Q8300, Q8200, (Apple), Q8300, E7400이에요.

네, 약간 충격적(?)인 결과인데요, 저 중에서 Apple iMAC을 제외한 모든 모델에서 Intel-VT를 지원하지 않아요. 다음 노트북 인기 순위를 볼까요?

(ATOM)N270, VIA U2250, N270, N270, N270, N270, N270, N280, AMD QL-62, T3200

아아… 이건 더 충격적인데요, 요즘 최고의 인기를 누리고 있는 아톰 프로세서를 사용한 소위 ‘넷북’의 인기가 하늘을 찌르네요. 말 할 것도 없이 아톰 프로세서는 가상화 기술을 지원하지 않고요.이 중에서 가상화를 지원하는 건 AMD QL-62뿐이에요.

이 결과만 놓고 보면 적어도 다나와를 통해 판매된 상위 80%의 제품은 PC와 노트북을 가리지 않고 가상화를 지원하지 않는다고 말 할 수 있죠. Windows 7이 출시되어도 과연  얼마나 많은 유저가 Virtualization을 활용한 XP Mode의 혜택을 누릴 수 있을까요? 혹시 XP Mode를 적극적으로 마케팅한다면 그 뒤에 있을 혼란은 엄청날거라고 예상할 수 있어요.

참고로 전체 시장에 비하면 큰 부분은 아니겠지만 무시할 수 없는 부분이 있는데요, 특히 소니의 VAIO 노트북은 거의 전 모델에 걸쳐 Intel-VT를 지원하지 않아요. 이건 대놓고 지원하지 않는다고 스펙에 명시되어 있죠. 심지어 CPU가 지원하더라도 노트북 메인보드의 BIOS에서 이것을 비활성화 해놓은데다가 활성화 하는 옵션 조차 없어요.

사실 가상화를 통한 XP Mode 지원이 이렇게까지 신경 쓰이는 이유는 그 빌어먹을 국내 웹사이트들의 ActiveX 남발 때문이죠. IE8 호환성 모드 어쩌고 해 봤자 Vista나 Windows 7에서는 죽어도 설치 안 되는 ActiveX도 있고요 백보 양보해도 일단 설치가 너무너무 귀찮고 사용도 귀찮을 뿐더러 ActiveX 막 설치하다 보면 시스템마저 불안정해지죠. 이런 상황에서 XP 모드는 정말이지 꼭 필요한 기능이에요. 전 제 Windows 7을  N-Protect와 같은 쓰레기 프로그램으로 더럽히고 싶지 않거든요.

결론이 뭐냐고요? Windows 7의 XP Mode가 Virtualization 기술 없이도 동작되길 바라는 거죠. 설사 성능상의 불이익을 감수하고서라도 말이죠. 만약 기술적으로 불가능하다면 하다못해 Virtual PC로 XP를 조금이나마 쉽고 빠르게 띄울 수 있는 방법을 제공해줬으면 하고요.

저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

  1. BlogIcon 아크몬드 2009/05/05 16:12  comment URL  Edit/Remove  Submit comment.

    저도 Virtualization이 H/W상에서 지원되지 않는 CPU(E4300)이라, 이번 기회에 지원되는 CPU로 새로 구매했습니다..

    • BlogIcon 공도 2009/05/05 16:24  comment URL  Modify/Remove

      으악 염장크리 =_=
      저도 한참 CPU 질러야 하나 말아야 하나 고민중이에요. 엉엉ㅠ.ㅜ
      그래봤자 메인으로 사용하는 노트북, 빌어먹을 소니 노트북은 Intel-VT를 지원할 생각은 영영 없는 것 같고요. 아오!!!!

  2. BlogIcon 하솔 2009/05/06 18:32  comment URL  Edit/Remove  Submit comment.

    전 얼마전에 다나와 인기 제품 중 하나인 Q8200을 구입했습니다.
    XPM 소식을 듣고, 인기 제품이니 당연히 되리라는 기쁜 마음에 검색을 했더니...
    이건 무슨.. ㅠ_ㅠ

    • BlogIcon 공도 2009/05/06 23:47  comment URL  Modify/Remove

      후우... 이걸 보고 누구한테 하소연해야 할지 모르겠어요.
      이미 내장된 기능가지고 enable/disable 장난질 하는 인텔이 정말 원망스럽네요. 아무리 value 모델이라지만 그래도 Core2Duo고 Core2Quad인데... =_=

  3. BlogIcon gongdo 2009/05/07 18:46  comment URL  Edit/Remove  Submit comment.

    도아님 블로그에서 얻은 댓글 중에 http://blogs.zdnet.com/Bott/?p=946 이게 있네요.
    정말 암담해요 =_=

  4. BlogIcon myfx 2009/05/20 23:01  comment URL  Edit/Remove  Submit comment.

    인텔 가상화기술 이란? >>http://maindriver.tistory.com/1072

네, 몇 일전 Connect 사이트를 통해 한정적으로 배포되었죠. Windows 7 빌드 넘버 7100 x86 한국어 버전을 메인 노트북에 설치했어요. 뭐랄까 정말 쾌적해졌어요. 드라이버도 어지간한건 다 잡아주고요. 물론 악명 높은 몇몇 소니 전용 드라이버는 따로 설치해야 하지만 다행하게도 VISTA x86버전 드라이버가 다들 잘 작동하네요.


비주얼 스튜디오도 문제 없이 잘 돌아가고...


빌드 넘버는 7100.


현재 그래픽 칩셋이 Intel X4500인데 그래픽 부분에서만 3.4나오네요. 이 정도로도 사용하는데 아무 문제 없이 쾌적해요.

뭐 리뷰는 아니고 그냥 간단한 소감 정도. ^^

그나저나 Intel-VT를 막아버린 소니의 정책때문에 XP 호환모드를 사용할 수 없는 점은 정말 치명적이에요. 나중에 x64 버전을 설치했을 때도 걱정되고요. 다시 한번 빌어먹을 소니이이이이!!! 저주나 받아버려!

저작자 표시
Posted by gongdo

Submit comment.

  1. BlogIcon 한세희 2009/05/04 19:13  comment URL  Edit/Remove  Submit comment.

    일반인에게는 한글판을 배포 안한다고 하네요-_ㅠ

    어린이날 선물로 배포할줄 알았는데.....

  2. 윈도우7rc기달렸는데.. 2009/05/05 12:52  comment URL  Edit/Remove  Submit comment.

    ㅠㅠMS는 왜 일반인들에게는 공개를 안하는지....
    아 마지막 어린이날인데 왜케 허무한지...

  3. 이카루스 2009/05/05 16:29  comment URL  Edit/Remove  Submit comment.

    공도님...
    한글 rc판 공유하실 생각은 없으신지요...
    지금 윈도우7카페에서는 한참 논쟁이 심한데요...

    부탁 좀 드립니다..

    저도 노트북에 비스타 지우고 설치하려고 몇일을 기다렸는데..
    마소가 뒷통수를 딱 쳐버렸네요..
    공도님..
    오늘은 5월 5일 어린이날입니다...
    어린이날 선물이라고 생각하시고...
    공개 좀 부탁드려요...
    제발....
    please~~~~~

  4. BlogIcon 공도 2009/05/05 16:42  comment URL  Edit/Remove  Submit comment.

    넵 전혀 없습니다.

  5. BlogIcon 남정현 2009/05/08 23:23  comment URL  Edit/Remove  Submit comment.

    Windows 7이 늦게 나오면 Vista SP2에 만족할까 했는데 머지 않은 시일에 Windows 7 RTM을 써볼 수 있을것 같아보이네요. 저번 베타 버전때도 "우왕굳" 했는데 기대 만땅입니다. ㅎㅎ

    • BlogIcon 공도 2009/05/09 02:28  comment URL  Modify/Remove

      휴... 사실은 컴퓨터에 관심없는 주변 사람들은 비스타건 7이건 다 필요 없어요. 그들의 관심은 오직 '웹디스크'와 뱅킹 및 온라인 쇼핑 결제에 귀찮은 점만 없으면 장땡이라는거죠.
      보안이니 사용자 경험이니 이런거 씨알도 안먹혀요.
      참 암담하죠.
      결국 시간이 해결하겠거니...하지만 개발 환경은 변할 생각도 없고, 정책도 마찬가지고 시간이 지날 수록 N-Protect의 지랄은 심해져만 가고...

  6. 추원 2009/05/09 00:50  comment URL  Edit/Remove  Submit comment.

    어느 누가 배포할 자신이 있으련지

    배포하면 그사람만 피보는데, 배포하는 사람 정신상태가 글러먹은거.

    받고싶은 사람이지만서도 지좋을대로 필요로써묵고 갔다 버리는 경향이 있는 쓰레기같은 정신력 가진놈들 때문에 공유 못하죠 ㅉㅉ

    제발 공유하기전에 개념탑제부터,,

  7. 부럽습니다.. 2009/05/09 07:19  comment URL  Edit/Remove  Submit comment.

    윗분이 말한 대로 윈도우 7 카페 난리 났고 20000명 가량 되는 카페는 초전박살이 났습니다.(임시카페는 완전 행복해졌죠..)
    저는 따로 공유는 안 부탁드리겠습니다. 다만 이것만 아시라고..

  8. BlogIcon 남정현 2009/05/12 14:08  comment URL  Edit/Remove  Submit comment.

    ActiveX를 통해서 커널 드라이버를 설치하는 나라는 우리나라 밖에 없을지도 모르죠. N-Protect 이야기가 나와서 말입니다만 병을 위해 병을 더 얹은것처럼 느껴질 때가 많습니다. 커널 드라이버를 잘못 설치하면 사실 바이러스보다 더 무서운것인데도 말이죠.


절망했다!
P8600 씩이나 되는 CPU를 쓰고도 VT를 막아둔 바이오에 절망했다!


후우... 좋은거 다 인정하겠는데 말이지...
기껏 좋은 CPU 달아놓고 Intel-VT를 BIOS레벨에서 하드코딩해서 비활성화 해놨다는게 말이되냐고 진짜!!
아놔 소뉘 저주할거야!

...
네 현재 VAIO VGN-Z25 모델 쓰고 있는데요, CPU가 무려 Intel Core2Duo P8600씩이나 되는데도 가상화 지원이 안됩니다.
덕분에 Windows 7 설치한다고 해도 XP 호환 모드 등의 혜택을 누릴 수 없는 신세.
다시 한번 저주한다 소니.

P.S.
Phenix bios, AMI bios에 대한 VT 활성화 해킹은 나왔는데 type Z에 사용된 Insyde H2O bios용 핵은 아직 못찾았어요.
또 다시 한번 저주나 받아라 소니.
저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

  1. BlogIcon 남정현 2009/05/05 18:04  comment URL  Edit/Remove  Submit comment.

    데일리 절망 잘 읽고있습니다. ㄲㄲㄲ

    여담이지만 노트북의 경우에는 저전력을 많이 추구하고 단가를 낮추기 위한 방편으로 계속 VT 기술을 빼려는 추세가 있는것 같아요. 일반 사용자들이 VT를 잘 안쓴다는 점을 감안한 일들인것 같은데 안타깝네요. ㅠ

    • BlogIcon 공도 2009/05/05 18:56  comment URL  Modify/Remove

      제 VAIO의 경우는 CPU에 이미 들어있는 기술이라 Disable한다고 단가가 빠지는 것도 아니고 다만 바이오스에서 Enable/Disable 메뉴만 주길 바라는거죠. BIOS에서 VT Enable/Disable 설정 뺀다고 단가가 얼마나 빠지는지는 모르겠지만 Business 계열 모델 중에 거의 플래그십인데 VT가 빠진건 도무지 납득이 안돼요.

한글판은 MSDN에는 아직 안올라왔지만 connect 베타 프로그램에는 올라와 있네요.
열심히 받고 있는 중, 대략 700KB/s 정도의 속도고 약 1시간 남았어요.
이히히히히히힛 우호호호호홋.

참고로 영문판은 x86/x64 둘다 MSDN에 올라와 있네요.

+ 얼레? 한글판은 x86밖에 없군요! 이건 뭐야!!
+ 지금 MSDN 수시로 다운되고 난리가 아님 =_=
+ 현재 제공되는 RC용 언어팩은 영어, 프랑스어, 독일어, 일본어, 스페인어 뿐...
+ 우헤헤헷 다 받았다아~~
저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

  1. 사이버짱 2009/05/01 01:19  comment URL  Edit/Remove  Submit comment.

    connect 는 무슨 자격이 있어야 하나요?
    MSDN 처럼 유료인가요?

    • BlogIcon gongdo 2009/05/01 01:23  comment URL  Modify/Remove

      Microsoft Connect 프로그램은 마이크로소프트에 대한 피드백과 베타 프로그램을 운용하는 사이트로 일정 조건을 갖춰야만 접근이 가능해요. 예를 들어 Microsoft MVP 자격 등이죠. 저는 MVP로써 Windows 7 한국어 베타 프로그램에 참가하고 있기 때문에 접근이 가능한거에요.
      http://connect.microsoft.com 을 참고하세요.

  2. 사이버짱 2009/05/01 01:38  comment URL  Edit/Remove  Submit comment.

    알려주셔서 감사합니다.
    한글판 64비트가 없다고 하셔서 김이 빠진[...]
    전 5월 6일이나 노려야 할듯;

    (부럽네요)

  3. 유승건 2009/05/01 11:08  comment URL  Edit/Remove  Submit comment.

    정보 감사합니다. 정보 퍼갑니다.

  4. 김성현 2009/05/01 11:56  comment URL  Edit/Remove  Submit comment.

    받으시면 x86!!
    토런트 공유좀 부탁드려요오오오.

  5. BlogIcon 아크몬드 2009/05/02 01:13  comment URL  Edit/Remove  Submit comment.

    토런트 꾹 참아 온 결실이 보였네요

    • BlogIcon 공도 2009/05/02 20:04  comment URL  Modify/Remove

      네 저도 7100 영문 받아놓고 유혹을 견디느라 힘들었어요. 근데 한글판 x64의 부재는 정말로 아쉽네요.





누가 뭐래도 개발자라는 건 재밌는 직업이에요. 그리고 때묻은 뱃지가 계속 늘어날 수 있기를...
저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

  1. BlogIcon ash84 2009/04/27 11:18  comment URL  Edit/Remove  Submit comment.

    부럽네용^^

  2. BlogIcon 한세희 2009/04/27 11:47  comment URL  Edit/Remove  Submit comment.

    디벨로퍼 스티커는 저도 받아서 안부러운데

    mvp는..............ㅠㅠ

    본김에 저도 놋북에 장착?해줘야 겠네요 ㅎㅎ

  3. BlogIcon gongdo 2009/04/27 12:00  comment URL  Edit/Remove  Submit comment.

    실은 I'M A PC 스티커도 있는데 그건 색상이 물빠진 파스텔 톤이라 노트북에 안 어울리더라고요.
    그리고 별로 뽀대도 안나고^^
    I am a Developer 스티커는 간만에 나온 간지 스티커랄까요. 마음에 들었어요 ^o^

  4. BlogIcon Outsider 2009/04/27 19:02  comment URL  Edit/Remove  Submit comment.

    I am a developer 스티커 이쁘군요. 부럽습니다.

  5. BlogIcon 남정현 2009/04/28 01:27  comment URL  Edit/Remove  Submit comment.

    익스프레션 블렌드로 간단한 어플리케이션 디자인이나 실버라이트 프로그램을 멋들어지게 만들어볼 수 있었으면 참 좋겠습니다만 Visual Studio에 너무 익숙해져서 갈아타기가 힘드네요. 열심히 해보렵니다. ㅎㅎ

    • BlogIcon gongdo 2009/04/28 09:18  comment URL  Modify/Remove

      블렌드는 애플리케이션을 만든다라기보다는 인터랙티브 디자인을 위한 툴이죠^^ 갈아타기 위한 대상은 아니에요.
      여전히 제대로 된 애플리케이션이라면 비주얼 스튜디오도 필요해요.

  6. ivoryguard 2009/04/28 08:39  comment URL  Edit/Remove  Submit comment.

    음... 저는 저런 금속 뱃지(?)는 안주고 플라스틱 쪼가리만 주던데... 게다가 스티커도 안주고... MS에서 사람보고 차별하나봐요^^;

    • BlogIcon gongdo 2009/04/28 09:19  comment URL  Modify/Remove

      얼레? 혹시 박스 잘 살펴보셨나요;;
      박스 열면 제일 앞에 붙어 있는게 뱃지인데;;;
      참고로 스티커는 DevDcc에서 받아온거^^

  7. BlogIcon 짱묜 2009/04/28 17:05  comment URL  Edit/Remove  Submit comment.

    나도 작년 온거에 있겠지? 왜 기억이 안날까..이상한 누리끼리한 뱃지였던거 같은데..
    저 색이 아니고..-ㅅ-;;

언뜻 보면 왕과 황제는 다를 게 없어보이죠?

킹펭귄 (from http://csusap.csu.edu.au/~mng24/pages/page6.html)


황제펭귄(from http://www.polarconservation.org/education/antarctic-animals/antarctic-penguins/emperorpenguin/images/emperor-penguin-glenn-grant-national-science-foundation.jpg/view 뭐냐 이 간지는...)

물론, 황제가 그 지위에 걸맞는 빵빵함이 있긴 하지만요.





그러나 진정한 차이는...


킹펭귄의 새끼(from http://king-penguins.com/huddle.html 뭐...뭐야 도메인이 킹펭귄 닷컴;;;)


압도적으로 귀여운 황제펭귄의 새끼!(from http://www.allposters.com/-sp/Emperor-Penguin-Chicks-Snow-Hill-Island-Weddell-Sea-Antarctica-Polar-Regions-Posters_i3167636_.htm 여기 좋은 동물 사진이 많죠)

킹과는 다르다, 킹과는! 어찌 황제펭귄과 킹펭귄을 구분 못하는 자들이 이리도 많은지!


보너스.

헉!!

또 허억!! 얘네들 뭐하는거야 ;o;

(from http://mceown.artistsnetwork.com/PermaLink,guid,d97a2281-c3a9-445c-92be-4832c1b034ce.aspx 뭐야 이 자식! 완전 부럽잖아 ㅠ.ㅜ)

하나 더,
성체는 나름 개성있고 귀여운 아델리... 그러나 그 새끼들은...

아델리펭귄의 새끼...(from http://www.virtualantarctica.com/downloads/wallpaper/chick_huddle.jpg)

역시 황제펭귄이 모든 면에서 압도적이죠? ^^
저작자 표시 비영리 변경 금지
Posted by gongdo

Submit comment.

  1. 쥰세 2009/04/28 09:21  comment URL  Edit/Remove  Submit comment.

    전 펭귄은 다 황제펭귄 새끼처럼 생긴줄 알았어요^^
    아델리펭귄새끼...저게모죠?ㅋㅋ

  2. BlogIcon 짱묜 2009/04/28 17:04  comment URL  Edit/Remove  Submit comment.

    아...........황제펭귄 새끼 완전 귀엽다...인형같아 -ㅁ-)ㅋㅋ

아오 맨날 하는 소리지만 정말 힘들었네요. 힘들었지만 나름 회사 일도 개인적인 일도 같이 해내서 뿌듯해요.
행사 끝내고 원고 하나 쓰고 16시간 자다가 지금은 회사일 하는 중 ㅋ

발표 자료는 내일 정도에 모아서 올릴 생각이에요. 소시 동영상 때문에 용량이 후덜덜 하네요. 줄여서 올려야겠어요. 핫핫...

저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

  1. 한진수 2009/04/19 22:06  comment URL  Edit/Remove  Submit comment.

    공도형~ 정말 애 많이쓰셨어요(^^)
    어제 헤어지기전에 인사드렸어야 되는데 저 상태가 메롱이라ㅋㅋㅋㅋ

  2. BlogIcon 산소나무 2009/04/20 09:42  comment URL  Edit/Remove  Submit comment.

    공도님 정말 고생많이 하셨습니다.

  3. BlogIcon 짱묜 2009/04/20 12:26  comment URL  Edit/Remove  Submit comment.

    ㅋㅋㅋㅋㅋ 오빠 왕수고!!! 잠좀 자란말이야~~~

  4. BlogIcon 패러다임 2009/04/20 13:18  comment URL  Edit/Remove  Submit comment.

    얼굴도 뵙지 못하고 왔어요. ^^

    잠좀 자란 이야기에 한표. ^^

    수고하셨습니다. ^^

  5. BlogIcon gongdo 2009/04/20 21:40  comment URL  Edit/Remove  Submit comment.

    ㄳㄳ
    아놔 그렇지만 오늘도 2연속 철야라는거 ㅋㅋㅋ

간 마이크로소프트웨어 4월호에 기고한 내용이에요. 데이터 바인딩의 기초적인 원리와 어떻게 사용하는지에 대한 설명 및 소스가 있어요.
--------------------------

지난 글에서 실버라이트로 데이터 바인딩을 살짝 맛보았다이번에는실버라이트의 데이터 바인딩이 구체적으로 어떻게 이루어졌는지그리고 어떤 기능들을 제공하는지 알아보겠다

데이터 바인딩의 동작 원리 

데이터 바인딩은 기본적으로 UI 엘리먼트와 데이터를 연결하는 것을말한다이를 구현하는 것이 바로 Binding 클래스이고, ystem.Windows.Data 네임스페이스에서 찾을 수 있다지난글에서 우리가 사용했던 Text=”{Binding Path=Name}” 과 같은 바인딩 표현식에서도 Binding 지시자를 통해 UI 엘리먼트와 데이터가 연결되는 것을하였다이들 사이의 관계를 도식화 해보자면 다음과 같다.


[그림 1. 데이터 바인딩의 구조]

l  바인딩 엔진, Binding 클래스는 바인딩 원본과 바인딩 대상의 사이에서 서로의 값을 설정하거나 변화를 감시하는 역할을 수행한다.

l  바인딩 원본은 어떤 종류의 CLR 개체도 사용할 수 있으며 바인딩 원본의 바인딩 할 속성도 제한이 없다.

l  바인딩 대상은 반드시 FrameworkElement에서 파생된 클래스이어야 하고 바인딩 대상 속성은 반드시 DependencyProperty이어야 한다.

l  화살표는 바인딩의 방향을 나타내며 구성에 따라 단방향 혹은 양방향으로 연결할 수 있다.

l  바인딩에 의해 값이 변경될 때 ValueConverter가 지정되어 있을 경우 값이 적절하게 변환되어 설정된다.

 

바인딩은 다른 실버라이트 개체들과 마찬가지로 XAML과 코드로 선언할 수 있다.

[XAML]
<TextBlock Text="{Binding Id}" />

[C#]
TextBlock tb = new TextBlock();
Binding binding = new Binding("Id");
tb.SetBinding(TextBlock.TextProperty, binding);

 [리스트 1. 데이터의 Id속성을 UI Text속성에 바인딩하는 코드 조각]

이렇게 Binding 개체에 의해 연결된 바인딩은 명시적으로 데이터 바인딩 할 원본 개체의 인스턴스를 설정하지 않으면 기본적으로 DataContext 속성에 설정되어 있는 데이터 개체로부터 바인딩 할 원본 속성을 찾는다. DataContext는 실버라이트의 비주얼 트리를 타고 하위 개체로 전파되므로 공통적인 데이터 바인딩을 하는 UI 집합에서 편리하게 사용할 수 있다.


[그림 2. DataContext를 이용한 바인딩 원본 개체 설정]

바인딩의 기능과 표현식

 바인딩은 단순히 데이터와 UI 엘리먼트를 연결하는 기능 외에도 다양한 바인딩 시나리오를 위한 기능이 준비되어 있다. 각각의 기능과 표현식에 대해 알아보자. 아래에 소개한 기능과 표현식의 모든 소스 코드는 [DataBindingFeatures]의 각 폴더에서 찾아 볼 수 있다.

1.      바인딩 할 원본 개체의 속성 설정

앞서 소개한 것처럼 바인딩 할 원본 개체의 속성은 Binding 클래스의 Path 속성을 사용하여 지정한다. XAML에서 바인딩 표현식을 사용할 때에는 Path지시자를 생략하고 바인딩 할 원본 개체의 속성만 지정할 수 있다

또한 Path 속성을 아예 생략할 수도 있는데, 이 경우 바인딩 대상 속성에는 바인딩 원본 개체 그 자체가 바인딩 된다.

[XAML]
<TextBlock Text="{Binding Path=Name}" />
<!-- 또는 -->
<TextBlock Text="{Binding Name }" />
<!-- 또는 -->
<TextBlock Text="{Binding }" />

[리스트 2. 바인딩 경로를 설정하는 XAML 표현식]

2.      명시적인 데이터 원본 설정

데이터 원본은 Binding클래스의 Source 속성으로 설정할 수 있다. Source 속성을 생략할 경우 자동으로 DataContext에서 바인딩할 속성을 가져온다. 일반적인 경우 Source 속성을 생략하고 DataContext로부터 바인딩 받는 경우가 대부분이지만 때로 명시적인 DataContext가 아닌 명시적인 원본 설정이 필요할 때도 있다.

[XAML]
<TextBlock Text="{Binding Path=Id, Source={StaticResource MyProfile} }" />

[리스트 3. 명시적으로 바인딩 원본을 설정하는 XAML 표현식]

XAML에서 Source를 명시적으로 사용하기 위해서는 먼저 해당 엘리먼트를 포함하는 사용자 컨트롤이나 App.xaml에 반드시 바인딩할 원본을 리소스로 등록한 후 StaticResource 표현식을 사용하여 설정해야 한다. 위의 예제는 리소스로 등록된 MyResource 개체를 바인딩 원본으로 사용하여 MyResource.Id 속성을 Text 속성에 바인딩한다는 의미이다.

3.      데이터의 흐름 설정

Binding 클래스의 Mode 속성으로 원본을 대상에 어떤 방향으로 바인딩 할지 설정할 수 있다. 데이터 흐름에는 다음과 같은 세 종류가 있으며 Mode 속성이 생략 될 경우 자동으로 OneWay 방식이 선택된다.

l  OneTime
최초로 바인딩 원본이 설정될 때 단 한번만 바인딩 대상을 변경하는 모드.

l  OneWay
바인딩된 원본이 변경사항을 알려줄 때마다 자동으로 바인딩 대상도 변경하는 모드.

l  TwoWay
바인딩 대상이 변경되었을 때 역으로 바인딩 원본도 변경하는 양방향 모드.

[XAML]
<TextBlock Text="{Binding Id, Mode=OneTime}" />
<!-- 또는 -->
<TextBlock Text="{Binding Id, Mode=OneWay}" />
<!-- 또는 -->
<TextBlock Text="{Binding Id, Mode=TwoWay}" />

[리스트 4. 바인딩 흐름을 설정하는 XAML 표현식

, OneWay TwoWay 모드가 정상적으로 동작하기 위해서는 데이터 원본 오브젝트가 반드시 다음의 INotifyPropertyChanged 인터페이스를 구현해야 한다.

4.      데이터 원본의 변경 알림

위에서 본 데이터 바인딩의 OneWay혹은 TwoWay 모드는 데이터 원본이 변경되면 자동으로 바인딩 대상도 변경되어야 한다. 이를 위해 데이터 원본 개체는 자신의 데이터가 변경될 때 바인딩 개체에 그 사실을 알려줘야 한다.

이 과정은 모든 CLR 개체에서 자동으로 되는 것이 아니라 INotifyPropertyChanged라는 인터페이스를 상속받은 개체에서 코드를 통해 명시적으로 구현을 해야 한다.

[C#]
public class Profile : INotifyPropertyChanged
{
    private string _id;
    public string Id
    {
        get { return _id; }
        set
        {
            _id = value;
            FirePropertyChanged("Id");
        }
    }
    #region INotifyPropertyChanged Members
    public event PropertyChangedEventHandler PropertyChanged;
    protected void FirePropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
    #endregion
}

[리스트 5. INotifyPropertyChanged 인터페이스를 구현하는 원본 개체의 예제

이렇게 데이터 원본은 PropertyChanged 이벤트를 발생시키고 바인딩 엔진은 그 이벤트를 받아 바인딩 대상 속성을 변경한다.

5.      데이터 컨버팅

때로는 바인딩 원본 속성의 타입과 바인딩 대상 속성의 타입이 일치하지 않을 수도 있다. 예를 들어 TextBlock Text 속성에 DateTime 타입의 값을 바인딩한다면 시스템의 로캘에 따라 “18/03/2009 PM 08:09:00”과 같이 원치 않는 형식으로 바인딩되는 것을 볼 수 있다. 이 때 IValueConverter 인터페이스를 상속하는 클래스를 하나 만들고 IValueConverter 인터페이스의 Convert 메서드와 ConvertBack 메서드를 구현하면 된다. 이렇게 구현한 ValueConverter는 먼저 XAML에 리소스로 등록을 한 후 Binding 클래스의 Converter속성에 리소스를 설정하면 된다. 또한 ConverterParameter 속성을 사용하면 값을 변환할 때 옵션을 부여할 수 있다.

[XAML]
<TextBox Text="{Binding Birthday,
                 Mode=TwoWay,
                 Converter={StaticResource DateConverter},
                 ConverterParameter=yyyy MM dd}" />
 [C#]
public class DateValueConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        // 생략
        return ;
    }
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        // 생략
        return ;
    }
    #endregion
}

[리스트 6. IValueConverter 인터페이스를 구현하는 원본 개체의 예제

Convert 메서드는 데이터 원본에서 바인딩 대상 방향으로 설정할 때 사용되고 ConvertBack 메서드는 반대로 바인딩 대상의 변화를 데이터 원본에 설정할 때 사용된다. 참고로 앞의 코드 조각에서 볼 수 있듯이 바인딩 표현식은 보기 좋게 정리하기 위해 표현식의 각 지시자 사이에 엔터를 포함한 공백을 넣을 수 있다.

6.      데이터 유효성 검사

TwoWay 바인딩이 설정된 TextBox에서 사용자가 문자열을 입력하면 입력된 문자열이 다시 데이터 원본 속성에 설정이 된다. 이 때 기본적으로 데이터 원본 속성의 설정자에서 사용자 입력의 유효성을 검사할 수도 있고 ValueConverter를 사용하여 유효한 형태로 변환할 수도 있다. 그러나 이렇게 할 경우 사용자가 잘못된 입력을 했다는 것을 상위 UI에 알려주려면 별도의 이벤트나 메서드를 사용해야 한다. 특히 복잡한 UI를 가진 입력 폼 등의 애플리케이션은 표준적인 입력 오류를 알려주는 수단이 필요하다.

Binding 클래스는 데이터 유효성 검사를 위해 ValidatesOnExceptions 속성과 NotifyOnValidationError 속성을 지원한다. 이 두 속성을 모두 True로 설정하면 데이터 원본의 속성이 바인딩 엔진에 의해 설정 중에 발생된 예외를 잡아서 BindingValidationError 이벤트로 전달한다. BindingValidationError 이벤트는 모든 FrameworkElement가 가지고 있는 이벤트로 이벤트가 발생한 엘리먼트에서부터 시작하여 이벤트가 처리될때까지 상위 엘리먼트로 계속 라우팅되는 버블 이벤트이다.

[XAML]
<TextBox
    Text="{Binding Path=Age,
    NotifyOnValidationError=true,
    ValidatesOnExceptions=true}" />
[C#]
public class Profile : INotifyPropertyChanged
{
    private int _age;
    public int Age
    {
        get { return _age; }
        set
        {
            if (value < 0 || value > 150)
                throw new Exception("나이는 0~150까지만 가능합니다.");
            _age = value;
            FirePropertyChanged("Age");
        }
    }
}
// 바인딩 에러 처리
void Page_BindingValidationError(object sender, ValidationErrorEventArgs e)
{
    // 에러가 발생할 때 처리
    if (e.Action == ValidationErrorEventAction.Added)
        ErrorCaption.Text = e.Error.Exception.Message;
    // 에러가 해결되었을 때 처리
    else if (e.Action == ValidationErrorEventAction.Removed)
        ErrorCaption.Text = "";
    e.Handled = true;
}

[리스트 7. BindingValidationError를 이용한 데이터 유효성 검사 예제

지금까지 실버라이트 데이터 바인딩의 원리와 중요한 기능들을 살펴보았다. 물론 이것들은 데이터 바인딩의 가장 기초적인 부분이다. 보다 효과적인 사용을 위해서는 세심한 데이터 모델 설계와 UI의 구성, 그리고 무엇보다도 디자이너와의 협업이 중요하다. 다음 글에서는 데이터 바인딩을 보다 효과적으로 사용하는 방법과 디자이너와 협업하기 위한 방법에 대해 알아보도록 하겠다.

-----------------------------

다음호에 봐요 :D
저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

  1. BlogIcon 써니루루 2009/04/20 09:04  comment URL  Edit/Remove  Submit comment.

    일반적으로 C#에 WinForm에 있는 Binding 클래스는 property, datasource, datamember 등의 인자값을 가지던데
    silverlight의 Binding 클래스는 Property 이름만 인자로 받는 형식으로도 가능한가 보군요.
    좋은 내용 잘 봤습니다~ ^ ^

저는 네이버의 서비스 중에 카툰과 e-Sports 스타크래프트 프로리그 VOD/Live 서비스 밖에 안쓰는데요, 드디어 스포츠 중계와 VOD 서비스에 실버라이트가 도입되었어요.
저는 IE7/8을 깔았다 지웠다 했더니 Window Media Player를 사용했던 네이버 스포츠 중계 페이지에 들어가면 Media Player 9버전 이상을 설치하라는 메시지만 나오고 재생이 안되었거든요. 이제는 그런 메시지 따위 필요 없이 볼 수 있게 되었어요. :D

여튼 야구며 뭐며 있다는데 전 그런건 관심없고 스타 프로리그 보기로 고고씽.


네이버가 드디어 실버라이트를 도입했다는 건 실버라이트를 하는 입장에서 엄청나게 고무적인 사실인데요, 이미 프로야구 개막식 생중계에서는 하루만에 5만이라는 동접 제한을 꽉 채웠다고 해요. ㅎㄷㄷ...

저작자 표시 동일 조건 변경 허락
Posted by gongdo

Submit comment.

  1. BlogIcon 리거니 2009/04/06 04:17  comment URL  Edit/Remove  Submit comment.

    어제도 4경기 모두 5만원(5만명 꽉참)이었어요.

    4/3에 생중계 전에 VOD 오픈하자마자 설치하고 집에서 스타중계 한편 보고, 오늘은 야구 중계 롯데전 기념으로 한편 보고.

    • BlogIcon gongdo 2009/04/06 07:09  comment URL  Modify/Remove

      전에 업계의 모님과도 얘기해봤을때도 그렇지만, 사실 서비스 사업자 입장에서는 Smooth Streaming이니 Bitrate Throttling이니 뭐니 해도 소용없고 비용 절감은 P2P가 답이라고 하더라고요.^^

  2. BlogIcon 클라인스 2009/04/06 18:23  comment URL  Edit/Remove  Submit comment.

    안녕하세요. 공도님~ mix09는 잘 다녀오셨나요??ㅎ
    이번에 제가 개발에 참여한 프로젝트가 무사히 오픈되어서 +_+ 다행입니다. ㅎ
    이렇게 리뷰까지 써주시고 ㅎ 많이 애용해주세요 :)

    • BlogIcon gongdo 2009/04/06 23:24  comment URL  Modify/Remove

      광고든 뭐든 붙여도 좋으니 화질 좀 어떻게... 굽신굽신
      감독님... 저글링이 보고 싶어요. :D

  3. 자르기 2009/04/07 08:28  comment URL  Edit/Remove  Submit comment.

    실버라이트의 본색은 고화질인데 그점이 좀 아쉽네요 ^^

이 전 글에서 실버라이트 3에서 추가된 슈퍼 쿨한 기능 중 하나인 Behavior를 실버라이트 2에서도 구현할 수 있다고 살짝 언급했는데요, 어떻게 구현했는지 소개할께요. 소개에 앞서서 Behavior와 관련된 라이브러리 코드들은 모두 블렌드 3에 포함된 Microsoft.Expression.Interactivity 어셈블리를 리버스엔지니어링으로 카피한거에요. 사용시 참고하시길 바래요.

먼저 동작 완구 부터…http://shiverlight.net/sample/SilverlightInteractivity/


 

뭐어… 특별할 게 없어죠? 이 정도 기능이야 뚝딱뚝딱 코딩하면 10분도 안걸릴거에요. 그렇지만 여기 있는 모든 동작은 코딩이 단 한줄도 들어가지 않은 즉, 순수하게 XAML에서 Behavior와 Trigger만 사용한 거죠.

[샘플 코드]

그럼 구현 과정을 알아보죠.

1. Microsoft.Expression.Interactivity 어셈블리 복사

먼저 실버라이트 3 개발 머신에 블렌드 3를 설치하면 C:\Program Files (x86)\Microsoft Expression\Blend 3 Preview\Libraries\Silverlight 폴더에 Microsoft.Expression.Interactivity.dll 어셈블리가 있는데요, 이것이 바로 Behavior와 Trigger를 지원하기 위한 기반 클래스들을 담고 있죠. 이 파일을 실버라이트 2 개발 머신에 복사해두세요.

2. 리버스 엔지니어링

Microsoft.Expression.Interactivity 어셈블리