블로그 이미지
내게 능력 주시는 자 안에서 내가 모든것을 할수 있느니라 - 빌립보서 4 : 13 - happydong

카테고리

Happydong (1363)
프로그래밍 (156)
MUSIC (16)
인물 (3)
Utility (10)
세미나 소식&내용 (22)
IT뉴스 (18)
운동 (830)
CAFE (10)
Life (282)
Total
Today
Yesterday



요즘 회사에서 가끔 Silverlight 설치관련 CS건을 처리하고 있다. 몇일 안됐지만 혹시나 설치문제 때문에 고민하고 있는 사람들에게 유용한 정보가 되길 바란다.(또한 나도 잊어 버리지 않기위해 포스팅한다.크큭)

문제1. 예전에 잘 봤는데 어느순간 실버라이트가 안나오는 경우.

거의 대부분은 실버라이트를 분명히 설치해서 잘 보고 있다가 갑자기 어느순간 부터 안되는 경우가 대부분이 아닐까 생각한다. 모 그렇지 안은 경우도 있지만, 몇일 CS를 해보니깐..아무것도 모르는 클라이언트들은 어느순간 갑자기 실버라이트 동영상이 안나온다고 한다. 이는 실버라이트 2에서 3로 되면서 문제 인듯하다. 이럴 때는 그냥 제어판에서 Silverlight를 찾아서 지웠다가 Silverlight 3로 깔면 된다.

사용자 삽입 이미지


이렇게 다시 깔아서 확인해 보고 되면 다행이다. (단, 실버라이트를 제 설치할때는 모든 띄워져 있는 브라우져는 꺼주길 바란다.)

문제2. 1번 과정을 수행후에도 실버라이트를 설치하라고 나옴.

 분명히 실버라이트를 삭제하고, 브라우져를 다 닫은 상태에서 설치를 했음에도 실버라이트를 제 설치하라는 멘트가 나오는 경우가있다. 이럴 경우에는 인터넷 도구 >> 추가기능관리 >> 추가기능 사용 또는 사용안함을 클릭한다. (또는, 인터넷 옵션 >> 프로그램 >> 추가기능관리 클릭!!) 여기에서 실버라이트를 찾아서 사용 안함으로 되어 있는지 확인을 한다. 사용 안함으로 되어 있을 경우 사용함으로 변경하고 확인을 클릭한다. 이후 브라우져를 닫았다가 다시 열어서 확인하면 될 것이다.

사용자 삽입 이미지



문제3. 실버라이트가 제어판에서 안지워져요.

간혹 제어판에서 프로그램을 지우려고 하는데 안지워지는 경우가 있다. 이럴때는 Windows Installer CleanUp 유틸리티를 이용해서 삭제하면된다. (다운로드) 이는 MS제품에 관련해서 삭제가 가능한 유틸리티이다. 자세한 내용은 링크를 확인 하기 바란다. (단, Vista에서는 잘 작동이 안되는 것같다. XP사용자 대상으로 확인 했을 때는 잘 작동했음.)

사용자 삽입 이미지


설치를 다하고 실행을해 보면 위 그림과 같이 띄워질것이다. 여기서 실버라이트를 찾아서 선택을하고 나면 Remove가 활성화가 될 것이다. 이를 클릭해서 지우면 깔끔하게 지워질 것이다. 이렇게 지워다면 1번 내용과 같이 다시 설치해 보라.

문제4. 실버라이트를 지웠는데...실버라이트 설치시 실버라이트가 설치가 되어 있다고 나오는 경우.

 이는 참 특이한 경우다. 오늘 이런 사용자가 있어서 처리 내용을 기록해본다. 실버라이트가 제어판에서 삭제가 되지 않아 3번 과정을 거쳐서 실버라이트를 삭제를 했다. 이후 1번 과정과 같이 제설치를 시도하는데 설치중에 이미 설치가 되어 있다고 나오는 것이다. 그래서 제어판을 확인 하니 아무데도 실버라이트 설치 흔적을 찾을수 없었다. 이상해서 2번 내용과 같이 추가기능관리를 확인을 해봤다. 그런데 거기에 실버라이트 사용이라 되있는게 아닌가...이상한다..분명히 제거 했는데...제거가 잘못 된것 같다고 생각이 되서, 레지스트리에서 Silverlight를 찾아서 제거후 1번과정으로 재설치하니 해결이 됐다.

사용자 삽입 이미지




이상 내가 경험한 몇가지 처리 방법에 대해 작성해 보았다. 나중에 또 이상한게 있으면 계속 업데이트 하겠다.

참고 링크 :  실버라이트 설치 실패를 해결하는 방법
Posted by happydong
, |



" 실버라이트 EMBED 태그로 띄우기!! "

 
별 의미 없는 내용일수도 있다. 하지만 일전의 나의 경험으로 미루어 봤을 때 나에겐 정말 좋은 정보였던 것 같다. 몇 일전 난 내가 만든 실버라이트 애플리케이션을 어떤 사이트에 올리려고 했는데...그 사이트의 보안상의 이유인지 Object태그가 있으면 그 부분을 삭제 또는 Replace 하는 것 이다. 그래서 안되는 가 보다 하고 포기하려는 순간.. 그 몇 일 전에 내가 올릴 유튜브 동영상은 잘 동작하고 있는 것이 생각났다. 그래서 난 플래시인 유튜브 동영상은 잘되는데 왜 실버라이트는 안될까 해서 Debugbar를 이용해서 유투브동영상은 어떻게 되어 있는지 봤다. 그런데 embed태그 아닌가그럼 실버라이트도 embed태그를 이용하면 되지 않을까 해서 나의 테스트는 시작 되었다.

 

ㅁ 테스트 프로젝트 구성

 

Page.xaml

<UserControl x:Class="TestProject01.Page"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Width="400" Height="300">

    <Grid x:Name="LayoutRoot" Background="Yellow">

        <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" x:Name="TestTextBlock" Text="값이 없음." />

    </Grid>

</UserControl>

 

App.xaml.cs

private void Application_Startup(object sender, StartupEventArgs e)

{

Page page = new Page();

string val = e.InitParams["value"];

page.TestTextBlock.Text = val;

this.RootVisual = page;

}

 

위 코드와 같이 아주아주 간단한 실버라이트 프로젝트를 만들어 봤다. (너무 간단한가^^;;;)

그냥 App에서 InitParams로 넘어온 값을 받아서, Page.xaml안에  TextBlock에게 값을 넘겨줘서 뿌려주는 것이다.

 

Object 태그 사용

 

Object 태그 사용

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">

<param name="source" value="ClientBin/TestProject01.xap"/>

<param name="onerror" value="onSilverlightError" />

<param name="background" value="white" />

<param name="minRuntimeVersion" value="2.0.31005.0" />

<param name="autoUpgrade" value="true" />

<param name="initParams" value="value=Object태그"

<a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">

<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>

</a>

</object>

 

 결과 그림 )

사용자 삽입 이미지


일반적으로 사용되는 거라 따로 설명이 필요 없을 것이다.

 

embed 태그 사용

 

Embed 태그 사용

<embed data="data:application/x-silverlight-2," id="silverlight1" type="application/x-silverlight-2"

source="ClientBin/TestProject01.xap" initParams="value=embed태그" width="100%" height="100%" background="white" >

</embed>

 

 결과 그림 ) 

사용자 삽입 이미지


Object태그에서는 Param 엘리먼트를 이용해서 값을 지정해 주었는데, Embed태그는 어트리뷰트(Attribute)로 값을 지정해 준다.

 

이렇게 해서 테스트 끝!!

결론 : Embed태그를 이용할 수도 있구나!!

Posted by happydong
, |



Silverlight Object 태그 알아 보기!!

 

 실버라이트 애플리케이션을 만들고, HTML페이지 또는 여러 기타(aspx, php,asp 기타…) 페이지들에 실버라이트 애플리케이션을 등록하기 위해서는 보통 Object태그를 많이 사용할 것 이다. 그래서 이 강좌를 통해서 실버라이트에서 사용 할 수 있는 여러 Object Element의 구성들에 대해서 알아 보고, 잊어 버리지 않도록 잘 정리 해 보려고 한다. 이는 실버라이트를 배포하는데 도움이 되지 않을까 생각이 든다.

 

 Object Element의 구성

 

 실버라이트 애플리케이션을 올리기 위한 Object는 크게 다음과 같은 구성 요소로 이루어진다.

 

Element

attribute

필수 여부

설명

object

필수

실버라이트 애플리케이션을 적재하는 HTML 구성 요소

 

data

필수, 고정

반드시 "data:application/x-silverlight-2," 으로 설정해야 함.

type

필수, 고정

반드시 "application/x-silverlight-2" 으로 설정해야 함.

width

선택

일반 HTML과 같은 크기 조정. “640”과 같은 pixel 단위 혹은 “100%”와 같은 비율로 조정 가능. , 비율일 경우 반드시 object 엘리먼트의 부모 엘리먼트가 크기를 가지고 있어야 함.

height

선택

param

일부 필수

실버라이트 애플리케이션에 전달할 파라미터를 표현하는 구성 요소. 반드시 object 엘리먼트의 자식 노드로 구성되어야 함.

 

name

필수

전달할 파라미터의 이름

value

필수

전달할 파라미터의 값

HTML elements

선택

실버라이트 플러그인이 설치되지 않았거나 실버라이트를 사용할 수 없는 브라우저에 표시할 대체 HTML 구성 요소.

일반적으로 실버라이트 설치를 유도할 수 있는 배너 및 링크가 포함됨.

 

Object에 필요한 Param

 

 실버라이트 애플리케이션을 올리기 위해서는 Object는 다음과 같은 Param 엘리먼트를 자식 노드로 포함할 수 있다.

 

 

l  source
실버라이트 애플리케이션 패키지인 XAP파일의 URL를 설정 한다.

l  minRuntiomeVersion
해당 실버라이트 애플리케이션의 동작이 가능한 최소한의 플러그인 버전 설정 한다
.
<param name=”minRuntimeVersion” value=”2.0.31005.0” />

l  autoUpgrade
설치된 실버라이트 플러그인의 버전이 minRuntimeVersion보다 낮을 경우 업그레이드 여부를 묻는 프롬프트를 띄우고 자동으로 최신버전으로 업그레이드 할지 여부 설정 한다.

l  splachScreenSource
XAP
파일을 다운로드 받는 동안 보여줄 디자인 표현한 XAML 파일의 URL 를 설정한다
.
(
, URL이 상대 경로일 경우 XAP파일의 위치를 기준으로 함
)
<param name=”splashScreenSource” value=”Splash.xaml” />

l  background
플러그인이 차지하는 영역의 배경 색상 설정 한다
.
(#AARRGGBB
형식의 8자리 문자열로 입력.)

l  maxFrameRate
실버라이트 런타임이 화면을 1초에 몇 번 렌더링하는지 결정하는 수치 설정 한다
.
기본값은 60이며 통상 36이상이면 무난한 품질로 렌더링 된다
.
<param name=”maxFrameRate” value=”36” />

l  initParams
실버라이트 애플리케이션에 넘겨줄 파라미터를 Key1=value1,Key2=value2 형식으로 설정한다. (주의 공백,특수문자를 포함하는 복잡한 문자열은 URL Encode를 하여 전달하는 것이 좋다
.)
<param name=”initParams”
value=”Source=http%3a%2f%2ffoo.com%2f %ed%91%b8.wmv” />

l  allowHtmlPopupWindow
퍼가기 시나리오에서 타 도메인에 올라간(크로스 도메인) 실버라이트 애플리케이션이 HTML의 팝업 윈도를 사용할 수 있는지 여부를 설정한다.

l  enableFramerateCounter
디버깅용 프레임 레이트 측정을 허용할지 여부를 설정한다.

l  enableHtmlAccess
크로스 도메인에서 동작하는 실버라이트 애플리케이션 코드가 HTML DOM에 접근하는 것을 허용할지 여부를 설정한다.

l  onError
실버라이트 애플리케이션에서 핸들링 되지 않은 예외 에러가 발생했을 때 호출할 자바스크립트 함수의 이름을 설정한다.

l  onFullScreenChanged
실버라이트 애플리케이션이 전체화면으로 되거나 보통 화면으로 돌아왔을 때 호출할 자바스크립트 함수의 이름을 설정한다.

l  onLoad
실버라이트 애플리케이션이 로드를 완료했을 때 호출할 자바스크립트 함수의 이름을 설정한다.

l  onResize
실버라이트 애플리케이션을 포함하는 plug-in의 크기가 변했을 때 호출할 자바스크립트 함수의 이름을 설정한다.

l  onSourceDownloadCompleted
source
에 설정한 XAP 파일의 다운로드가 완료되었을 때 호출할 자바스크립트 함수의 이름을 설정한다.

l  onSourceDownloadProgress
source
에 설정한 XAP 파일의 다운로드 진행율이 변경되었을 때 호출할 자바스크립트 함수의 이름을 설정합니다.

l  windowless
실버라이트 플러그인을 렌더링할 때 윈도를 사용하지 않을지 여부를 설정합니다. Windowless 모드는 기본값이 false이며, 특별한 경우가 아니면 사용하지 않습니다.



실제 사용 코드는 아래와 같다.

Object 태그

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">

 <param name="source" value="ClientBin/TestProject01.xap"/>

 <param name="onerror" value="onSilverlightError" />

 <param name="background" value="white" />

 <param name="minRuntimeVersion" value="2.0.31005.0" />

 <param name="autoUpgrade" value="true" />

 <a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">

 <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>

 </a>

</object>

 ( 위 코드는 기본 생성 코드입니다.)

위 코드와 필요에 따라 위에서 알아봤던 엘리먼트를 추가하면 되는 것이다.

Posted by happydong
, |