실버라이트2 9

훈스닷넷 8회 정기 세미나 - 닷넷과 함께하는 차세대 웹 전략

훈스닷넷에서 오랫만에 정기 세미나를 여네요. 그간 UX 커뮤니티 세미나에서도 매번 100여명 이상의 많은 분들이 열정적인 모습을 보여주셨는데요, 훈스닷넷에서는 UX 커뮤니티 세미나가 끝난 후에도 정기적인 세미나를 준비할 예정이에요.이번 세미나에서는 MIX08 이후 열리는 최초의 커뮤니티 세미나로 특히 실버라이트 2.0에 대한 소개와 간단한 데모가 있을 예정이니 많은 참여바래요. :)http://www.hoons.kr/seminarJoin.aspx - 일시 : 2008년 03월 15일(토) 13시 00분- 장소 : 한국마이크로소프트 (포스코 센터 5층)- 참가비 : 무료- 세미나 신청: http://www.hoons.kr/SeminarJoin.aspx   세미나 Agenda..

Silverlight/News 2008.03.14

QuadTree

지도, Deep Zoom 등 2차원 솔루션에서, 정보의 구축과 검색을 원활히 하기 위해서, QuadTree 형식의 자료 구조가 구현되는 것이 바람직합니다. 예를들면 방대한 영역에 존재하는 데이터 중, 보이는 화면영역에 해당하는 데이터만 빨리빨리 찾아와야 할 때 유용합니다. QuadTree는 4개의 자식을 갖는 트리구조입니다. 평면을 계속 4분할해 나가면서 트리가 구성됩니다. 1개의 Cell은 maximum capacity를 가지고 있어서, 그 값이 넘게 자식이 존재해야할 필요성이 있을 때 또 분할됩니다. 수직선, 수평선이란 자식까지 정의하여 총 6개의 자식을 갖도록 설계하는 경우도 있습니다. (CAD/CAM 프로그래밍 할 때 그렇게 했었음.) 한번 이렇게 구성된(Build) QuadTree는 영역에 대한..

Silverlight 2 디버깅 중 중단점 안먹을 때 시도해 볼 것

ClientBin, bin 디렉토리 내용물 지우기, '다시 빌드' 해보기, VS2008 종료 후 재실행, 컴퓨터 리부팅 위와 같은 민간요법을 주로 애용 했었는데요. 이렇게 해도 안되면 Project를 아예 새로 만들었던 과격프로그래머!!! 웹사이트 속성에서 해결 할 수 있는 것을 공도님한테 배웠습니다. 속성창에서 Start Options 항목의 Debuggers Group에서 Silverlight 체크박스에 체크를 합니다. (원래 이 항목은 실버라이트 기본프로젝트 만들 당시에 체크가 되어있습니다. 허나 무슨 이유에서인지 쓰다가 이런 문제가 있어서 보면 해제되어 있습니다. -_-;;; 해제되는 단축키라도 있는거야????) 이렇게 하고 나니 다시 중단점에서 프로세스가 잘 걸리네요. 모르면 손발이 두잇이죠....

Downloader 대신 WebClient

Silverlight2 에서 Downloader가 사라졌습니다. 대신에 WebClient를 사용하시면 됩니다. 파일 전송을 위한 메서드로 OpenReadAsync과 DownloadStringAsync 두가지를 지원합니다. OpenReadAsync WebClient wc = new WebClient(); wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted); wc.OpenReadAsync(new Uri("song.wma", UriKind.Relative)); 이벤트 핸들러는 다음과 같이 사용합니다. (e.Result는 Stream) void wc_OpenReadCompleted(object sender, OpenRea..

HtmlTimer 대신 뭘 쓰면 될까요?

Silverlight 2에서 HtmlTimer가 사라졌습니다. System.Threading.Timer도 있고 System.Windows.Threading.DispatcherTimer도 있는데 이제 무얼 쓸까요? HtmlTimer를 쓰시던 분은 DispatcherTimer를 사용하실 것을 권합니다. 사용방법이 똑같아서 변수 선언부만 찾아서 고치시고, Interval을 TimeSpan으로 수정하시면 컴파일 에러가 해결될 거예요. DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromMilliseconds(3000); // 3초 timer.Tick += new EventHandler(timer_Tick); timer.Star..

Image.Source는 어떻게 쓰나

이미지 사용하기가 조금 복잡해졌어요. Image image = new Image(); image.Source = new BitmapImage(new Uri("http://hugeflow.com/HFLogo.jpg", UriKind.Absolute)); 하지만 의미를 찾자면 BitmapImage에 DownloadProgress이벤트가 있다는 것! 이제 이미지가 다 받아졌는지 확인 할 때 Timer 안 써도 된다는 것! Image image = new Image(); BitmapImage bitmap = new BitmapImage(new Uri("http://hugeflow.com/HFLogo.jpg", UriKind.Absolute)); bitmap.DownloadProgress += new Downlo..

BrowserHost야 어딜 간거니???

BrowserHost.Resize 이벤트를 많이 애용했었지요. BrowserHost가 Application.Current.Host.Content로 대체됩니다. Resized 이벤트는 이렇게 Application.Current.Host.Content.Resized += new EventHandler(Content_Resized); void Content_Resized(object sender, EventArgs e) { Width = Application.Current.Host.Content.ActualWidth; Height = Application.Current.Host.Content.ActualHeight; } IsFullScreen도 여기서 찾을 수 있습니다. Application.Current.H..

와우!! SeaDragon을 위한 Deep Zoom Composer!!

실버라이트2 Beta1 공개를 앞두고 정말 기대되는 기능이 있었죠? 바로 SeaDragon~ 그리고 Deep Zoom Composer는 SeaDragon을 통해 Deep Zoom을 지원할 이미지들을 원본이미지로부터 쉽게 만들어주는 어플리케이션 입니다. MIX08에서 이런 형태의 어플리케이션이 공개될 것이라고 예상은 했는데요. 나왔네요. 일단 간단한 형태로 나왔습니다. 당연히 기능은 점점 보강될 것이구요! 다운로드 : http://blogs.msdn.com/expression/archive/2008/03/05/download-the-preview-of-the-deep-zoom-composer.aspx 유저가이드 : http://blogs.msdn.com/expression/archive/2008/03/05..

Silverlight/News 2008.03.06