Silverlight/Tips 34

LINQ 사용 시 동적으로 where 문을 작성하고 싶을 때

구글링을 열심히 한 결과, stackoverflow.com에서 답을 찾았네요. PredicateBuilder 클래스를 활용하라는 답이 가장 호응이 좋았는데요. 아래 O'Reilly에서 나온 C# 3.0 IN A NUTSHELL 사이트의 어떤 페이지로 이끌더군요. 원문은 그곳을 참조하시면 됩니다. Dynamically Composing Expression Predicates 자신의 프로젝트에 아래와 같이 PredicateBuilder 클래스를 추가하고, using System; using System.Linq; using System.Linq.Expressions; using System.Collections.Generic; public static class PredicateBuilder { public..

Silverlight/Tips 2009.11.17

ChildWindow에서 VisualStateManager.GoToState(...)가 말을 안들을 때

어느 실버라이트 개발자님께서 질문을 해주셔서 그 답변 내용을 포스팅합니다. 요즘 회사 일이 매우 바빠서 '세미나 소식' 이외에 제대로된 실버라이트 포스팅을 하지 못하고 있었는데 잘 되었군요. #자식(ChildWindow)이 말을 잘 안들어! photo by jon bradley @ flickr.com 현재 Silverlight 3에서는 ChildWindow에서는 VisualStateManager.GoToState(...)로 VisualState 변경이 불가능합니다. VisualState가 얼마나 편한데... 이걸 포기하는 것은 말도 안되죠! 하지만 VisualStateManager.GoToState를 호출해 봐야 깜깜 무소식에 false만 리턴해 올 뿐! 게다가 VisualStateManager.GetV..

Silverlight/Tips 2009.10.16

방문자 분들의 Silverlight 플러그인 설치상황 [Google Analytics]

2주 전에 Google Analytics를 통해서 방문자들의 Silverlight 플러그인 설치상황을 알아보는 방법에 대해서 포스트를 올렸었습니다. 그리고 제 블로그에도 적용을 시켜 보았었는데요. 결과가 어떻게 나오는지 한번 살펴보시죠. 일단 구글 Analytics에 접속을 하신 후에, 좌측 메뉴의 Visitors – User Defined를 선택합니다. 일단 지난 일주일 간의 데이터를 열람하는 것으로 하겠습니다. 그러면 위와 같은 자료를 보실 수 있으실 겁니다. User Defined Value를 Silverlight에 관한 것들만 추리면 보기가 더 좋아지겠죠? 그리고 오른쪽 상단의 파이차트 아이콘을 누르시면 이쁜 파이차트가 나옵니다. 결과를 한번 살펴보면, 실버라이트 설치하신 방문자가 85.58%나 ..

Silverlight/Tips 2009.07.28

Expression Blend 3와 TFS 연동하기

휴즈플로우는 소스공유를 위해 TFS(Team Foundation Server)를 이용하고 있는데요. 모두 알다시피 소스컨트롤의 기본은 Check Out/ Check In이죠. "개발자의 인생은 체크아웃/체크인의 연속이다"라고 해도 과언이 아닐 정도로... 아무튼 Expression Blend 2 시절 우리 디자이너 PeterC를 생각해 보면, 피터씨는 디자이너임에도 불구하고, Visual Studio가 설치되어있는 PC를 사용하면서, 자신이 수정한 디자인을 소스컨트롤 서버의 소스와 병합(Merge)하기 위해, Visual Studio에서 해당 xaml 파일들을 미리 체크 아웃하는 수고로움을 감수해야 했습니다. 그러던 중 Expression Blend 3 발표와 함께, Blend 3에서는 TFS 연동을 지..

Silverlight/Tips 2009.07.22

VS에서 지원하는 Document Outline for XAML 기능

(어제 박대표가 저에게 알려주었는데요. 어익후! 실버라이트 2에서도 되었다는데 창피하게 저는 모르고 있었어요!!) Visual Studio에서 xaml 파일을 볼 때, Document Outline 기능을 사용하실 수 있습니다. 이 놈이 얼마나 기특한 놈인지 한번 살펴보시죠. xaml 뷰의 왼쪽 아래쯤에 이런 아이콘이 있으실 겁니다. 눌러보시면, 아래와 같이 Document Outline Pane(패인)이 나타납니다. XAML를 Tree 구조로 보여줘서 한눈에 쏙쏙 들어오구요. 트리의 노드를 클릭하면 XAML 뷰에서는 자동으로 그곳을 찾아서 화면이동을 합니다. 차암~ 편하죵?

Silverlight/Tips 2009.07.21

Google Analytics로 사용자 PC의 실버라이트 플러그인 설치 현황 파악하기

실버라이트로 서비스를 하다보면, 고객들의 PC에 얼마만큼 실버라이트 플러그인이 설치되어 있는지 또 설치되어 있다면 어떤 버전까지 지원하는 플러그 인인지 궁금하실 겁니다. 가끔 MS로부터 흘러나오는 정보들이 있기는 하지만, 그것은 우리 고객들의 표본과 많은 차이가 있지요. 한편, Google Analytics란 서비스는 무료로 웹페이지 방문자에 대한 방대한 통계를 제공합니다. 기본으로 제공하는 통계 외에도 User Defined Value를 이용하여 내가 원하는 요소를 통계 처리할 수도 있습니다. 이런 경우 지난 일요일 Mark Monster(본명일까요?)씨가 포스팅한 내용이 매우 유익하여, 요점을 정리하여 제 블로그에 포스팅합니다. Silverlight.js 일단 다음과 같이 silverlight.js를..

Silverlight/Tips 2009.07.13

Silverlight 3 : 브라우져 줌을 지원합시다.

원문 : Silverlight 3 Quick Tip : Browser Zoom Support Silverlight 3부터는 브라우져 줌을 지원합니다. 정확하게 말씀드리면 개발자가 원하면 브라우져 줌을 지원할 수 있게 되었습니다. (자동으로 지원되는 것이 아니고 추가 코딩이 필요함) 브라우져 줌과 Silverlight 2 IE의 오른쪽 하단을 보시면 100%라고 표시되어 있는 곳이 있죠? (백프롭니다!) 배율을 클릭해서 200%로 바꿔보아도 실버라이트 영역이 2배로 커질 뿐, 그 안의 실버라이트 렌더링은 그대로 100%입니다. 이 당시는 뭐 어떻게 손쓸 방법이 없었어요. 브라우져 줌과 Silverlight 3 하지만 Silverlight 3에서는 App.Current.Host.Content.Zoomed 이..

Silverlight/Tips 2009.07.13

[Tip] Collection 바인딩과 InvalidOperationException

실버라이트 어플리케이션을 개발하다보면, ListBox의 ItemsSource와 List나 Collection과 같은 IEnumerable류를 바인딩 할 경우가 자주 있습니다. 휴즈플로우에서 진행한 최근 프로젝트 중에서 MVVM 패턴으로 개발한 어플리케이션이 있는데요. ListBox와 Collection류의 프로퍼티가 바인딩하게 되는 여러 뷰들을 빠른 속도로 전환하다보면, InvalidOperationException이 발생하였습니다. Exception에 담겨있는 에러메세지는 "개체의 현재 상태 때문에 작업이 유효하지 않습니다."라는 애매한 메세지였고, 예외가 발생한 곳은 뷰모델의 베이스용으로 구현해 놓은 ViewModelBase의 OnPropertyChanged(...) 함수 내부였습니다. 어플리케이션을..

Silverlight/Tips 2009.06.04

Tip : ListBox의 사이즈를 자동으로 따라가는 WrapPanel

안녕하세요. 국가적으로 슬픈 일이 있는 요즘 날씨는 왜 이리도 화창한지... 그래도 좋은 날씨 덕분에 덜 우울할 수 있는 것 같습니다. 실버라이트 개발자 여러분 ListBox에 Item들을 2차원적으로 배열할 필요가 있을 때에는 ItemsPanel로 WrapPanel을 많이 쓰실 거예요. WrapPanel은 실버라이트 툴킷의 Microsoft.Windows.Control.dll를 참조 추가하시면 사용하실 수 있구요. 실버라이트 툴킷은 여기서 최신버전을 얻으실 수 있습니다. WrapPanel 다 좋은데 효험을 보기 위해서는 보통 Width를 고정을 하고 쓰실 겁니다. 근데 UI가 어디 그렇습니까? ListBox는 여러군데 다양한 사이즈로 쓰이고 내부의 WrapPanel은 사이즈를 고정해 줘야하고... 그러..

Silverlight/Tips 2009.05.25

Data Class에 DataContract 등의 선언없이 WCF 사용하기 in .NET 3.5 SP1

Aaron Skonnard란 분의 Service Station 블로그에 DataContracts without attributes (POCO support) in .NET 3.5 SP1이란 제목의 포스트가 있습니다. 관련 문제로 고민하던 Boxmile(박스마일) 대표가 찾아낸 포스트인데요. 아주 흥미롭습니다. 가장 중요한 대목은 .NET 3.5 SP1인데요. 서버에 SP1(서비스팩1)이 설치되어 있지 않으면, 제목대로(DataContract 등의 선언없이) 되질 않습니다. 저희가 한참 삽질한 이유이기도 합니다. 개발 환경은 SP1이 설치되어 있고, 실제 서버에는 SP1이 설치되지 않아서, 개발환경(localhost 혹은 local IIS)에서는 Data Class에 어떠한 Serialization 관련 ..

Silverlight/Tips 2009.05.08