Silverlight 2 beta2에서 정식 버전으로 변경된 점
SDK에 같이 배포되는 Changes.docx를 보시면 자세한 내용을 알 수 있지만,
제가 만든 실버라이트 태그 클라우드 를 beta2에서 정식 버전으로 변경하면서 수정한 내용을 알려 드리겠습니다.
블로그 하단에 보면 위와 같은 태그 클라우드를 보실 수 있습니다.
일단 Silverlight 2.0 beta2로 컴파일 한 것들은 2.0 정식 버전으로 다시 컴파일 해야 하는데요.
http://silverlight.net/GetStarted/ 에서 Silverlight Tools for Visual Studio 2008 SP1 를 다운 받으셔서 Silverlight Tools을 재설치 하여야 합니다.
Visual Studio 2008에 Service Pack 1을 설치하지 않으신 분은 먼저 SP1를 설치하여야 하구요.
(설치 도중에 Visual Studio 2008 DVD를 요구할 수도 있습니다. ;; 시간도 만만치 않게 걸립니다.)
그리고 예전에 설치했던 Silverlight 버전은 제어판의 Program 추가 / 삭제에서 삭제 해주셔야 합니다.
위의 새 버전의 컴파일러를 설치하셨으면 예전 버전의 프로젝트 or 솔루션을 열면,
정식 버전으로 자동으로 upgrade 할 것이냐고 물어 봅니다.
그리고 Rebuild 해주시면 xap 파일이 정식 버전으로 빌드 됩니다.
그러면 이제는 xap을 배포했던 html을 수정해야 하는 되요.
<div id="silverlightControlHost"> <object data="data:application/x-silverlight," type="application/x-silverlight-2-b2" width="100%" height="100%"> <param name="source" value="ClientBin/SilverlightTagCloud2.xap"/> <param name="onerror" value="onSilverlightError" /> <param name="background" value="white" /> <a href="http://go.microsoft.com/fwlink/?LinkID=108182" style="text-decoration: none;"> <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/> </a> </object> <iframe style='visibility:hidden;height:0;width:0;border:0px'></iframe> </div>
아마도 object 태그에 있는 Silverlight MIME type 이 application/x-silverlight-2-b2 라고 되어 있을 겁니다.
이 타입을 application/x-silverlight-2 라고 변경해 줍니다.
그리고 Silverlight가 설치되지 않았을 때 나오는 URL도 http://go.microsoft.com/fwlink/?LinkID=108182 에서
http://go.microsoft.com/fwlink/?LinkID=124807 로 변경합니다.
이렇게 수정하셔서 재배포하시면 끝입니다.
----------------------------------------------------------------------------------------------------------------------------------------
그런데 다른 프로젝트를 다시 빌드하여 배포하려고 했을 때, 사실 저의 경우 빌드가 제대로 되지 않았습니다.
베타 버전에서 정식 버전으로 옮겨 가면서 변경된 점이 아주 많다고 하더군요.
베타 버전에서 DatePicker 컨트롤을 사용하였었는데 이게 문제가 있었습니다.
<UserControl xmlns:my="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Extended"
x:Class="Silverlight@#$%.Page" xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="800" Height="300"> // .... <my:DatePicker x:Name="datePicker"></my:DatePicker> // .... </Grid> </UserControl>
기존의 코드에서는 DataPicker 컨트롤이 System.Windows.Contols.Extended에 있었는데, 이 Assembly를 정식 버전에서는 찾을 수 없다고 나옵니다.
<UserControl xmlns:basics="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" ....>
정식 버전에서는 참조하는 Assembly 가 System.Windows.Controls.Extended에서 System.Windows.Controls로 변경되었습니다.
기본으로 지정해 주는 xml 네임 스페이스도 my에서 basics로 바뀌었고요.
그 밖에 Silverlight 2 SDK에 포함된 Changes.docx의 내용을 살펴보면
- ContentPresenter 가 기존의 Control 클래스에서 상속받지 않고 FrameworkElement 를 상속받는다고 합니다.
그래서 Background, BorderBrush, BorderThickness, DefaultStyleKey, FontFamily, FontSize, FontStretch, FontStyle, FontWeight, Foreground, HorizontalContentAlignment, IsEnabled, IsTabStob, Padding, TabIndex, TabNavigation, Template, VerticalContentAlignment 등의 속성은 더 이상 사용할 수 없습니다. - 레이아웃을 렌더링하는 방법이 조금 바뀌어서 기존의 레이아웃이 깨져 보일 수도 있습니다. 이때는 UIElement의 UseLayoutRounding 속성을 false로 지정하면 기존 레이아웃을 유지할 수 있습니다.
- Silverlight가 도메인이 다른 곳에의 서비스를 요청할 때, Silverlight XAP 파일을 IIS7이 아니거나, web server MIME type에 XAP file이 등록되어 있지 않는 경우 Cross domain host에 MIME type을 지정해야 합니다. .htaccess file에 AddType application/x-silverlight-app xap 을 맨 윗줄에 추가 하시면 됩니다.
- HttpWebRequest를 사용하는 경우 Exception 종류가 구체화 되었습니다. 예전에는 전부 404로 나와서 디버깅 하기가 무척 힘들었지요.
- 사용자가 Font URI를 사용할 경우 지정한 어셈블리의 주소만 사용할 수 있습니다. 즉, resource 속성으로 Font를 추가해야 합니다.
- Browser.HtmlElementCollection이 Browser.ScriptObjectCollection으로 변경되었습니다.
-
Animation이 active일 때 Storyboard.TargetNameProperty, Storyboard.TargetPropertyProperty, Storyboard.Children, ColorAnimationUsingKeyFrames.KeyFrames, DoubleAnimationUsingKeyFrames.KeyFrames, PointAnimationUsingKeyFrames.KeyFrames, ObjectAnimationUsingKeyFrames.KeyFrames 등의 속성을 변경하면 Exception을 발생시킵니다.
-
System.Windows.Controls.Extended.dll이 System.Windows.Controls.dll로 이름이 바뀌었습니다. 그렇기 때문에 Calendar, DatePicker, TabControl, GridSplitter를 사용하는 경우 Reference를 변경하셔야 합니다.
-
VisualStateManager가 변경되었습니다.
-
KeyDown 이벤트가 동기적으로 보내 집니다.
-
Canvas 클래스에 있는 MeasureOverride / ArrangeOverride 가 숨겨 지게 되었습니다.
-
UriTypeConverter 함수가 System.Windows.Controls.dll에서 System.dll로 옮겨 졌습니다.
-
HtmlPage.UnregisterScriptableObject 함수가 없어졌습니다.
-
RenderingEventArgs 클래스가 System.Windows에서 System.Windows.Media로 옮겨 졌고, RenderingEventArgs.ctor()은 internal 함수로 바뀌었습니다.
-
ContentPresenter, ContentControl 의 TextAlignment, TextDecorations, TextWrapping 속성이 제거되었습니다.
-
OpenFileDialog의 FileDialogFileInfo 타입이 제거되었고, SelectedFile이 SelectedFiles로 변경되었습니다.
-
ExternalCallersFromCrossDomain attribute에 FullAccess 옵션이 제거되었습니다
-
KeyFrameCollection에 Add, Contains, Indexof, Insert, Remove, get_Item, set_Item의 가상 함수들이 선언되어 있지 않습니다.
-
HttpWebRequest.BeginGetResponse()를 사용할 때 Request stream은 반드시 close 상태여야 합니다.
-
Safari/Mac에서 HtmlWindow 참조 변수 비교가 false가 됩니다.
-
WebClient의 Address 속성이 모두 제거 되었습니다. 대신 DownloadState 객체에서 사용할 수 있습니다.
-
DataGrid에도 VSM에 추가되거나 클래스의 위치가 변경되는 등의 많은 변경 사항이 있습니다.
"전체" 분류의 다른 글
| tossi에 가입하다 (0) | 2009/03/07 |
| Visual Studio 2003 (0) | 2007/08/27 |
| 현재 시스템 사양 + 사용 프로그램 (0) | 2007/02/25 |
| 그놈목소리 (2) | 2007/02/05 |
| olalog uploader test (0) | 2006/12/10 |

댓글을 달아 주세요
오 멋있다. 밑에.
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
이걸 이제 본거? -,.-