2011.08.08 10:02

안녕하세요 앞으로 Eva News Letter라는 이름으로 매일 매일 쏟아지는 콘텐츠를 먹기좋게 잘 정리해서 전달해 드리려고 합니다.

매일 매일 좋은 주제로 찾아 뵙도록 하겠습니다.

오늘은 Silverlight를 주제와 관련된 정보를 정리했습니다.
아래에 보는 링크는 Silverlight를 배울 수 있는 링크를 정리했습니다.

아래 내용만 잘 따라가셔도 충분한 기본 스킬을 확보 할 수 있을 만큼 좋은 자료들 입니다.

Silverlight 4 Business Apps: Module 1 - Introduction  Hands On Labs 
Silverlight 4 Business Apps: Module 2 - Event Manager using WCF RIA Service  Hands On Labs 
Silverlight 4 Business Apps: Module 3 - Authentication Validation, MVVM, Implicit Styles and RichTextBox Lab  Hands On Labs 
Silverlight Business Apps: Module 3.1 - Authentication  Video 
Silverlight Business Apps: Module 3.2 - MVVM  Video 
Silverlight Business Apps: Module 3.3 - Validation  Video 
Silverlight Business Apps: Module 3.4 - implicit Style  Video 
Silverlight Business Apps: Module 3.5 - RichTextBox  Video 
Silverlight Business Apps: Module 4 - Webcam, Drag and Drop, and Clipboard Lab  Hands On Labs 
Silverlight Business Apps: Module 4.1 - Webcam  Video 
Silverlight Business Apps: Module 4.2 - Drag and Drop in Silverlight  Video 
Silverlight Business Apps: Module 5 - DataGrid, Grouping Right Mouse Click Lab  Hands On Labs 
Silverlight Business Apps: Module 5.1 - Grouping and Binding  Video 
Silverlight Business Apps: Module 5.2 - Layout Visual States  Video 
Silverlight Business Apps: Module 5.3 - Right Mouse Click  Video 
Silverlight Business Apps: Module 6 - Multipage Printing  Hands On Labs 
Silverlight Business Apps: Module 6.1 - Printing and the ViewBox  Video 
Silverlight Business Apps: Module 6.2 - Multi Page Printing  Video 
Silverlight Business Apps: Module 7 - Out of Browser, Toasts, native Integration Lab  Hands On Labs 
Silverlight Business Apps: Module 7.1 - Out of Browser  Video 
Silverlight Business Apps: Module 7.2 - NotificationWindow(Toasts) for Elevated Trust Out of Browser Applications  Video 
Silverlight Business Apps: Module 7.3 - Out of Browser Window Placement  Video 
Silverlight Business Apps: Module 7.4 - Out of Browser Trusted Application Overview  Video 
Silverlight Business Apps: module 8 - Advanced OOB, Custom Window Chrome, Silent Installs, Digital Signing, and MEF Lab  Hands On Labs 
Silverlight Business Apps: Module 8.1 - Custom Window Chrome for Elevated Trust out of Browser Applications  Hands On Labs 
Silverlight Business Apps: Module 8.2 - Window Closing Event for Out of Browser Applications  Hands On Labs 
Silverlight Business Apps: Module 8.3 - Silent Install of Out of Browser Applications  Video 
Silverlight Business Apps: Module 8.4 - Digitally Singing Out of Browser Applications  Video 
Silverlight Business Apps: Module 8.5 - The Value of MEF with Silverlight  Video 

 

아래 자료는 추가적인 Hands On Lab 입니다.

Silverlight RichTextBox Lab  Hands On Labs 
Silverlight Validation, Binding, DataFrom and DataGrid lab  Hands On Labs 
Webcam in Silverlight lab  Hands On Labs
What's New in Silverlight 4  Hands On Labs 
Multi Touch in Silverlight lab  Hands On Labs 
Out of Browser with COM Interop Lab  Hands On Labs 

 

앞으로도 자주 뵙겠습니다.
감사합니다.

신고
2011.07.20 08:30

목차나 내용은 모르겠지만. 아무튼 벌써 Silverlight 5 책이 출시되었네요. 헐~ 참 빠른 사람들도 많습니다.
아무튼 오늘 자기 블로그에 한시적으로 50% 세일 한다고 올려놨네요.. 관심 있으신 분들은 알아보시길..

http://10rem.net/blog/2011/07/19/my-next-book-silverlight-5-in-action-50percent-off-for-a-limited-time 
저작자 표시 변경 금지
신고
2011.05.16 14:05
Silverlight 5를 시작하려고 하시는 분들에게 도움을 드리기 위해서 관련된 정보들을 모아보았습니다.
Silverlight 5의 전체적인 특징을 이해하고 싶으신 분들은 이 전 포스팅인 "끝나지 않는 RIA 플랫폼의 진보 Silverlight 5"를 참조해 주십시오 
우선 본격적으로 시작하기에 앞서서 필요한 툴과 자료를 먼저 다운로드 합니다.
 

Silverlight 5 Download

필수 다운로드
추가적으로 필요한 요소들

그리고 다운로드 되는 동안 Silverlight 5를 소개하는 동영상들을 살펴 봅니다.

 

Silverlight 5 Top Videos

Silverlight 5 Beta Overview
Silverlight 5를 소개하게 어떻게 시작할 수 있는지를 소개합니다.
Multi-Column and Linked Text
RichTextBoxOverflow를 통해서 다중 컬럼을 지원하는 방법과 링크된 텍스트를 사용하는 방법을 소개합니다.
Implicit Templates
포함되어 있는 템플릿을 사용하는 방법을 소개해 드립니다.
Low-Latency Sound Effects
새로운 SoundEffect와 SoundEffectInstance Class를 사용하는 방법을 보실 수 있습니다.
Debugging Binding
Visual Studio 2010에서 XAML 바인딩을 사용할 때 어떻게 디버깅 할 수 있는 지 보실 수 있습니다.
OS Windows
OS차원의 창을 띄우는 방법을 소개해 드립니다.
Mouse Button Double and Multi-click
Silverlight 5에서 지원되는 Double and Multi-Click에 대해서 소개해 드립니다.

얼마전 미국 라스베거스에 있었던 믹스에서도 Silverlight 관련 세션들을 볼 수 있습니다.

Graphics & 3D with Silverlight 5

Building in Browser Experiences with Silverlight 5

Advanced Features in Silverlight 5

Tips for Improving Performance in Applications Built with Silverlight

Deep Dive MVVM

Effective Validation Techniques with MVVM in Silverlight

 

Silverlight 5 Top Tutorials

아래 아티클들은 영문이지만 잘 정리된 아티클들 입니다. 읽어보시면 새로운 기능들의 특징을 이해하는데 도움이 됩니다.

Silverlight 5 Advancements in Text
Silverlight 5 has made some real improvements to the text stack, including control over character spacing, and linked and multi-column text. In this tutorial, Pete Brown will show us how to use these new advancements.
Silverlight 5 Debugging Bindings with Xaml Breakpoints
When looking at features in our favorite platforms, we often forget that the tooling gets updated too. For Silverlight 5, one of the most interesting tooling enhancements is the ability to set breakpoints and debug bindings in XAML. In this tutorial, Pete Brown will show us how to debug bindings in Silverlight 5.
Silverlight 5 Supporting Double and Even Triple Click for the Mouse
Silverlight 5 has introduced the concept of a click count. Rather than create dedicated double, triple, or septuple click events, you can simply count the number of clicks using the new ClickCount property of the MouseButtonEventArgs class. In this tutorial, Pete Brown shows us how to use this new property.
Silverlight 5 Using the SoundEffect Class for Low-Latency Sound and WAV Support
In some applications, particularly touch-screen kiosk apps and casual games, it is desirable to be able to play a sound immediately upon a user action. In this tutorial, Pete Brown shows us how to use the SoundEffect and SoundEffectInstance classes.
Silverlight 5 Working with Implicit Templates
One great feature that has, until now, been exclusive to WPF is the ability to use implicit data templates. Now, Silverlight 5 also supports this feature. In this tutorial, Pete Brown shows us how to create and use Implicit Data Templates in Silverlight 5.
Silverlight 5 Working with Operating System Windows
ChildWindow controls are great for most things, but sometimes you just want something that acts like an operating system Window. Silverlight 5 has extended the Window class to allow creating real native child windows. In this tutorial, Pete Brown shows us how to create and customize windows in Silverlight 5.
신고
2011.05.11 19:06

현지 시간으로 2010년 12월 02일 오전 09시에 열렸던 Silverlight Firestarter 행사를 통해서 그 모습을 드렸냈던 Silverlight 5가 MIX11에서 드디어 Beta 버전이 발표 되었습니다. 작년에 열렸던 Silverlight Firestart 행사는 비교적 적은 사람이 초대되었고 주로 온라인으로 진행되었던 행사였다면 MIX11은 수천명이 모여서 진행되었던 대규모 행사였습니다.

<온라인으로 진행되었던 The Firestarter 행사>

속도 제어가 가능해진 미디어 기능

Silverlight 5에 추가된 기능들을 하나 하나 살펴 보면 사용자들의 피드백을 하나 하나 잘 반영하고 있는 생각이 듭니다. 원래 Silverlight가 미디어와 관련된 기능이 강조되어 왔지만 Silverlight 5에서는 미디어와 관련된 기능이 한층 더 강화되었습니다. 특히 그 동안 교육 콘텐츠 업계로 부터 많은 문의를 받아왔던 Trickplay라고 부르는 미디어 재생 속도 제어 기능이 이번에 포함 되었습니다. 미디어 재생 속도를 제어하다 보면 불가피하게 음향의 톤이 올라가거나 낮아지는 현상도 함께 벌어지게 되는데 이럴 때 이번에 Silverlight 5에서 제공 되는 Trickplay에서는 이를 보정해서 원래 톤을 유지하는 기능도 함께 포함되어 있습니다.

영상이나 음향의 경우 대용량의 데이터를 빠르게 전송하기 위해서 모두 수학적으로 압축해 놓은 형태로 저장되고 전송됩니다. 그리고 이를 압축해 놓은 방식을 코덱이라고 부르며 각 각의 코덱은 라이선스가 적용되어 있습니다. 이전의 경우 압축된 영상이나 음향을 재생하기 위해서 수학적으로 다시 풀이하는 과정을 CPU에 의지했기 때문에 고화질의 영향을 넷북과 같은 저사양의 PC에서 재생하는 것이 불가능 했습니다.

하지만 Silverlight 5에서는 별도의 압축 해제용 하드웨어를 지원하기 때문에 CPU는 본연의 임무를 수행하고 영상이나 음향의 압축 해제는 전용 하드웨어를 통해서 처리할 수 있게 되었습니다. (압축 작업을 Encoding 압축 해제 작업을 Decoding이라 부르며 압축 해제를 전용으로 하는 소프트웨어나 하드웨어를 Decoder르 부른다.)

이를 통해서 저전력 저사양의 PC에서도 고화질의 영상이 재생 될 수 있게 되었습니다. 이외에도 Silverlight 5의 경우  전력관리를 위한 추가적인 기능이 포함되어 있어서 이미 다가온 모바일 PC시대의 가장 중요한 과제인 전원관리 문제에도 접근하고 있습니다.

Full 3D의 지원

Silverlight 3에서는 간단한

UI효과를 위한 3D가 부분적으로 지원되었지만 Silverlight 5 부터는 Full 3D 객체가 지원됩니다.

<Silverlight Firestarter에서 시연한 데모>

<MIX11에서 시연한 데모>

이는 Silvelight 5에서 제공되는 DrawingSurface를 통해서 지원되는 기능으로 완벽한 수준의 3D를 웹 상에서 구현할 수 있게 되었습니다. Silverlight 5는 3D 모델 포멧으로 COLLADA라는 포멧을 사용하고 있는데 COLLADA는 3D 객체를 표현하는 포멧으로 3D 업계에서 무료로 사용할 수 있게 공개되어 있습니다. Silverlight 5에서 제공되는 3D 기술의 이면에는 게임용 플랫폼으로 사용되고 있는 XNA가 있습니다. XNA는 PC, XBOX, Windows Phone 7등에서 게임 개발용으로 활발히 사용되고 있는 플랫폼 입니다. 이미 관련된 데모를 다운로드 해 볼 수 있으며 http://www.johnpapa.net/3dmix11 에서 다운로드 할 수 있습니다.

웹에서 3D를 구현하는 다양한 방법이 이미 존재하지만 Silverlight 5는 GPU 가속을 활용할 수 있어서 강력한 성능을 제공할 수 있으며 이미 다양한 플랫폼에서 검증된 공개된 포멧을 사용하고 있고 Silverlight 런타임만 있으면 이외에 추가로 설치해야 하는 것이 없다는 점들이 장점입니다.



더욱 더 강력해진 개발 모델

Data Binding은 개발자들이 최소한의 노력으로 데이터를 화면의 컨트롤과 연결 시킬 수 있는 방법을 제공해 줍니다. Silverlight의 경우 디자이너와 개발자들의 협업을 위해서 UI를 XML 기반인 XAML로 디자인하게 되어 있는데 이 경우 XAML에서 런타임시에 오류가 날 경우 오류를 찾기 어려운 경우가 있었습니다. Silverlight 5의 개발 도구의 경우 XAML상에서도 의심가는 컨트롤에서 직접 디버깅을 할 수 있는 기능이 제공됩니다. 
통신 방식에서는 업계 표준인 WS-Trust를 지원하게 되어서 통신 신뢰성을 100% 담보할 수 있게 되었고 Cloud 플랫폼인 Windows Azure와의 통신도 다양한 방법으로 할 수 있게 되었습니다.

<향상된 데이터 바인딩>

나머지 향상된 기능들  


웹 브라우저가 아닌 독자적으로 실행 시킬 수 있는 형태로 소프트웨어를 실행 시킬 수 있는 OOB(Out Of Browser)는 이번에도  기능이 추가 되었습니다. 여러개의 창을 띄울 수 있게 변경되었으며 기업 그룹 정책을 지원하는 등의 변화가 생겼습니다. 이번에 개선된 OOB관련 기능들로 인해서 Silverlight가 좀더 데스크탑용 일반 응용 프로그램들에 가까워 졌지만 웹을 기반으로 하고 있다는 점은 역시 변하지 않았습니다.

이외에도 좀 더 미려하게 폰트를 표현할 수 있는 기술과 PostScript 프린팅의 지원등은 사소하지만 큰 변화 중의 하나 입니다.

<더 선명해진 글씨와 강력해진 프린터 지원>
Pivot 기능이 기본 런타임에 포함되었으며 개발툴에서 자동으로 UI를 테스트 할 수 있는 기능이 추가 된 것도 놀라운 변화중에 하나 입니다. 일일히 테스트 하는 것이 아니라 한번의 시나리오 녹화로 지속적인 테스트/재현이 가능하고 그 과정을 추적하는 할 수 도 있어서 고품질의 제품을 만들어 내는데 큰 도움이 될 것 같습니다.

Silverlight 5는 현재 베타 버전의 런타임과 개발 툴을 다운로드 받을 수 있습니다.

작년 11월 Silverlight Firestarter에서 발표했던 일정대로 잘 진행되고 있습니다. 조만간 RC 버전의 발표 후에 올해 안에 강화된 미디어 기능과 Full 3D가 가능한 Silverlight 5를 만날 수 있게 될 예정입니다.

<Silverlight 5 출시 일정>

신고
2010.12.06 06:56

지난 주 Silverlight FireStarter 행사에서 소개된 Silverlight 5의 주요기능들을 소개해 드리고 있는 동영상입니다.

저작자 표시 변경 금지
신고
2010.12.03 08:02
현지 시간으로 12월 02일 오전 09시 Silverlight Firestarter 행사가 본사에서 진행되었습니다. 미국 현지에서 진행된 행사지만 온라인으로도 생중계 되었기 때문에 한국 개발자들도 실시간으로 온라인에 참여하고 활발하게 Twitter로 의견을 교환하는 모습을 볼 수 있었습니다.

<그림1>온라인으로 진행되었던 The Firestarter 행사

 키노트에는 이번에도 개발 부문 부사장인 스캇 구슬리가 진행했습니다.  키노트에서 이미 Silverlight는 수 많은 방송에서 실제로 사용되고 있으며 충분한 레퍼런스가 있다고 이야기 하기도 했으며 SAP에서 Silverlight로 구현한 사례를 보여주기도 했습니다. 국내에서도 초기에는 방송사들이 동영상을 스트리밍하기 위한 용도로 먼저 도입했지만 지금은 기업들의 UI 통합작업에 기본 플랫폼으로 활용되는 사례를 쉽게 찾아 볼 수 있게 되었습니다.
<그림2> Microsoft 개발부문 부사장 스캇 구슬리
<그림3>SAP의 기업 시나리오 시연

하지만 이 날 발표된 내용은 놀랍게도 Silverlight 5와 관련된 내용이 발표 되었습니다.
 일반적으로  보통 PDC나 MIX와 같은 대형 행사를 통해서 새로운 버전을 알려왔는데 이번에는 Silverlight를 위한 독자적인 행사를 통해서 발표하게 되었습니다. 

 Silverlight 5에 추가된 기능들을 하나 하나 살펴 보면 사용자들의 피드백을 하나 하나 잘 반영하고 있는 생각이 듭니다. 
 Silverlight 5에서도 미디어와 관련된 기능이 한층 더 강화되었습니다. 특히 그 동안 교육 콘텐츠 업계로 부터 많은 문의를 받아왔던 미디어 재생 속도 제어 기능이 이번에 포함될 예정이라고 합니다. 또 재생 속도 제어와 함께 요청 받는 기능인 하나가 재생 속도와 무관하게 음성의 톤을 유지하는 기능인데 이 기능도 함께 포함될 예정이라고 합니다.
<그림4>미디어 재생 속도 제어 기능의 시연

미디어 스트리밍의 경우 IIS Media Service를 통해서 원도우폰7과 아이패드에 스트리밍을 제공하는 모습을 시연하기도 했습니다.
<그림5>IIS Media Service 4.0을 이용한 원도우폰7 미디어 서비스
<그림6>IIS Media Service 4.0을 이용한 아이패드 미디어 서비스

하지만 IIS Media Service를 클라우드 플랫폼인 Azure에서도 제공할 수 있게 할 예정이라고 발표했습니다. 클라우드 플랫폼에서 제공하는 미디어 서비스는 클라우드의 장점인 탄력성과 경제성을 함께 가져 갈 수 있을 것으로 기대 됩니다. 즉 짧은 시간안에 폭주하는 트래픽에 대한 미려한 대체방안이 될 수 있으며 또 대규모 인프라 투자가 없이도 미디어 사업이나 혹은 미디어를 포함하는 서비스를 제공할 수 있게 되었습니다.
<그림7>Azure support for IIS Media Service

Silverlight 5에서는 섬세함이 한층 더 강화 된 모습을 보여주고 있습니다. 단적인 예로 데이터를 화면에 자동으로 연결시켜주는 Data Binding의 경우 간단한 기능이지만 오류가 발생할 경우 현재 툴에 의한 디버깅은 불가능 했습니다만 이번 Silverlight 5 부터는 툴에서 직접 문제를 찾아서 해결 할 수 있도록 기능이 추가 되었습니다.  스타일의 동적은 변화 역시 Data Binding을 통해서 만들어 낼 수 있는 점도 상당히 신선하게 받아들여지고 있습니다.
 WCF와의 연계에서도 WS-Trust를 지원하게 되어서 통신 신뢰성을 100% 담보할 수 있게 되었고 Windows Azure와의 통신도 직접적으로 지원할 수 있게 되었습니다.
<그림7>향상된 데이터 바인딩
<그림8>WCF & RIA 서비스의 개선점
<그림9> 더 선명해진 글씨와 강력해진 프린터 지원

 또 출력해야 될 내용을 마음데로 목록을 만들었다가 흩트렸다가 하는 Pivot 기능이 기본 런타임에 포함되었으며 무엇보다도 이제 Full 3D 수준의 랜더링이 지원되고 여기에도 하드웨어 가속이 이용되어서 성능상의 문제가 없이 사용 가능하게 되었습니다. 실제로 스캇 구슬리를 Full 3D로 제작 인체 해부를 하는등의 데모를 3D 객체로 진행했습니다
<그림10>Pivot 기능의 기본 지원
<그림11>강력해진 그래픽 지원
<그림12>스캇 구슬리를 3D로 구성한 데모

Out of browser도 더욱 강력해 졌습니다. 여러개의 창을 띄울 수 있게 변경되었으며 기업 그룹 정책을 지원하는 등의 변화가 생겼습니다. 제 개인적으로는 Out Of Browser의 변화는 웹으로 시작된 Silverlight가 Desktop/Mobile을 좀 더 강화하겠다는 의지의 표명으로도 보입니다.
<그림13>추가된 Out of browser 기능
<그림14>여러 창을 함께 띄우는 것이 지원된다.
<그림15>강력해진 툴

개발툴에서 자동으로 UI를 테스트 할 수 있는 기능이 추가 된 것도 놀라운 변화중에 하나 입니다. 일일히 테스트 하는 것이 아니라 한번의 시나리오 녹화로 지속적인 테스트/재현이 가능하고 그 과정을 추적하는 할 수 도 있어서 고품질의 제품을 만들어 내는데 큰 도움이 될 것 같습니다.

Silverlight 5는 아직 시장에 나온 것은 아닙니다. 하지만 HTML5로 인해서 Silverlight가 약화 될 것이라는 추측이 나오고 있는 시기에 절묘한 타이밍으로 발표한 것은 아닌가 합니다.

 내년 봄 Silverlight 5 베타 버전이 발표되고 2011년 중에 정식 출시 될 예정이라고 합니다. Silverlight 5의 선전을 기대해 봅니다.
<그림16> Silverlight 5 출시 일정 발표
저작자 표시 변경 금지
신고
2010.11.26 16:28


Time

Presenter

Session Details

8:00 am

Breakfast

9:00 am

 Scott Guthrie

The Future of Silverlight

10:45 am

 Jesse Liberty

Data Binding Strategies with Silverlight and WP7

11:30 am

 Yavor Georgiev

Building Compelling Apps with WCF using REST and LINQ

12:15 pm

Lunch

1:00 pm

 Dan Wahlin

Building Feature Rich Business Apps Today with RIA Services

1:45 pm

 John Papa

MVVM: Why and How? Tips and Patterns using MVVM and Service Patterns with Silverlight and WP7

2:45 pm

 Tim Heuer

Tips and Tricks for a Great Installation Experience

3:30 pm

  Mike Cook &
  Jossef Goldberg

Tune Your Application: Profiling and Performance Tips

4:30 pm

 Jaime Rodriguez

Performance Tips for Silverlight Windows Phone 7

5:15 pm

After Party!


본사에서 하는 행사라... 참석은 어렵지만 온라인으로 참여는 가능하다고 합니다.
Silverlight와 관련해서 또 즐거운 콘텐츠들을 기대해 봅니다.

http://www.silverlight.net/news/events/firestarter   에서 자세한 내용은 보실 수 있습니다.

 

저작자 표시 변경 금지
신고
2010.11.03 09:22

PDC(Pro Developer Conference)에서 스티브 발머 회장(각주1)이 HTML5에 올인 하겠다는 발언이 Silverlight를 포기하는 것이 아닌가 하는 추측을 낳고 있다. 하지만 이와는 다르게 Microsoft에서 Silverlight의 중요성은 더욱더 커지고 있다. Silverlight는 버전을 더해 가면서 데스크탑, 웹, 모바일을 모두 하나의 기술로 지원하는 UI 플랫폼 기술로 자리 매김하고 있으며 앞으로도 더더욱 발전할 것으로 보인다.

각주 1
(내용중 일부를 수정합니다. 스티브 발머 회장의 발언이 아니라 밥 무글리아(Bob Muglia) server and tools business 의 발언이 잘못 오해되고 있습니다.)

저작자 표시 변경 금지
신고
2010.03.22 14:02

관련링크: http://code.msdn.microsoft.com/TfsBuildSLUnitTests/Release/ProjectReleases.aspx?ReleaseId=4074

Silverlight를 빌드 할 때 Unit Test를 쉽게 할 수 있게 해주는 프로젝트가 있어서 소개해 드립니다.
Unit Test나 여튼 테스트 작업 자체가 귀찮긴 하지만 소프트웨어의 품질 향상을 위하는 필수적인 요소인 것은 틀림없는 사실입니다.

Silverlight에서 Unit Test 시나리오가 소개 된지는 오래되었지만 Team Foundation Server 빌드와 테스팅을 함께 해주는 툴은 상당히 유용해 보입니다.
저작자 표시 변경 금지
신고
2010.03.15 20:39

1.RichTextArea Part 1
2.RichTextArea Part 2
3.Accessing Web Camera and Microphone
4.Right Click Mouse Events
5.MouseWheel API
6.Using Silverlight Controls As Drip Targets
7.DataGrid Enhancements
8.Printing API Basics 
9.Hosting HTML Content
10.Accessing the Global Clipboard Programmatically
11.Using the ViewBox Control
12.Asynchronous Data Validation 
13.BiDi and Right-to-Left Support 
14.Notification API
15.Local File Access
16.RIA Services support in Visual Studio 2010  
 

블로그 이미지 김영욱 차장 Microsoft Korea  .NET Evangelist
Enterprise UX 를 위한  UI 기술과 SOA, Cloud Computing, NUI등 다양한 분야의 접목과 응용을 통해 최적의 IT 인프라 구축을 위해서 노력하고 있다.
Email: iwinkey@hotmail.com
Blog: http://winkey.tistory.com

오늘 살펴 볼 내용은 .NET RIA Service 입니다.
최근 국내에 있는 모 업체와 접촉 할 일이 있었는데 단순 반복적인 개발이 많은 업무인지라 이를 어떻게 하면 좀 쉽고 간단하게 관리 할 수 있을까 하는 고민이 있었습니다. 또 다른 하나의 고민은 다른 건 다 바꾸어도 Database만큼은 기존에 사용하던 Oracle을 바꾸기가 쉽지 않다는 고민도 있었습니다.

이런 고민들에 딱 들어 맞는 프레임웍이 바로 RIA Service가 아닌가 합니다. (정식 명칭은 .NET RIA Service입니다. )
RIA Service는 원래 코드명은 알렉산드리아(Alexandria)로 추진되어 온 프로젝트 입니다.

대부분의 RIA 기반의 프로젝트는 그렇게 복잡하지 않고 트랜젝션이 중요하지 않은 경우가 많고 그리고 라이프 사이클이 짧은 특징을 대부분 가지고 있습니다. 이러한 특성들을 고려해서 MVVM(Model - View - View Model) 형태의 프레임웍으로 기획 된 것이 바로 오늘 날 이야기 하고 있는 RIA Service가 되었습니다.

RIA Service는 기본적으로 WCF를 통신 기반으로 하고 있으며 LINQ 혹은 Entity Framework을 함께 사용할 수 있게 되어 있습니다. UI에서는 Silverlight를 기반으로 한 몇 가지 기능들이 함께 포함되어 있습니다. 
 Visual Studio 2010 Beta를 설치해 보면 <그림1>과 같이 Silverlight Business Application이라는 이름의 탬플릿이 추가로 설치되어 있는 것을 볼 수 있습니다. 이 탬플릿을 사용해서 RIA Service를 사용할 수 있습니다. 물론 다들 아시겠지만 이 탬플릿을 사용하지 않더라도 활용할 수 있지만 그건 생고생의 길을 자쳐하므로 제발 그런 무모한 시도는 하지 않기를 미리 부탁 드립니다.

<그림1>Silverlight Business Application 탬플릿

오늘 예제를 실행해 보기 위해서는 또 하나 준비해야 하는 것이 바로 Sample Database 입니다. SQL Server 2000 까지는 Pubs와 Northwind와 같은 샘플이 제공되어서 뭘 하든 간에 쉽게 적용할 수 있었는데 이제는 추가로 설치해 주어야 하는 일이 되었습니다. 오늘은 Pubs를 사용할 예정입니다.

SQL Server에 아래 첨부된 쿼리를 실행 시키시면 샘플 데이터베이스와 테이블들이 자동으로 생성되게 됩니다.
<파일1>Pubs 생성 Query 파일

여기 까지 되었으면 이제 오늘의 요리를 위한 준비는 대충 끝났습니다. 참고로 글을 쓰고 있는 시점에서는 RIA Service는 Visual Studio 2010 RC를 사용할 수 있으며 닷넷 프레임웍의 타겟을 3.x로 놓게 되면 에러가 발생합니다. 4.0으로 놓고 프로젝트를 생성하시기 바랍니다.
<그림2>생성된 프로젝트

<그림2>에서 보면 생성된 프로젝트가 보이는데 Model 폴더와 Service 폴더를 눈여겨 보기 바랍니다. Model에는 데이터 모델을 생성하게 될 것이고 Service 폴더에는 Service와 관련된 코드를 작성할 예정입니다. (나중에 보면 전혀 작성하지 않고도 사용할 수도 있습니다. ^^)
 RIA Service를 사용하기 위해서는 Model --> Service --> UI 순으로 작업을 하시면 됩니다. 먼저 모델을 생성하기 위해서 Database를 연결해야 합니다.

작업에 앞서서 사용하게 될 Database를 생성해야 합니다. Database는 함께 설치되는 SQL Server Express를 사용할 예정입니다. Visual Studio가 설치될 때 별다른 옵션을 선택하지 않아도 함께 설치되는 버전이 SQL Server 2008 Express 버전인데 Database 엔진만 설치되는 것이 때문에 관리를 위해서는 별도의 관리 도구를 추가로 설치해 주는 것이 좋습니다.
아래 링크에서 SQL Server 2008 Management Studio Express 버전을 다운로드 받을 수 있습니다. 32/64bit가 별도로 제공되기 때문에 해당되는 버전을 다운로드 받아서 설치해 주시기 바랍니다.

http://www.microsoft.com/downloads/details.aspx?familyid=08e52ac2-1d62-45f6-9a4a-4b76a8564a2b&displaylang=en

SQL Server 2008 Management Studio Express를 통해서 앞에서 파일로 제공해 드린 파일을 실행 시키면 샘플 데이터 베이스인 pubs가 생성됩니다.

<그림3>데이터 베이스의 생성
데이터 베이스까지 생성되었으면 작업은 많이 진행되었습니다. 나머지는 이제 간단한 작업만으로 연결이 가능하기 때문입니다.

.NET RIA Service를 사용하기 위해서 LINQ를 사용할 수도 있고 Entity Framework을 사용하는 방법도 있지만 여기서는 Entity Framework을 사용하는 방법을 사용해 볼 생각입니다. Entity Framework을 사용하기 위해서 Connection을 연결해 두는 편이 편리하다.
 View 메뉴에서 Server Explorer를 불러낸다.

<그림4>Server Explorer
Server Explorer에서 Data Connections를 오른쪽 마우스로 선택해 보면 Add Connection을 선택할 수 있게 되는데 여기서 많이 해왔던 방식으로 Database를 연결할 수 있다. 여기서 SQL Server 를 예제로 쓰고 있다고 Entity Framework는 SQL Server만 지원한다고 오해하지 않기를 부탁드립니다. SQL Server는 OR Mapping 기술의 또 다른 형태로 Oracle과 같은 다른 Database도 다 충분히 사용할 수 있도록 설계되어 있는 기술입니다.

<그림5>Data Connection 설정

<그림5>까지 수행 했으면 <그림6>과 같이 연결되어 있는 것을 볼 수 있다.
<그림6>연결된 Pubs 데이터베이스
<그림5> Add Connection...

이제 데이터베이스와 연결이 되었으면 ADO.NET Entity Data Model을 추가해 볼 차례 입니다. 아까 생성된 Web 프로젝트에 보면 Model이라는 폴더가 보일 것 입니다. Model 폴더에서 새로운 아이템 추가를 선택해서 Data 행목에 있는 ADO.NET Entity Data Model을 Pubs.edmx로 추가해 봅니다.
<그림6>ADO.NET Entity Data Model

추가하고 나면 직접 Entity를 설계할 것인지 혹은 데이터베이스의 테이블로 부터 자동으로 생성할 것인지를 물어 봅니다. 여기서는 자동 생성을 선택합니다.
<그림7>Choose Model Contents

<그림8>데이터 연결 선택
<그림8>과 같이 미리 연결해 둔 데이터베이스를 선택합니다.  연결하면 이제는 기준이 될 데이터베이스 오브젝트를 선택하라고 나옵니다. 여기서는 Titles라는 테이블을 선택했습니다.

<그림8>테이블 선택
여기까지 하고 나면 확장자가edmx가 붙은 Entity 클래스가 자동으로 생성된 것을 볼 수 있습니다.

<그림9>생성된 Entity 클래스

<그림10>생성된 Entity 클래스는 Model Browser에서도 볼 수 있다.

클릭 몇번과 이름을 붙여주는 것 만으로 이미 Entity를 생성했습니다. 이제 서비스를 만들 차례입니다. 흔히 소프트웨어를 개발하는 사람들은 추가, 조회, 수정, 삭제 기능을 한 본이라고 이야기하고 프로젝트에서 최소 단위로 흔히 이야기 합니다. .NET RIA Service의 경우 별다른 작업을 하지 않아도 쉽게 한 본을 생성할 수 있게 해 줍니다.
<그림11>과 같이 Service 폴더에서 아이템 추가를 선택하고 Domain Service Class를 추가해 봅니다.
<그림11>Domain Service Class의 추가
Domain Service Class를 추가하고 나면 어떤 Entity를 사용할 것인 가를 선택할 수 있게 해 줍니다. 여기서는 이미 만들어 둔 pubsEntities를 선택합니다.

<그림12>Entity Class의 선택

신기한 것은 여기까지만 작업을 하고나면 자동으로 4가지 기능의 코딩이 끝나있다는 점입니다. 아래 소스를 보면 GetTitles(), InsertTitles(), UpdateTitles(), DeleteTitles()와 같이 네 가지 기능이 이미 생성되어 있는 것을 볼 수 있습니다.
<소스1>생성된 4가지 기능
벌써 서비스쪽 기능이 모두 완료 되었습니다. 이제 거의 막바지 작업을 할 시간입니다. 메뉴에서 Show Data Sources를 선택해 보면 Entity 목록을 볼 수 있습니다.

디자인에서 DataGrid를 추가하고 나서 Data Source에서 Titles를 선택해서 DataGrid에 드래그 앤 드롭해 하면 DataGrid와 Ttitles이 연결됩니다.

여기까지 하고 나면 Xaml 코드 상에 riaControls라는 객체가 추가 된 것을 볼 수 있습니다.

이제 F5을 눌러서 실행해 보면 Title 테이블의 내용이 DataGrid에 연결되어 나타나는 것을 볼 수 있습니다.

 마우스로 몇 번이면 될 것을 말로 설명하다 보니 설명이 길어졌습니다.
조만간 동영상으로 한번 찍어서 올려 볼까 합니다. ^^
저작자 표시 변경 금지
신고