본문 바로가기

Silverlight

Silverlight 3 Beta 1 특징 요약 - #1


Silverlight 3에 대한 포스팅은 커냥 눈동냥만을 하고 있다는 죄책감에  급조해서 하나 올려 봅니다. ^^;

이 내용은 Silverlight Tip of Day #100 - Silverlight 3 Beta Feature Summary를 참고 하였습니다.
(http://silverlight.net/blogs/msnow/archive/2009/03/19/silverlight-tip-of-the-day-100-silverlight-3-beta-1-is-released.aspx)

Image Opened

Silverlight 2에서는 이미지가 열리는 정확한 시점을 잡아 내기가 힘들었는데요. 그래서 종종 정확한 이미지의 사이즈를 구하는 등의 작업에서 문제가 발생하기도 했죠. 이제 Silverlight 3에서는 그 문제가 해결이 되었습니다. 이 문제는 DownloadProgress가 이미지를 100% 해석되기 전에 이벤트를 발생 시키는 문제 떄문이라고 하는데요.

Silverlight 3 에서는 Image에 ImageOpened 이벤트를 통해서 이미지가 열리는 시점에 정확한 이미지 정보를 가지고 올 수 있습니다.



XAP 압축(XAP Compression)

SIlverlight 3는 XAP 파일 압축을 통해 획기적으로 XAP 파일을 크기를 줄여 줍니다. 게임과 같이 큰 리소스가 필요한 경우 더욱 빨리 사용자가 응용프로그램을 다운 받을 수 있게 되었습니다.

Perspective 3D

PlaneProjection 속성을 통해 Silverlight 컨트롤에 3차원 효과를 적용할 수 있게 되었습니다. 이를 통해 2차원 상태의 콘트롤을 3차원 형태로 보여줄 수 있게 되었습니다. 드뎌 숙원 사업인 5각형의 입체 도형을 만들 수 있게 되었네요. ^^





Pixel Shaders

드디어 .. 픽셀 쉐이더(Pixel Shaders)를 사용하면 컨트롤에도 이미지와 같은 효과를 사용할 수 있게 됩니다. 현재 Silverlight 3에는 드랍쉐도우(Drop Shadow)와 블로어(Blur) 효과가 기본적으로 내장 되어 있고 추가적으로 사용자 효과를 만들어서 적용할 수 있습니다.








여러 개의 효과를 동시에 적용할 수는 없습니다.

사용자 픽셀 쉐이더 적용하는 경우




Binding

Silverlight 3 부터는 컨트롤 간의 속성끼리 바인딩 할 수 있게 됩니다. 브라보~~!! ^^

예를 들면 아래 처럼 Slider의 Value와 TextBlock의 Text 속성을 연결할 수 있게 되는 것이죠.


참고 : 자동으로 타입에 대한 변경이 일어납니다. ( Value는 double 타입 ==> Text는 string 타입 )

Bitmap API

Bitmap APIs는 WriteableBitmap 클래스를 통해 사용할 수 있게 되었습니다. 생성자로 이미지의 폭, 높이, 형식을 받습니다.
( 쑈티님의 Feature 소개 - WriteableBitmap을 통해 동영상 캡쳐 http://cafe.naver.com/mssilverlight/4402 글을 확인해 보세요. )

하드웨어 가속(Hardware Acceleration)

Silverlight는 UI 랜더링에 GPU(Graphics Processing Uint)을 사용하여 더욱 효율적이고 빨리 UI를 랜더링 합니다.
부동소숫점 계산과 같은 복잡한 계산을 이젠 GPU가 처리하게 됩니다.

텍스트 애니메이션 기능 향상 (Animated Text Performance Improvements)

TextRenderingMode라는 속성을 통해 RenderForAnimation을 설정할 수 있게 됩니다. 기존 Silverlight2에서 텍스트에 크기 변경, 알파값 변경 위치 변경과 같은 애니메이션 작업은 성능에 극도로 좋지 않은 영향을 미쳤습니다.

RenderOptions.SetTextRenderingMode(MyTextbox, TextRenderingMode.RenderForAnimation);

네트웍 모니터링 API (Network Monitoring API)

네크워크를 모니터링 할 수 있는 API를 제공합니다. 네트워크가 사용가능한지를 판단하는 경우 아래와 같이 확인 할 수 있습니다.

bool isConnected = NetworkInterface.GetIsNetworkAvailable();

또한 네크워크의 상태가 변경 되는 것을 감지할 수 있는 기능도 제공됩니다.

NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);

이 클래스를 사용하기 위해서는 System.Net.NetworkInformation 네임스페이스를 참조해야 합니다.

SaveFileDialog

이제 드디어 Silverlight 3에서도 파일을 저장할 수 있는 기능을 제공합니다.
(참고 : 사용자의 액션이 없는 Load와 같은 이벤트에서 사용할 경우 권한 오류가 발생 합니다. )

ShowDialog() 메서드를 통해 대화상자를 호출하고 파일명을 지정하여 사용자에게 파일을 저장 하도록 할 수 있습니다.






참고 : 열려진 Stream을 닫지 않는 경우 파일은 만들어지지 않습니다.

CaretBrush

(삽입기호 브러시? ) CaretBrush는 삽입기호의 모양을 변경 할 수 있도록 해 줍니다. 예를 들어 텍스트 박스가 검정색이고 삽입기호나 교정기호도 검정색이라면 보이지 않을 것입니다. 아래와 같이 사용할 수 있습니다.

( CaretBrush가 기본값을 사용하고 있어서 교정기호가 보이지 않습니다. )

( CaretBrush를 흰색으로 지정 )



워미~~ 빡시네요. -_-''

벌써 10:30분 이네요. 다음에 이어서 하도록 하겠습니다. ^^

Silverlight 3에 대한 내용을 보면서 계속해서.. "드디어~~" 라는 말을 많이 사용하게 되네요. ^^ 그 만큼 기다렸던 기능이라는 것이죠. ^^

조금 이라도 지식 공유가 되었으면 좋겠습니다. ^^

감사합니다.


[출처] 실버라이트 네이버 카페