What’s New in Microsoft Silverlight 3 : http://videos.visitmix.com/MIX09/T14F 참고 :D

Silverlight 3 툴 지원

  • Visual Studio 2008 Tools for Silverlight 3 beta/RTM
    • XAP 압축률 향상
      • 10~30% 감소된 XAP파일 크기
    • 인터랙티브 디자이너
      • Visual Studio 2010에서 지원 예정
  • Expression Blend 3 preview
    • 최종 버전은 올해 말

Media Format 지원

  • H.264/AAC/MP4 디코더 지원
  • 산업 표준 포맷으로 광범위하게 사용되고 있으므로 지원하기로 결정
  • H.264 파일로 할 수 없는 것
    • DRM 지원
    • Windows Media Server에서 스트리밍 호스팅

GPU 가속 지원

  • 옵트인 기능 즉, 명시적으로 사용할 것을 지정해야 함
    • Param으로 EnableGPUAcceleration, EnableCacheVisualization를 true로 설정
    • 최종 서피스 렌더링에 GPU를 사용
  • 엘리먼트 마다 옵트인으로 적용
    • CacheMode="BitmapCache"로 설정해야 함
    • 여러 개의 엘리먼트가 조합되어 렌더링 될 때 GPU를 사용
    • 엘리먼트를 늘릴 때(Stretch) GPU를 사용
  • 브라우저와 full-screen 모드에서 모두 동작
  • GPU 가속이 가능한 클라이언트에서 성능 향상
    • 다른 어떤 비주얼도 수정하지 않아도 됨

(데모)
미디어 관련 : T43F, T19F, T56F
GPU 관련 : T17F

Perspective 3D(Projection)

  • Perspective 3D
    • 2D 오브젝트를 3D 공간에 배치
    • X,Y,Z 회전 및 X,Y,Z 회전 축 지정
    • 지역/전역 X,Y,Z 옵셋 지원
  • Element.Projection
    • 현재는 PlaneProjection만 지원

애니메이션 가속도 지원

  • 기본 지원되는 애니메이션 가속도 함수
    • CircleEase, SineEase, BackEase
    • ExponetialEase, PowerEase
    • QuadraticEase, CubicEase
    • QuarticEase, QuinticEase
    • ElasticEase, BounceEase
  • 커스텀 가속도 함수도 작성 가능
    • 자신만의 가속도 함수를 사용 가능

비트맵 이펙트와 픽셀 셰이더

  • 이펙트
    • 비주얼의 동작에 영향을 줌
    • 기본 지원되는 이펙트
      • Blur, DropShadow
  • 커스텀 이펙트
    • 커스텀 이펙트는 Shader로 구현됨
    • HLSL이라는 표준 코드를 사용
      • DX SDK 유틸리티를 사용하여 byte code로 컴파일
      • 실버라이트 3는 컴파일 된 byte code를 사용
    • 셰이더는 UI 엘리먼트가 렌더링 되기 전에 각각의 픽셀을 변경할 수 있는 기회를 제공
    • 셰이더 = 픽셀 단위 함수 혹은 명령
    • (Green screen 등)

픽셀 API

  • 두 개의 파츠
    • 동적 비트맵 생성
      • WriterbleBitmap
      • 비트맵에 있는 픽셀을 읽고 쓰기
    • 비주얼 트리를 비트맵에 렌더링하기
  • 시나리오
    • 동적인 이미지 생성(실시간 그래프 등)
    • 이미지 편집 및 효과
    • 비주얼 복사
      • reflections, drag effect 등

Raw 오디오/비디오 API

  • 픽셀 API와 비슷하지만 오디오/비디오를 위한 기능
  • 시나리오
    • 동적으로 사운드 생성
    • 커스텀 오디오/비디오 디코더 작성(DIVX, XVID 등)

자세한 데모 : T17F

로컬 메시징 지원

  • 실버라이트 플러그인 간 데이터 통신
    • 같은 페이지에 있는 여러 플러그인
    • 다른 브라우저 탭에 있는 여러 플러그인
    • 다른 브라우저에 있는 여러 플러그인
  • 구현
    • 공유 메모리(Shared memory)로 구현
    • "named pipes"와 같이 노출됨
    • 문자열 기반의 메시지

UI Framework 향상

  • 리소스 병합 기능(Merged Resource Dictionaries)
  • BasedOn 스타일(스타일 구조화)
  • 런타임에 스타일 변경 가능
  • 다중 선택 리스트박스
  • "Handled"된 라우트 이벤트를 수신하는 것이 가능
  • VSM에 "Invalid" 상태 추가
    • 입력 상태가 유효하지 않을 때를 의미
    • TextBox, CheckBox, ComboBox, ListBox, RadioButton 등

상세 : T16F

기타 향상

  • SystemColors
    • 플랫폼에서 사용중인 색상 테마
  • FileSaveDialog 지원
    • 명시적인 UI를 통한 저장 위치 결정 다이얼로그를 통해 파일 위치 결정
    • 보안상의 이유로 유저가 선택한 파일을 열고 쓸 수만 있음
  • 텍스트 향상
    • 클리어 타입 텍스트(베타 이후에 지원 예정)
    • CaretBrush(텍스트 박스 안에 있는 커서)
    • 텍스트 애니메이션을 위한 최적화 옵션
      • 텍스트가 정확한 픽셀에 정렬하기 위해 걸리는 것을 선택 가능
    • Glyphs도 시스템 폰트를 지원
  • 이미지 정렬

새 SDK 컨트롤

  • DockPanel, Expander, Label, TreeView, ViewBox, WrapPanel, ChildWindow, DatePickerTextBox, TabPanel
  • +기타…

그 외 중요한 추가 사항

  • 비즈니스 관점의 지원
    • 내비게이션 프레임워크(Frame, Page 모델)
    • 데이터 건트롤
    • SEO(검색 엔진 최적화) 지원
    • N-Tier 데이터 모델 지원
    • T40F 참고
  • WebService 스택 향상
    • Binary XML, SOAP faults, Credentials 지원
    • T42F 참고
  • Silverlight Toolkit
    • T15F 참고

"Out of the Browser" 지원

  • 실버라이트를 브라우저 바깥에서 실행 가능
    • 그러나 일반 애플리케이션과는 다르게 철저하게 Sandbox 보안 모델 내에서 실행됨
    • 브라우저에서 실행하는 것과 정확하게 동일한 보안 모델 및 사용성을 가짐
  • 실버라이트 코어 런타임에 통합
    • 브라우저 바깥에서 실행 될 때 SilverlightLauncher가 실행되고 그 위에서 동작
  • 애플리케이션 단위로 사용 가능
    • Manifest에 애플리케이션을 설명
    • Deployment.ApplicationIdentity
  • 설치 경험
    • 우클릭하여 Install 선택
      • 데스크탑과 프로그램 그룹에 추가할지 여부 선택
    • 또는 설치를 위해 커스텀 버튼을 추가 가능
      • Application.Current.Detach
    • 삭제는 단순히 우클릭 후 Uninstall 한방으로 끝
  • 새 네트워크 API
    • 연결/연결 안됨 상태
    • 상태 변경됨 이벤트
  • Offline API
    • 브라우저에서 실행되었는지 브라우저 바깥에서 실행되었는지 상태
      • Application.Current.RunningOffline
    • 업데이트 API 등
      • 기본적으로 Online상태일 경우 새 버전의 XAP을 자동으로 설치
  • 비즈니스 관점의 지원
Posted by gongdo