9월 16일 세미나 준비를 하는 중에, Local Connection이.. 좋긴 한데 확장성이 그닥 좋지 않은것을 알았습니다.


몇가지 실험 결과를 알려드립니다.

(1) 대소문자 구별.

 - 즉, Sender가 "ShortyLuv"였을 때, Receiver가 "shortyLuv"라면 전달루틴이 발생하지 않습니다.
   이건 예상 가능했기 때문에 그렇다 치죠.


(2) 2개 이상 등록 불가능

 - 가장 황당했던 에러입니다.


  그러니까, Sender가 1개, Receiver가 2개라고 했을 경우에 이 Receiver 2개는 각각 다른 식별키를 사용해야 한다는
  이야기죠. 즉 Sender에서도 LocalMessageSender를 2개를 등록해야 한다는 이야기가 나옵니다.

  ... 이럼... 이게 몹니까.. 그냥 Silverlight -> JavaScript -> Silverlight 와 다른 것이 없어보입니다.
  그것보다 1:1만 지원이 된다는 것이 좀 아쉽네요.
 

(3) HtmlPage 클래스의 함수 사용에 제약이 있는 듯 보입니다.

 

  글쎄요.. 혹시 LocalConnection 자체가 HtmlDom을 읽어들이지 못하는건가 생각해봤는데. 생성자에 Alert를 붙여보니
  그건 또 잘 동작하더군요. HtmlDom을 사용하는 루틴은 사용하지 못하는 듯 보입니다.

  다른 변수로 바꿔서 실행해봐도 그렇고, 따로 함수로 빼서 실행해봐도 결과는 같습니다.

  ... 왜이럴까요..


결론은 LocalConnection은 'XAP이 2개일때만 쓰자' 라는 것이 되겠네요.. 구글링을 해봐도
아직까지 Silverlight 3에 대한 이슈는 활성화되어있지 않은 모양입니다..

mms. 말 그대로 Windows Media Server를 이용하여 스트리밍으로 뿌려주는 프로토콜이지요.

이 mms를 실버라이트에서 쓰려고 할때, 잘 안되는 경우가 많습니다.


분명 웹페이지에 그냥 mms://어쩌고.. 쓰면 잘 나오던 것이 왜 실버라이트로 가면 안되는가..

구글링 끝에 해결이 되었습니다. (제 경우라 다양한 돌발상황에 대해서는 잘 모릅니다;;)


일단 보통 서버에는 IIS가 올라가있을 것입니다. 이게 포트 80번을 씁니다.

그런데 미디어서버를 설치하면. 이거 역시 포트 80번을 씁니다. (WMS HTTP Protocol)

실버라이트에서는 포트번호를 명시하지 않고 바로 MediaElement의 Source에 mms://어쩌고.. 를 바로 써주면

이 포트 80번의 충돌때문에 미디어가 동작하지 않는 것이지요..

즉.


이 WMS HTTP 서버 제어 프로토콜이 기본적으로 포트 80을 사용한다는 데에 문제가 있었습니다.

(그리고 아마 '사용 안함'으로 되어있을 것입니다. 그래서 포트를 설정해주고 '사용' 해주어야 합니다)


이 아이템을 클릭하면 바로 속성창이 나옵니다.


그래서 다른 포트 사용을 하셔서.. 사용하지 않는 포트 숫자를 적어줍니다. 서비스를 다시 실행시키고 나서

기존의 소스를 적용해봅니다.

     this.me_played.Source = new Uri("mms://xxxxxx:7870/xxxxxx.wmv", UriKind.Absolute);
     this.me_played.Play();        


그럼 적용이 잘 될 것입니다.

주의할 점은, 반드시 포트번호를 명시해주어야 한다는점. 그리고 이 경우의 7870이 방화벽에 막혀있음 안될 가능성도 있으니

방화벽 포트 예외 처리를 해주어야 한다는 점 등이 있습니다.


감사합니다.
  

  쇼티예요.
  Silverlight Toolkit에 Chart가 있습니다. 제가 이번에 조사한 자료는 LineSeries에 대한 것입니다.
  (원문자료는 이곳입니다.)

  LineSeries Chart는. 다 아시겠지만 대충 이런 모양새입니다.
 

  말그대로 '라인'을 사용하는 '꺾은선 그래프'? 이정도의 느낌이지요.

  거두절미하고 그럼 한번 해보도록 하겠습니다. 고객에게 '어떤 책에 대한 베스트셀러 순위 조회'를 위한 꺾은선 그래프를
  만들어주세요~ 라는 요청을 받았다고 해보죠.

  프로토타입을 만듭니다. 일단 예상되는 데이터를 생성합니다.

 

  1주일 단위로, 순위가 10, 5, 2, 1, 1..정도로 되었다고 해보죠.
  Silverlight Toolkit의 차트 사용법은, 일단 XAML 내에 네임스페이스를 정의하고(보통 네임스페이스는 charting으로 많이
  하시더군요). 그래서 <charting:Chart> 태그를 올리고, 그 자식으로 <charting:___series>를 올려놓습니다.

  이경우는 Line 차트니까 LineSeries라고 올려놓으면 되겠군요.  
 

  주요 속성은.. DependentValue와 IndependentValue는 각각 '값', '범위' 설정이구요. 그냥 DataPointStyle의 색을
  바꾼 것 밖에 없습니다. 그리고 선 좌표값에 대한 설정은, 코드만 보셔도 이해하실 수 있으실 듯 해요.
 
  다 됐습니다. 
 

  근데 이 그래프를 받아본 고객사에서 항의전화가 왔습니다. 

  "왜 그래프가 이 모양이예요?"
  "뭐가 문제죠?"
  "아니 베스트셀러면. 1위가 제일 높은건데, 왜 점점 이 책이 가치가 없어지는듯한 그래프 모양을 하고 있죠?"
 
  "...."

  10이면 높은거고, 1이면 낮은게 맞는건데. 베스트 셀러같은. 어떤.. 순위를 매기는 그래프는 1이 높고
  10이 낮은것이지요. 이 그래프가 틀린건 아닌데, 일반 고객사에서 느끼기엔, 그 고객사의 고객을 관리하는 입장에서
  이런 그래프는 '용서받지 못할 그래프'가 되는거죠. 뒤집어주는 프로퍼티가 있음 좋은데 그게 있는것도 아니구요.

  어쩔 수 없지요. 편법을 써야합니다. 컨버터를 사용해서 일단 정수를 전부 음수로 해주는 과정을 진행합니다.
 

  간단하게, 이게 (int)형이면 -(int)로 바꿔줍니다. 그리고 XAML의 LineSeries에 컨버터를 답니다.
  또, 아래 역상 표시된 곳에 보시면 Minimum과 Maximum을 바꿔주고 있지요. 
 

  그러면 다음과 같이 나옵니다.
 

  이정도면 괜찮은 것 같습니다. 그러면 왼쪽에 -(int)와, 마우스 오버했을 때의 -(int)만 없애주면 되겠군요.
 

  보시면, 정규식으로 {}(0:0.#;0.#) 를 쓰는 것을 볼 수 있습니다. 정규식에 대한건 구글링해보세요 ^^
  이것을, LineDataPoint 형태로 Template을 잡아주시고, 밑에 AxisLabel에도 붙여주세요.
 

  정리하자면
 
  1. 컨버터로 일단 이 값을 음수화 시켜서, 그래프를 뒤집은 다음에
  2. 나타낼 때 수치를 컨버젼 시키시면 되겠습니다.

  감사합니다.

  
  

 


  쇼티예요.


  OC 툴팁 개발하다가 생긴 에러인데.. 이게 실버라이트 버그라고 하네요..

  관련포스트

 
  이거참.. ToolTip 커스터마이징 하기 두렵네요 ㅋㅋ;
 
  참고하세요 ^^

  쇼티예요.

  통상적인 방법으로는 동시 개발이 불가능하더군요. Virtual PC나 VmWare 등을 사용해서 쓰는
  법이 일반적입니다.

  이것도 Beta 버젼이 끝나는 때까지만 하면 되는 것이기때문에, 동시 개발환경을 구성하고 싶다
  면, 미리 앞서서 Virtual PC를 띄우는 것이 더 좋은 방법일 수가 있다는 것을 말씀드립니다.

  그래도. 난 절대로 한 컴퓨터에 동시 환경을 구성하고 싶다! 라고 하시는 분들께서는 
  이 포스팅을 주목해보세요.

  외국의 어떤 분이 배치파일을 만들어두셨더군요. 역시, 깔고 지우고 깔고 지우고..
  그냥 이런 노가다를 배치파일로 편하게 만들어두었습니다. ... 그래도 이렇게 만들어놓으니까
  일단 편하더군요.

  첨부된 배치파일(zip으로 압축이 되어있습니다)을 받으시고 다음 순서를 따라해주세요.

  1. 첨부 배치파일을 다운로드합니다.
  2. 실버라이트 2 툴을 다운로드 받습니다. (첨부파일과 동일 폴더에 둡니다)
  3. 실버라이트 3 툴을 다운로드 받습니다. (첨부파일과 동일 폴더에 둡니다)
  4. 다운로드 받은 두개의 툴을 인스톨합니다. (인스톨되었다면 스킵)
  5. 첨부파일의 압축을 풀어 Setup_SLTools_Util.bat 을 실행시킵니다.

 

  4번은. 일단 실버라이트 2를 인스톨 하시고, 3를 인스톨합니다. 이 과정중에서 3를 설치할 때
  실버라이트 2를 지운다는 로그메세지를 보실 수 있는데, 원래 그런거니까 넘어가시고..
  중요한건, 실버라이트 2 Tools를 Unavailable 시키는 것이지 파일 자체를 지운다는건 아니라는
  거지요.. (윈도우 폴더에 Silverlight 폴더 찾아보시면 v2.0과 v3.0이 둘다 있게 될것입니다)

  아무튼 5번 과정까지 끝나면, VS_3-to-2.bat과 VS_2-to-3.bat라는 파일이 생길 것입니다.
  (두개 더 생기긴 하는데, 혹시 여러분들이 Web Developer Express를 쓰신다면 그 배치파일을
   실행시켜야 합니다)
  
  다 됐습니다. 2를 개발하다가 3로 가시려면 2-to-3를 실행시키시면 되고, 
  3를 개발하다가 2로 가시려면 3-to-2를 실행시키시면 됩니다.

  정보를 언인스톨하고 새버젼으로 덮어씌우는 개념이기 때문에, 시간은 컴퓨터 사양에 따라 
  2~3분 정도 걸릴거예요. 
  
  좀 더 자세한 포스팅 자료에 대한 링크는 다음과 같습니다.

  jeff.wilcox 블로그
  dullard's 블로그 (전 이걸 보고 했어요..)
  wahlin의 오버뷰 (이건 dullard의 포스팅을 소개해주는 블로그예요)

  그래도 거듭 말씀드리지만, 예외는 언제나 존재하니까요..
  Virtual PC 등을 띄우시는 것을 추천합니다.