검색결과 리스트
분류 전체보기 에 해당되는 글 656건
- 2010.03.22 Integrating Silverlight Unit Tests into TFS Build (2)
- 2010.03.18 바로 잡습니다. Windows Phone 7이 아니라 Windows Phone 7 Series 입니다. (2)
- 2010.03.18 라스베거스 MIX10을 한국에서 한국어로 보는 방법은? (2)
- 2010.03.17 POPCON]MIX10 두 째날 키노트 요약 강좌 (2)
- 2010.03.17 MIX10]표준으로 더 강력해진 IE9과 웹 플랫폼[4보 최종] (4)
- 2010.03.16 POPCON]MIX10 첫 째날 키노트 요약 강좌 (3)
- 2010.03.16 MIX10]Windows Phone 7 스마트폰 세상에 도전장을 던지다 (1)
- 2010.03.15 First Look Silverlight 4] RIA Service support in Visual Studio 2010 [16/16] (1)
- 2010.03.10 WPF Pixel Shader Effects Library
- 2010.03.10 MIX10 현지시간 3월 15~17일 사이에 열립니다.
관련링크: http://code.msdn.microsoft.com/TfsBuildSLUnitTests/Release/ProjectReleases.aspx?ReleaseId=4074
Silverlight를 빌드 할 때 Unit Test를 쉽게 할 수 있게 해주는 프로젝트가 있어서 소개해 드립니다.
Unit Test나 여튼 테스트 작업 자체가 귀찮긴 하지만 소프트웨어의 품질 향상을 위하는 필수적인 요소인 것은 틀림없는 사실입니다.
Silverlight에서 Unit Test 시나리오가 소개 된지는 오래되었지만 Team Foundation Server 빌드와 테스팅을 함께 해주는 툴은 상당히 유용해 보입니다.
Windows Phone 7이라고 칭하는 것은 공식적인 가이드라인에 맞지 않다고 합니다.
아래와 같이 두 가지 명칭중 하나를 선택해야 합니다.
- Windows Phone
- Windows Phone 7 Series
즉 버전이 들어가면 반드시 뒤에 Series를 붙이는게 공식적인 가이드 입니다.
Windows Phone 7 Series 많이 사랑해주세요 ^^
첫째 날에는 Windows Phone 7 Series
두째 날에는 Social Web/UX 를 각각 메인 테마로 준비했습니다.
참가 신청하시려면 UX Bakery(http://www.uxbakery.com) 에 접속해서 덧글을 남겨주시면 됩니다.
HTML5, CSS3
앞으로도 개발적인 세션에 대한 요약을 UX엔지니어(http://winkey.tistory.com)을 통해서 전달해 드리겠습니다.
댓글을 달아 주세요
미국 라스베거스에서 현재 진행중인 MIX10 행사의 둘 째날 행사에서는 웹과 관련된 이야기가 풍성하게 흘러나왔습니다. 다음 버전의 웹 브라우저인 Internet Explorer 9(이하 IE9), 웹 개발 플랫폼인 ASP.NET MVC2, ASP.NET AJAX4 그리고 Windows Azure 기반의 Dallas등 다양한 기술 이야기들이 나왔지만 웹과 관련된 가장 큰 이야기는 바로 "웹 표준"이었습니다.
1. 웹 표준을 준수하는 고성능 웹 브라우저 IE9
IE9의 가장 큰 변화점은 HTML5과 성능 향상 이렇게 두 가지를 이야기 할 수 있습니다.
IE9은 최근 가장 크게 이슈가 되고 있는 HTML 5을 적극적으로 준수하고 있습니다. 또 CSS 3, DOM, ECMA Script 252과 같은 웹표준들을 지원하므로써 IE8부터 시작한 웹 표준을 준수하는 웹 브라우저라는 기조를 자연스럽게 이어가고 있습니다. 웹 표준을 테스트하는 Acid3 테스트는 IE8가 20점이 IE9은 50점이 나와서 훨씬 웹 표준을 잘 지원하는 것으로 나타났습니다.
HTML 5에서는 동영상 재생과 같은 요소들이 기본 HTML5에 정의된 내용만으로 가능하게 설계되어 있습니다. 국내외 대형 업체들 중에는 벌써 HTML 5에 기본 스펙으로 정의된 동영상 기능을 바로 사용하려는 시도들이 공식적으로 나오고 있는 데 <그림3>에서 보면 IE9에서 YouTube 동영상을 재생하는 모습을 볼 수 있는데 마우스 오른쪽 버튼을 눌러보면 Flash가 없이 실행되고 있는 것을 볼 수 있습니다.
또 하나가 IE9의 경우 성능향상이 눈에 띄게 이루어졌는데 이렇게 비약적인 성능향상이 가능했던 이유는 이미 대중화 되어 있는 멀티코어 CPU의 성능을 잘 활용하고, HTML5와 화면 랜더링이 하드웨어 가속 기능을 잘 활용할 수 있게 된데 있습니다. 특히 자바스크립트 엔진과 Direct2D 기술이 잘 접목된 형태는 표준과 성능 두 가지가 잘 접목된 형태의 IE9이 탄생할 수 있도록 해주었습니다.

<그림4>놀라운 성능 향상을 보여주고 있는 IE9의 자바스크립트 엔진
| Browser | Sunspider Result Average (ms) |
|---|---|
| IE8 | 3825.53 |
| Opera 10.10 | 2491.93 |
| IE9 PDC 2009 Demo | 834.00 |
| Firefox 3.6 | 699.80 |
| Firefox 3.7 Alpha2 Pre-Release | 610.20 |
| IE9 Mix 2010 Platform Preview 1.9.7745.6019 | 598.80 |
| Safari 4.0.5 (531.22.7) | 407.93 |
| Chrome 4.0.249.89 | 373.87 |
| Chrome 5.0.342.2 (dev) | 293.47 |
| Opera 10.5 | 285.20 |
작년 PDC09에서 공개되었던 데모에 비해서도 30% 정도의 성능 향상을 볼 수 있습니다. 하지만 아직 최종 버전이 아닌 점을 감안해 볼 때 최종 출시되는 버전의 성능이 기대 됩니다.
새로운 IE9의 랜더링 엔진은 성능 뿐 아니라 섬세한 표현 면에서도 좋아진 모습을 보여주었습니다. IE와 <그림5>의 내용은 폰트를 400% 이상 확대한 경우인데 이런 경우에도 폰트의 곡선 부분이 매끄럽게 표현되는 것을 볼 수 있습니다.
IE9은
- 현재의 하드웨어(멀티코어 CPU)등을 활용하는 새로운 자바 스크립트 엔진
- HTML5, CSS3, DOM, SVG... 등 다양한 웹 표준의 준수
- 현재 웹에 대한 현재 하드웨어(GPU)를 통한 가속 기능의 활용
- HTML5 Video에 대한 하드웨어 가속(지원 예정)
등을 주요 특징으로 이야기 할 수 있습니다.
2. 한 단계 더 올라선 성숙한 웹 개발 플랫폼
Microsoft 웹 개발 플랫폼도 MIX10에서 좀 더 성숙한 모습을 보여주고 있습니다. 여기서 성숙한 모습을 보여주고 있다는 표현을 사용하는 것은 MIX10에서 새로 발표되는 내용은 많지 않았기 때문 입니다. 이미 작년 PDC09 행사나 또 다른 채널을 통해서 관심있는 분들은 많이 접해왔기 때문에 새로움은 덜했습니다.
Microsoft 웹 개발의 핵심에는 .NET 기반의 기술인 ASP.NET이 자리 잡고 있으며 ASP.NET 기반의 기술인 ASP.NET MVC2, ASP.NET AJAX4와 같은 기술들이 자리잡고 있습니다.
복잡하고 여러가지 기술을 사용해야 하는 웹 기반의 개발에는 필연적으로 스마트하고 강력한 개발툴의 지원이 필연적이라고 할 수 있는데 그런면에서 Microsoft의 Visual Studio 2010은 현존한는 최고의 개발 툴 중에서도 백미라고 할만큼 많은 기능들을 자동화 시키고 개발자들을 잘 이해하고 있는 툴로 나왔습니다.
다양한 부가기능 들이 많이 소개가 되었지만 개발자들은 개발 툴에서 멀티 모니터를 지원하는 것에 격한 호응을 보내주는 모습을 보였는데 두개 이상의 모니터를 사용해서 개발 할 경우 소스나 다이어그램과 같은 요소들을 별개의 창에 배치하고 개발할 경우 개발 생산성이 대단히 높아지기 때문입니다.
이외에도 향상된 IntelliSense나 Code Navigation등도 개발자의 작업에 큰 도움이 될 수 있는 요소들이 아닐까 합니다.
이외에도 Visual Studio 2010에서는 프로그램의 프로파일링과 디버깅 테스트 시나라오등을 통해서 품질을 향상시킬 수 있는 요소들이 많이 포함되었습니다.
ASP.NET의 경우도 ViewState를 가볍게 하고 사용자 친화적인 URL를 사용할 수 있는 구조로 바꾸는 등 사용자들의 요구사항을 충실히 반영하고 있는 것을 볼 수 있습니다. 특히 .NET Framework 3.5 SP1에서 선보였던 ASP.NET MVC는 MVC2로 업그레이드 되면서 한층 더 성숙한 모습을 보여주고 있습니다.
ASP.NET MVC2의 주요 변화로는 다음과 같은 요소들을 이야기 할 수 있습니다.
-ASP.NET MVC2는 클라이언트와 서버 양측에서 데이터를 검증
-새로운 UI와 자동으로 추가,수정,조회,삭제를 생성해주는 Scaffolding 기능의 강화
-Modular/Reusable 프로젝트
-Visual Studio와 좀 더 잘 통합된 기능
들을 제공하고 있습니다. 특히나 자바스크립까지 지원하는 IntelliSense 기능은 JQuery와 같은 자바스크립트 오픈소스 기반의 프레임웍을 .NET에서 기본으로 제공하는 수준의 개발 편의성을 제공할 수 있습니다.
Microsoft는 ASP.NET MVC를 내어 놓으면서 JQuery를 기본으로 포함하고 있으며 이와 관련한 지원을 지속적으로 해오고 있는데 JQuery는 자바스크립트 기반의 오픈소스에서 사실상 표준으로 사용되고 있는 오픈 소스 프레임웍입니다. 이 날 행사에서는 JQuery의 창시자인 John Resig가 직접 출연해서 많은 관심을 모았습니다.
언제부터 인지 Microsoft의 개발 플랫폼도 표준을 통한 오픈과 오픈을 통한 표준 두 가지 방면에서 모두 노력을 하고 있으며 그 결과물이 이번 MIX10을 통해서 발표될 수 있었던 것 같습니다.
3. 누구나 함께 하는 웹 세상을 위한 진보
Web 환경과 생태계를 지원하는 위한 프로젝트가 바로 Web Platform Installer로 http://www.microsoft.com/web 에서 제공하고 있습니다. 여기서는 Windows만 설치되어 있는 컴퓨터를 자연스럽게 웹 서버나 웹 개발 환경으로 바꾸어 주는 기능들일 모두 제공하고 있습니다.
웹서버와 개발 플랫폼 그리고 개발도구와 공개된 웹 애플리케이션까지 모두 웹에서 다운로드 받아서 설치하게 해주는데 최근에는 국내에서 많이 사용되고 있는 XE엔진과 같은 PHP기반의 소스들도 함께 업로드 되어 있습니다.
또 하나가 OData(Open Data) 형식을 적극적으로 활용하기 시작했다는 점인데 OData란 웹에서 데이터를 주고 받을 때 사용하는 데이터의 형식을 정의한 표준으로 http://www.OData.org에서 관련된 정보를 받을 수 있습니다.
현재 OData는 Microsoft, Google, Apple 등 많은 기업의 제품에서 활용될 수 있으며 아래와 같은 언어의 SDK를 홈페이지에서 제공하고 있습니다.
Microsoft는 기업 포탈로 활용되고 있는 SharePoint 2010에서도 OData를 적극적으로 사용하고 있으며 웹 개발 플랫폼에도 확장 기능으로 사용할 수 있게 하고 있습니다.
4. 둘째 날 키노트를 정리하면서
첫째 날 Windows Phone 7 만큼 충격과 놀라움은 없었지만 최소한 Microsoft의 웹 기술들이 방향을 표준을 통한 시장의 확대로 방향을 잘 잡아가고 있음을 보여주고 있었던 것 같습니다.
HTML5, CSS3와 같은 요소들은 아직 그 스펙이 확정되지 않았음에도 불구하고 적극적으로 제품에 반영하고 또 표준 스펙에도 참여하고 있는 것은 최소한 웹 세상에서 만큼은 표준을 통해서 시장이 형성되고 있는 있는 현실을 잘 반영하고 있는 것이라 느껴 집니다.
한가지 걱정은 IE9의 정식 출시 시기인데 IE9의 출시 시기에 따라서 국내에는 또 한번 호환성 검증을 하느라고 부산을 떨 것 같은 느낌을 지울 수 없습니다. 국내 환경도 빨리 IE6를 정리하고 웹 표준에 맞추어서 잘 업그레이드 되기를 바라 마지 않습니다.
---(*)---
| 김영욱 차장 Microsoft Korea .NET Evangelist Enterprise UX 를 위한 UI 기술과 SOA, Cloud Computing, NUI등 다양한 분야의 접목과 응용을 통해 최적의 IT 인프라 구축을 위해서 노력하고 있다. Email: iwinkey@hotmail.com Blog: http://winkey.tistory.com |
Silverlight 4는 PDC09에서 나온 내용과 크게 달라지지 않았지만 Windows Phone 7은 놀라움 그 자체였습니다.
자세한 내용은 http://winkey.tistory.com 를 참조하시기 바랍니다.
내일 새벽에도 Twitter @winkey7에서 실시간으로 함께 하실 수 있습니다.
그럼 다같이 MIX10으로 고고싱~~~ http://live.visitmix.com/
댓글을 달아 주세요
1. 새로운 사용자 경험
2. 새로운 개발 플랫폼
3. 표준화된 하드웨어
MIX10의 키노트가 진행되는 동안 위의 세 가지 메시지를 일관되게 전달하려는 노력이 엿보였으며 실제로 같이 키노트를 지켜보던 트위터들은 '기존의 Windows Phone에 대한 불만을 종식시키고도 남았다'는 후한 점수를 아낌없이 주기도 했습니다.
1.새로운 사용자 경험
특히나 터치로 대변하는 최근의 인터페이스 방식의 트랜드에 맞추어서 부드럽고 자연스러운 터치감을 보여주었으며 성능적인 이슈도 볼 수 없었습니다. Windows Phone 6.5에서도 기본 Phone OS 만으로는 가볍게 동작했던 것으로 봐서는 제조사들이 추가적인 커스터마이징을 자제하고 최대한 가볍게 출시한다면 WP7의 경우는 만족할 만한 터치 감을 제공할 수 있을 것으로 기대해도 좋을 것 같습니다.
또 Microsoft의 최신 클라이언트 개발 플랫폼인 Silverlight를 기본 유저 인터페이스 기술로 채택해서 자연스럽고 부드러운 인터페이스를 만들어 내는데 성공했습니다. Silverlight의 경우는 기존에 Web과 PC용 소프트웨어를 개발하던 개발자들이 쉽게 사용할 수 있다는 것이 큰 장점으로 보입니다.
센서와의 통합도 자연스럽게 되어서 가로보기와 같은 기능들이 자연스럽게 동작하는 것을 볼 수 있습니다.
스마트 폰의 가장 큰 존제 이유라면 네트워크와 연계된 다양한 기능이라고 이야기 할 수 있는데 이런 면에서도 WP7은 재미있는 접근을 하고 있습니다.
PC 환경에서 실행중인 프로그램의 기능을 자연스럽게 모바일 환경으로 전환한 사례로 Twitter 소프트웨어를 보여주었습니다.
Microsft는 PC에서만 사용되던 기능들을 자연스럽게 모바일 전환하고 또 다시 모바일에서 TV로 연동하는 플랫폼 전략을 가지고 있으며 이를 3 스크린 전략이라고 알려져 있습니다. Windows Phone에서는 다시 한번 Microsoft의 3 스크린 전략을 확인 시켜 주었으며 이로써 Microsoft는 3 스크린에 한발 더 다가서게 되었습니다.
하지만 플랫폼 전략이고 뭐고 간에 사용자들은 사용하기 쉽고 재미있는 플랫폼을 원합니다. Microsoft는 자사의 MP3 플래이어인 Zune HD안에서 게임 플랫폼인 XNA을 선보인바 있으며 가볍고 강력한 성능으로 주목을 받은 바 있습니다.
XNA 플랫폼의 가장 큰 특징이라고 하면 하나의 게임 플랫폼으로 PC, 게임콘솔 그리고 모바일까지 한번에 다 커버하는 유일한 게임 플랫폼이라는 점인데 이를 통해서 게임 개발사는 하나의 컨셉으로 다양한 PC, XBOX, WP7까지 다양한 플랫폼을 한번에 제공할 수 있게 되었습니다.
물론 각각의 플랫폼에 개개별로 차이는 있을 수 있지만 최소한의 노력의 컨버전 할 수 있다는 점은 상당히 고무적인 사실로 받아들여 지고 있습니다.
2.새로운 개발 환경의 제공
iPhone 성공의 이면에는 많은 이야기가 있지만 누가 봐도 가장 큰 성공 요인은 App Store의 성공적인 등장에 있다고 보는게 대체적인 지론일 것입니다. 그래서 그런지 요즘은 새로운 디지털 환경의 등장에는 더 많은 소프트웨어 개발자들을 확보하려는 보이지 않는 경쟁이 아주 치열합니다.
개발자들에게 판매수익을 나누는 방식으로 실질적인 매리트를 제공하는 데 WP7에서도 마켓 플레이스가 이와 같은 역할을 담당 합니다.
오늘 MIX10에서는 마켓플레이스에 관해서는 아직 많은 내용이 나오지는 않았지만 WP7 앱들과 콘텐츠를 제공하는 통로로 활용될 것이라는 건 누구나 알고 있는 사실입니다.
마켓플레이스는 앱스와 콘텐츠의 흐름을 관할하는 것이라면 실제로 애플리케이션을 개발하고 디자인하는 도구들은 개발자들에게 제공되어야 합니다. Microsoft는 이와 관련 기능들을 제공하기 위해서 다음과 같은 툴들을 제공하고 있습니다.
Visual Studio 2010 for Windows Phone: 소프트웨어 개발자들을 위한 개발 도구
Expression Blend 4 for Windows Phone: 디자이너들을 위한 저작 도구
XNA Game Studio 4.0 for Windows Phone: 게임 개발을 위한 개발 도구
특히 Expression Blend 4.0의 경우는 모바일 엡을 위한 디자인 툴로는 최초로 제공되는 것으로 화면 요소에 대한 디자인 뿐만 아니라 각종 효과나 데이터의 연결까지 할 수 있는 완성도 높은 디자인 툴로 인정받고 있습니다.
국내에서 게임 산업은 아직 PC를 주력으로 해서 아주 천천히 게임 콘솔과 모바일로 넘어가고 있는 중입니다. 국내 게임 개발사의 대부분은 Windows 기반의 기술을 가지고 있는 개발자들이 대부분이며 이들 중 상당부분은 간단한 추가적인 학습만으로도 XNA을 사용할 수 있다고 합니다.
따라서 기존의 PC버전의 게임을 만들던 업체들의 경우 XNA을 통해서 모바일과 게임콘솔인 XBOX 시장으로 영역확장이 수월해질 것으로 보입니다.
실제로 시연된 데모중에는 XNA을 사용해서 개발된 게임을 보여주기도 했는데 WP7과 XBOX에서 실행되는 모습도 보여주었습니다.
하지만 더욱 놀라운 사실은 이와 관련된 모든 개발도구들이 무료로 제공되는 점입니다. WP7과 관련된 개발도구들은 모두 별도의 무료버전이 존재하고 있으며 이들은 모두 http://developer.windowsphone.com 에서 다운로드 할 수 있습니다.
3.표준화된 하드웨어
Windows Mobile은 표준적인 하드웨어 스펙을 요구하고 있습니다. 이는 하드웨어의 표준을 통해서 사용자들에게 일괄된 경험과 품질을 제공하기 위한 것으로 http://wmpoweruser.com/?p=7528 에 보면 다음과 같이 제시 되고 있습니다. Windows Phone은 Chassis 1과 Chassis 2로 나눈다고 알려져 있으며 Chassis 1은 일반적인 터치폰 타입이라면 Chassis 2는 쿼티 키보드가 포함된 메시지 위주의 타입으로 알려져 있습니다.
WM7 Chassis 1 Specification
Core requirements:
Processor: ARM v6+, L2 Cache, VFP, Open GL ES 2.0 graphics HW (QCOM 8k, Nvidia “Tegra” AP15/16* and TI 3430 all meet spec)
Memory: 256MB+ DRAM, 1G+ Flash (at least 512MB fast flash – 5MB/s unbuffered read @4K block size)
Display: WVGA (800×480) or FWVGA (854×480) 3.5” or greater diagonal
Touch: Multi-touch required
Battery: Sufficient to meet Days of Use LTK requirements.
Controls: Start, Back, Send and End are required (soft controls allowed as long as they are always present).
Peripherals:
Camera: 3MP+, flash optional, 2nd camera optional (VGA resolution sufficient)
GPS: aGPS required
Sensors required: Light Sensor, Compass (3 axis, 5 degrees, 100 Hz sample rate), Accelerometer (3 axis, 2mg resolution, 100 Hz sample rate)
USB: High speed required, 20 MB/s transfer rate.
BlueTooth: BT2.1 required, must run MSFT BT stack, CSR BlueCore6 or later recommended.
Wi-Fi: 802.11B/G required, must run MSFT Native Wi-Fi stack, Atheros 6002 or Broadcomm 4325 recommended.
Connectors: Micro USB and 3.5mm Audio required.
Options:
FM tuner: If tuner HW is present it will be detected and supported by the Media application.
Haptics
SD Card (Micro SD recommended)
DPAD, qwerty or 12/20 key keyboards all optional
The die is cast!!
MIX10을 통해서 Windows Phone 7의 주사위는 던져졌습니다. 월등이 좋아진 사용자의 경험, 뛰어난 개발 플랫폼 그리고 표준화된 하드웨어를 통해서 WP7은 스마트폰 시장에 새롭게 도전장을 내밀었습니다. 하지만 승자도 패자도 아닌 새로운 도전자의 모습의 착실히 준비해 왔다는 느낌을 지울 수 없는 것은 높은 완성도는 둘 째로 하더라도 WP7 자체의 움직임에서 스마트폰 2차 대전에 대한 자신감 같은 것을 읽을 수 있었기 때문입니다.
MIX10에서 소개된 Windows Phone 7에 관한 내용은 UX Bakery(http://www.uxbakery.com) 에서 2010년 3월 24일 포스코 센터 서관 5층에서 진행되는 세미나에서도 다뤄질 예정입니다.
---(*)---
| 김영욱 차장 Microsoft Korea .NET Evangelist Enterprise UX 를 위한 UI 기술과 SOA, Cloud Computing, NUI등 다양한 분야의 접목과 응용을 통해 최적의 IT 인프라 구축을 위해서 노력하고 있다. Email: iwinkey@hotmail.com Blog: http://winkey.tistory.com |
First Look Silverlight 4] RIA Service support in Visual Studio 2010 [16/16]
Silverlight 2010. 3. 15. 20:391.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를 사용할 수 있습니다. 물론 다들 아시겠지만 이 탬플릿을 사용하지 않더라도 활용할 수 있지만 그건 생고생의 길을 자쳐하므로 제발 그런 무모한 시도는 하지 않기를 미리 부탁 드립니다.
오늘 예제를 실행해 보기 위해서는 또 하나 준비해야 하는 것이 바로 Sample Database 입니다. SQL Server 2000 까지는 Pubs와 Northwind와 같은 샘플이 제공되어서 뭘 하든 간에 쉽게 적용할 수 있었는데 이제는 추가로 설치해 주어야 하는 일이 되었습니다. 오늘은 Pubs를 사용할 예정입니다.
SQL Server에 아래 첨부된 쿼리를 실행 시키시면 샘플 데이터베이스와 테이블들이 자동으로 생성되게 됩니다.
여기 까지 되었으면 이제 오늘의 요리를 위한 준비는 대충 끝났습니다. 참고로 글을 쓰고 있는 시점에서는 RIA Service는 Visual Studio 2010 RC를 사용할 수 있으며 닷넷 프레임웍의 타겟을 3.x로 놓게 되면 에러가 발생합니다. 4.0으로 놓고 프로젝트를 생성하시기 바랍니다.
<그림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가 생성됩니다.
데이터 베이스까지 생성되었으면 작업은 많이 진행되었습니다. 나머지는 이제 간단한 작업만으로 연결이 가능하기 때문입니다.
.NET RIA Service를 사용하기 위해서 LINQ를 사용할 수도 있고 Entity Framework을 사용하는 방법도 있지만 여기서는 Entity Framework을 사용하는 방법을 사용해 볼 생각입니다. Entity Framework을 사용하기 위해서 Connection을 연결해 두는 편이 편리하다.
View 메뉴에서 Server Explorer를 불러낸다.
Server Explorer에서 Data Connections를 오른쪽 마우스로 선택해 보면 Add Connection을 선택할 수 있게 되는데 여기서 많이 해왔던 방식으로 Database를 연결할 수 있다. 여기서 SQL Server 를 예제로 쓰고 있다고 Entity Framework는 SQL Server만 지원한다고 오해하지 않기를 부탁드립니다. SQL Server는 OR Mapping 기술의 또 다른 형태로 Oracle과 같은 다른 Database도 다 충분히 사용할 수 있도록 설계되어 있는 기술입니다.
<그림5>까지 수행 했으면 <그림6>과 같이 연결되어 있는 것을 볼 수 있다.
이제 데이터베이스와 연결이 되었으면 ADO.NET Entity Data Model을 추가해 볼 차례 입니다. 아까 생성된 Web 프로젝트에 보면 Model이라는 폴더가 보일 것 입니다. Model 폴더에서 새로운 아이템 추가를 선택해서 Data 행목에 있는 ADO.NET Entity Data Model을 Pubs.edmx로 추가해 봅니다.
추가하고 나면 직접 Entity를 설계할 것인지 혹은 데이터베이스의 테이블로 부터 자동으로 생성할 것인지를 물어 봅니다. 여기서는 자동 생성을 선택합니다.
<그림8>과 같이 미리 연결해 둔 데이터베이스를 선택합니다. 연결하면 이제는 기준이 될 데이터베이스 오브젝트를 선택하라고 나옵니다. 여기서는 Titles라는 테이블을 선택했습니다.
여기까지 하고 나면 확장자가edmx가 붙은 Entity 클래스가 자동으로 생성된 것을 볼 수 있습니다.
클릭 몇번과 이름을 붙여주는 것 만으로 이미 Entity를 생성했습니다. 이제 서비스를 만들 차례입니다. 흔히 소프트웨어를 개발하는 사람들은 추가, 조회, 수정, 삭제 기능을 한 본이라고 이야기하고 프로젝트에서 최소 단위로 흔히 이야기 합니다. .NET RIA Service의 경우 별다른 작업을 하지 않아도 쉽게 한 본을 생성할 수 있게 해 줍니다.
<그림11>과 같이 Service 폴더에서 아이템 추가를 선택하고 Domain Service Class를 추가해 봅니다.
Domain Service Class를 추가하고 나면 어떤 Entity를 사용할 것인 가를 선택할 수 있게 해 줍니다. 여기서는 이미 만들어 둔 pubsEntities를 선택합니다.
신기한 것은 여기까지만 작업을 하고나면 자동으로 4가지 기능의 코딩이 끝나있다는 점입니다. 아래 소스를 보면 GetTitles(), InsertTitles(), UpdateTitles(), DeleteTitles()와 같이 네 가지 기능이 이미 생성되어 있는 것을 볼 수 있습니다.
벌써 서비스쪽 기능이 모두 완료 되었습니다. 이제 거의 막바지 작업을 할 시간입니다. 메뉴에서 Show Data Sources를 선택해 보면 Entity 목록을 볼 수 있습니다.
디자인에서 DataGrid를 추가하고 나서 Data Source에서 Titles를 선택해서 DataGrid에 드래그 앤 드롭해 하면 DataGrid와 Ttitles이 연결됩니다.
여기까지 하고 나면 Xaml 코드 상에 riaControls라는 객체가 추가 된 것을 볼 수 있습니다.
이제 F5을 눌러서 실행해 보면 Title 테이블의 내용이 DataGrid에 연결되어 나타나는 것을 볼 수 있습니다.
마우스로 몇 번이면 될 것을 말로 설명하다 보니 설명이 길어졌습니다.
조만간 동영상으로 한번 찍어서 올려 볼까 합니다. ^^
사진이나 동영상 혹은 씬의 전환에 사용하면 괜찮을 것 같습니다.
http://wpffx.codeplex.com/
http://www.codeplex.com/transitionals
댓글을 달아 주세요
개발자의 디자이너를 위한 행사인 MIX가 열립니다.
이번에도 Silverlight 4, ASP.NET MVC와 같은 대박 기술에 대한 세션들이 기대되고 있는 가운데 Windows Mobile 7.0이 이야기 될 것 같습니다.
한국 마이크로소프트에서도 5명이 참가해서 발빠르게 좋은 정보들을 전달해 주실 예정입니다.
트위터 @winkey7과 본 블로그를 통해서도 핵심 이슈들을 빠르게 정리해 드리도록 하겠습니다.
또 하나 UX Bakery에서도 MIX 10의 방대한 내용을 정리하는 "MIX 10 다시 보기" 세미나를 3월 24일과 3월 30일 양일에 걸쳐서 진행한다고 합니다. 관련한 공지를 곧 올리도록 하겠습니다.
MIX와 관련한 가장 빠르고 정확한 채널 UX 엔지니어(http://winkey.tistory.com) 과 UX Bakery(http://www.uxbakery.com)에서 함께 하십시오
instpubs.sql
댓글을 달아 주세요
와우~
이렇게 되면 실버라이트 어플리케이션을 여러개의 서브 어플리케이션으로 나누어 여러사람이 공동 개발하기 용이 할듯 하네요 ^^
네 사이즈가 크거나 난이도가 다소 있거나.. 다양한 케이스에 잘 맞을 것 같습니다. ^^