'번역/ScottGu's Blog'에 해당되는 글 25건

  1. 2008.03.18 IIS 7.0 비트 레이트 쓰로틀링 모듈 발표
  2. 2008.02.28 처음 만나는 익스프레션 블렌드를 이용한 실버라이트 2
  3. 2008.02.22 파트 1: 실버라이트 2와 VS 2008을 사용하여 "Hello World" 만들기
  4. 2008.02.22 처음 만나는 실버라이트 2
  5. 2008.02.19 .Net 3.5 클라이언트 제품 로드맵
  6. 2008.02.17 2월 17일 링크 모음 : ASP.NET, ASP.NET AJAX, Visual Studio, .NET
  7. 2008.02.08 VS 2008 웹 개발 핫픽스 보완
  8. 2008.02.06 2월 6일 링크 모음: ASP.NET, ASP.NET AJAX, Visual Studio, .NET, WPF
  9. 2008.02.01 MIX08
  10. 2008.01.29 VS 2008 웹 배포 프로젝트 지원이 출시 되었습니다.

IIS 7.0 비트 레이트 쓰로틀링 모듈 발표

번역/ScottGu's Blog 2008. 3. 18. 00:25

원문 : IIS 7.0 Bit Rate Throttling Module Released

웹에서 동영상을 보는 것은 이제 아주 일반적인 시나리오입니다. 대부분의 주요 사이트들은 비디오를 다양한 형식(제품 동영상, 트레이닝 동영상, 화려한 광고 동영상, 사용자가 작성한 컨텐트 ) 으로 웹과 통합하고 있습니다.

사이트에 동영상을 추가하는데 있어 가지 이슈는 동영상을 전송하는데 비용이 많이 든다는 것입니다. 네트워크 대역폭을 사용하는 것은 많은 비용이 드는 일입니다. 동영상의 화질이 좋을수록 비용은 빠르게 늘어납니다.

아래 블로그 포스트에는 동영상을 전송할 비용을 줄일 있는 방법에 대한 개요가 있습니다. 그리고 며칠 전에 발표된 IIS 7.0 Bit Rate Throttling Module 다운로드에 대한 안내도 있습니다. IIS 7.0 Bit Rate Throttling Module IIS 서버에서 동영상을 서비스할 드는 비용을 줄이고, 모든 종류의 동영상 기술(실버라이트, 윈도우즈 미디어 플레이어, 플래시) 지원합니다.

옵션 1 : 동영상 호스팅 서비스를 사용

동영상의 대역폭에 드는 비용을 줄일 잇는 가지 방법은 유투브나 Microsoft Silverlight Streaming Service 같은 동영상 호스팅 서비스를 받는 것입니다.

실버라이트 스트리밍 서비스를 사용하면 무료로 10GB 까지 동영상을 업로드 있으며 달에 5 테라바이트까지 다운로드를 있습니다. (최고 속도 1.4Mbps). 동영상은 개발자가 작성한 실버라이트 클라이언트에 있습니다. 말은 실버라이트 스트리밍 서비스 동영상을 보기 위해서 특정 동영상 플레이어나 필요하지 않으며, 동영상 재생 시에 서비스 로고나 워터마크나 나타나지도 않는다는 의미입니다. 따라서 동영상을 자신의 사이트에 통합하고 UI 자유스럽게 바꿀 수도 있습니다.

옵션 2 : 자신의 서버에서 동영상을 호스팅

경우에 따라서는 동영상 호스팅 서비스가 올바른 선택이 아닐 수도 있습니다. (예를 들자면, 사용자 인증을 커스터마이징하거나, 아주 동영상을 재생하거나, 동영상에 광고를 삽입하는 경우 등을 있겠습니다.) 이럴 경우에는 자신만의 동영상 서버를 구축하여야 합니다.

자신의 서버에서 동영상을 전송하는 방법에는 대체로 가지가 있습니다. 스트리밍과 우선 재생 방법이 그것입니다.

스트리밍 서버 시나리오

스트리밍 시나리오에서는 클라이언트(실버라이트, 윈도우 미디어 플레이어, 플래시, 리얼 네트웍스 ) 스트리밍 서버에 접속합니다. 그럼 클라이언트는 스트리밍 서버로부터 동영상 스트림을 내려받을 있으며, 보통은 동영상 스트리밍을 앞뒤로 건너뛰거나 일시 중지하거나 정지할 수도 있습니다. 사영자가 브라우저를 닫거나 다른 페이지로 이동하면 동영상 스트리밍은 자동적으로 전송이 중지됩니다.

윈도우 미디어 서비스(WMS) 윈도우 운영체제용 무료 스트리밍 서버인데 윈도우 미디어 플레이어와 크로스 플랫폼 실버라이트 브라우저 클라이언트를 모두 지원합니다. 이는 주문형 파일 스트리밍 시나리오(예를 들어 .wmv 파일의 스트리밍) 실시간 스트리밍 시나리오(예를 들면 실시간으로 진행 중인 올림픽 중계) 모두 지원합니다.

윈도우 미디어 서비스는 모든 버전의 윈도우 서버에서 사용할 있습니다. 이에는 새로운 윈도우 서버 2008 서버 에디션도 포함됩니다. (4개의 프로세서와 32GB , IIS, ASP.NET, SharePoint, 윈도우 미디어 서비스를 지원함에도 불구하고 가격은 $469 불과합니다.)

우선 재생 다운로드 시나리오

우선 재생 다운로드 시나리오에서는 클라이언트가 서버로부터 곧바로 동영상을 다운로드하기 시작하고, 재생하기에 필요한 동영상이 다운로드 되는대로 재생을 시작합니다.

우선 재생 다운로드 방법을 사용할 때의 장점은 서버를 설정하는 것이 매우 쉽다는 것입니다. 동영상을 서버에 복사하거나 FTP 전송하고, URL 얻어 동영상 클라이언트 플레이어에 전달만 하면 됩니다. 외에는 어떠한 서버의 설정도 필요하지 않으며, 당연히 스트리밍 서버를 설치할 필요도 없습니다.

우선 재생 다운로드 방법의 단점은, 서버는 기본적으로 파일을 가능한 빨리 다운로드 하도록 설계되었다는 것입니다. 그래서 사용자가 사이트의 동영상을 클릭하면, 서버는 가능한 빨리 동영상을 전송하려고 합니다. 이런 상황은 사용자가 동영상 전체를 보려고 하는 경우에는 적당합니다. 하지만 사용자가 동영상의 절반만 보는 경우(또는 다른 페이지로 이동하는 경우)에는 보여지지도 않는 동영상이 모두 다운로드 되어야 합니다.

만일 보여지지 않은 동영상 컨텐츠가 메가바이트(혹은 메가바이트) 달한다면, 이는 엄청난 대역폭의 낭비라고 있습니다.

IIS 7.0 비트 레이트 쓰로틀링 모듈

지난 주에 IIS 팀은 우선 재생 다운로드를 훨씬 저렴하게 사용할 있는 무료 IIS 7.0비트 레이트 쓰로틀링 모듈을 발표하였습니다.

비트 레이트 쓰로틀링 모듈을 사용하면 IIS 서버에서 모든 종류의 미디어 컨텐트를 다운로드 하는 대역폭 쓰로틀링 룰을 쉽게 설정할 있습니다. (.WMV, .MOV, .FLV, .MP3 파일 포함)

간략하게 이야기하자면, 비트 레이트 쓰로틀링 모듈은 IIS 파일을 요청 받았을 미디어 컨텐트의 앞부분을 신속하게 전송하게 하는 일을 합니다. 기본적으로는 마임 타입과 파일의 비트 레이트 인코딩을 조사하여 20초간 재생될 분량의 미디어 파일을 최대한 빨리 내려 보냅니다. 동영상 재생이 20초에 이르면 IIS 비트 레이트 쓰로틀링 모듈은 파일의 비트 레이트 인코딩과 같게 전송 속도를 떨어뜨립니다. 또한 클라이언트의 동영상 플레이어를 감시하고 있다가 사용자가 페이지를 닫거나 다른 곳으로 이동을 하면 자동으로 남은 파일의 전송을 취소합니다.

예를 들어서, 500 Kbps비트 레이트로 인코딩된 35 MB 짜리 동영상 파일을 재생한다고 합니다. IIS 빠른 동영상 재생을 위해 최고 속도로 20 분량의 데이터를 먼저 전송할 것입니다 (500 Kbps * 20 = 1.25 MB). 이후에는 500 Kbps 다운로드 속도로 데이터를 전송합니다. (사용자는 항상 20 동안의 동영상 캐시를 가지고 있기 때문에 재생 끊김 현상이 발생하지 않습니다.)

1 후에 사용자가 동영상 재생을 중지하거나 다른 페이지로 이동하면, IIS 이름 감지하여 30 MB 파일의 남은 부분의 전송을 중지합니다. 시나리오에서는 전체 동영상 80 초만 다운로드하였기 때문에 (사용자가 60 + 버퍼 20), 35 MB 대신 5 MB 네트워크 대역폭 만이 소비되었습니다. 이렇게 30 MB 절약하는 횟수가 하루에 혹은 이라면, 년이면 만원에 이르는 돈을 절약할 있을 것입니다.

IIS 7.0 비트 레이트 쓰로틀링 모듈의 다운로드와 설치

여기 가시면 IIS 7.0 비트 레이트 쓰로틀링 모듈을 다운로드하고 더 많은 정보를 얻을 수 있습니다.

설치한 후에 IIS 관리 도구에서 "비트 레이트 쓰로틀링" 노드를 클릭하면 다음과 같은 화면을 보실 수 있습니다.

파일 혹은 파일 형식 비트 레이트 쓰로틀링 규칙을 설정합니다.

다음 백서들은 이에 대한 더욱 자세한 정보를 제공합니다.

Mike 포스트(여기) Vishal 포스트(여기와 여기)에서도 더욱 자세한 정보를 제공합니다.

도움이 되길 바라며,

스캇

:

처음 만나는 익스프레션 블렌드를 이용한 실버라이트 2

번역/ScottGu's Blog 2008. 2. 28. 15:28

원문 : First Look at Using Expression Blend with Silverlight 2

지난 주말에 저는 실버라이트 2 베타1 릴리즈에 대해 다룬 처음 만나는 실버라이트 2 포스트를 작성하였습니다. 이 포스트에는 실버라이트와 WPF의 프로그래밍 개념을 설명하고, 실버라이트를 사용하여 "Digg 검색 클라이언트"를 만드는 방법을 처음부터 끝까지 다룬 따라하기 포스트가 포함되어 있었습니다.

위 포스트에서는 UI를 작성하는 데 비주얼 디자인 툴을 사용하지 않았습니다. 대신에 기반이 되는 XAML UI 마크업을 보여주는 데 중점을 두었습니다. (제 생각에는 이 방법이 핵심 프로그래밍 개념을 설명하는 데 더 유용할 것 같았습니다.) 이제 기초 부분은 다 다루었으니까 이제부터는 생산성을 높일 수 있는 툴들에 대한 이야기를 해보도록 하겠습니다.

익스프레션 블렌드 의 실버라이트 지원

실버라이트 2의 베타1 출시와 더불어 실버라이트 2를 지원하는 비주얼 스튜디오 2008과 익스프레션 스튜디오 툴도 같이 출시될 예정입니다. 이 툴들에는 RIA 솔루션을 작성하기 위한 수 많은 기능들이 포함되어 있습니다. 또한 이 툴들은 개발자와 디자이너가 편리하게 협업할 수 있도록 설계되었습니다.

오늘 포스트에서는 곧 출시될 익스프레션 블렌드 2.5 March preview의 기능들을 소개하도록 하겠습니다. 먼저 블렌드의 기본적인 사용 방법을 설명한 후, 실버라이트를 이용하여 크로스 플랫폼과 크로스 브라우저를 지원하는 인터넷 메신저 채팅 클라이언트를 만들어 보겠습니다.

위 스크린샷은 우리가 만들 애플리케이션이 맥에서 작동하는 모습니다. 아래 스크린샷은 익스프레션 블렌드에서 디자인 타임에 보이는 화면입니다.

애플리케이션의 UI를 시각적으로 구성하고, UI를 채팅 세션과 체팅 메시지를 표현하는 .NET 클래스에 데이터바인딩하기 위해 익스프레션 블렌드를 사용하겠습니다.

이 채팅 애플리케이션에서 사용된 모든 컨트롤은 실버라이트 2 베타1에 포함된 것입니다.

주의 : 저는 디자이너가 아닙니다. (감각이 있는 사람도 아닙니다.)

저는 디자이너가 아니라 개발자입니다. 그리고 감각이 뛰어난 사람도 아닙니다. UI를 만들 때 저는 색상과 폰트를 잘못 고르는 경우가 많습니다. (이 포스트에 대한 스크린샷을 모두 작성한 후에 제 동료는 제가 사용한 폰트와 색상을 사용하지 마라는 사이트를 알려 주었습니다. 헉.)

예술적인 감각이 뛰어난 분들은 제 디자인 감각에 대해서는 양해를 해 주시고, 제가 설명하려고 하는 기능과 기술적인 면에 집중해주시기를 부탁 드립니다.

시작하기: 새 실버라이트 2 프로젝트 생성

익스프레션 블렌드와 비주얼 스튜디오 2008은 동일한 솔루션과 프로젝트 파일 포맷을 공유합니다. 즉 이 말은 , VS 2008에서 실버라이트 프로젝트를 생성하여, 이를 익스프레션 블렌드에서 연다거나, 익스프레션 블렌드에서 실버라이트 프로젝트를 만들고 이를 VS에서 불러올 수 있다는 것입니다. 심지어 익스프레션 블렌드와 VS 2008에서 동시에 같은 프로젝트를 열고 편집할 수도 있습니다.

저의 지난 포스트에서 VS 2008에서 새 실버라이트 프로젝트를 생성하는 방법에 대해 이야기한 적이 있으니, 그를 참조하여 익스프레션 블렌드를 이용하여 새 실버라이트 애플리케이션을 만드는 방법을 알아보도록 하겠습니다. 익스프레션 블렌드에서 File->New Project를 선택하고 "Silverlight 2 Application" 아이콘을 선택한 후 OK를 클릭합니다.

새 (VS와 호환가능한) 솔루션 파일과 실버라이트 애플리케이션 프로젝트가 만들어졌습니다.

익스프레션 블렌드는 실버라이트 2 애플리케이션을 위한 완전한 위지윅 디자이너를 제공합니다. 실버라이트 페이지와 컨트롤을 열 때 디자인 화면에 표시할 뷰를 선택할 수 있습니다. 뷰에는 디자인 뷰, XAML 소스 뷰, 그리고 디자인 뷰와 XAML 소스 뷰를 동시에(동시 편집도 가능) 보여주는 스플리트 뷰가 있습니다. 위 화면은 스플리트 뷰가 선택된 상황입니다.

기초 이해하기: 화면에 컨트롤 추가

익스프레션 블렌드는 비주얼 스튜디오와는 꽤 다른 도구 상자를 가지고 있습니다. (포토샵과 같은 디자인 툴에 더 가깝습니다.)

블렌드는 벡터 그래픽 편집을 지원합니다.

또한 블레드는 컨트롤 추가하고 조작할 수 있습니다. 레이아웃 컨트롤(Grid, Stack, Canvas, Border, ScrollViewer 등)과 텍스트 컨트롤(TextBox, TextBlock 등), 최근한 사용한 컨트롤을 표시하는 아이콘의 경우에는 도구상자에 특별한 아이콘이 있습니다.

도구 상자에 있는 ">>" 아이콘을 클릭하면 사용할 수 있는 모든 컨트롤을 표시합니다.

컨트롤을 찾지 못하겠으면, 어셋 라이브러리 의 우측 상단에 있는 "Show All" 체크 박스를 클릭하시기 바랍니다. 또는 "search" 텍스트박스를 이용하여 컨트롤의 이름으로 필터링을 할 수도 있습니다.

주의 : 블렌드는 모든 컨트롤(내장 컨트롤이든, 애플리케이션이 참조하는 사용자 지정 컨트롤 혹은 사용자 정의 컨트롤이든 관계 없이) 에 대해 디자인 경험을 지원합니다.

도구 상자에서 컨트롤을 선택하고 나면, 디자인 화면에 클릭하고 드래그하여 컨트롤을 그릴 수 있습니다. 또는 어셋 툴에서 아트보드로 컨트롤을 끌어올 수도 있습니다. 기본적으로 컨트롤을 디자인 화면에 추가하면 자동 눈금자와 위치 표시 마커가 표시됩니다. (아래 화면은 내장 버튼, 달력, 슬라이더 컨트롤이 폼 위에 있는 상황입니다.)

기초를 좀 더 이해하기: 컨트롤 속성

디자인 화면에서 아무 객체나 선택하고 화면 우측에 있는 "properties"를 클릭하면 컨트롤의 속성을 설정할 수 있습니다.

위 화면에서는 "Background" 브러시를 좀 더 짙은 파란색 그라디언트로 변경하고 있습니다. ("Brushes" 노드에서 빨간색 원이 쳐진 세 번째 탭은 그라디언트 브러시를 설정하는 것입니다.)

활용 팁: 속성 창 상단에는 검색 상자가 있는데, 이를 이용하면 이름을 이용하여 화면에 보이는 속성을 필터링할 수 있습니다.

실버라이트와 WPF의 모든 UI 객체는 벡터 그래픽으로 구성되어 있으므로, 원한는대로 컨트롤의 모양과 스타일과 형태를 변경할 수 있습니다. 예를 들어 위에서 만든 버튼에 "Transform" 속성을 설정하거나, 모서리를 클릭하여 회전시키거나 구부리거나 확대/축소를 할 수도 있습니다.

이러한 기능이 제공하는 강력함과 유연함을 이용하면 사용자 경험을 빠르고 쉽게 커스터마이징할 수 있습니다.

활용 팁: 컨트롤 키를 누른 상태에서 마우스 휠을 회전시켜 디자인 화면을 확대하거나 축소할 수 있습니다. 또 스페이스 바를 누르면 손 모양 커서가 나타나는데, 이 때 마우스를 드래그하여 화면에 표시되는 영역을 지정할 수 있습니다. 이 기능은 화면을 확대했을 때 화면에 표시되는 컨텐트로 화면을 쉽게 이동하고자 할 때 편리하게 사용할 수 있습니다.

채팅 애플리케이션 작성: 레이아웃 정의

지난 번 실버라이트 튜토리얼 시리즈 중 파트2: 레이아웃 관리 사용하기에서 실버라이트와 WPF의 레이아웃 관리 시스템과 애플리케이션의 레이아웃과 플로우를 편리하게 제어하기 위해 레이아웃 패널을 사용하는 방법에 대해 말씀 드린 적이 있습니다. 익스프레션 블렌드는 레이아웃 규칙을 간략화할 뿐 아니라 레이아웃 패널을 지원하는 내장 도구를 가지고 있습니다.

우리가 작성하려고 하는 애플리케이션의 UI는 다음과 같은 모습일 것입니다.

먼저 페이지에 세 개의 로우 <grid> 레이아웃을 정의하겠습니다. 마우스를 디자인 화면 왼쪽 여백에 위치시키고 새로운 로우를 정의하고 싶은 곳에서 클릭합니다. (아래 화면은 상단 로우를 정의한 것입니다. 빨간색 원으로 표시된 곳은 두 번째 로우를 정의할 위치입니다.)

디자인 화면에 좌측 상단(아래 그림에서 빨간색 원)을 클릭하면 디자인 화면이 캔버스 레이아웃 혹은 그리드 레이아웃으로 변환됩니다.

그리드 레이아웃 모드에서 특정 로우와 컬럼은 고정된 너비 혹은 컨트롤에 크기에 대한 비율로 표시됩니다. 위 그림에서 "열려 있는 자물쇠"는 세 개의 로우가 각각 서로 비율에 따라 설정되어 있다는 의미입니다. (즉, 브라우저 크기가 커지면 각 로우는 서로 비례에 맞게 커집니다.)

상단과 하단을 클릭하면 자물쇠가 잠기는데, 이는 고정된 길이를 사용하겠다는 의미입니다. 가운데 로우는 나머지 길이를 모두 채웁니다.

마지막으로 할 일은 위쪽 여백을 클릭하여 오른쪽 컬럼을 정의하는 것입니다. 오른쪽 컬럼은 고정 길이로 설정하고 왼쪽 컬럼은 동적으로 크기가 조정되도록 합니다.

여기가지 마쳤으면 XAML 파일에는 아래와 같은 그리드의 정의가 포함됩니다.

활용 팁: 위에서는 실버라이트 애플리케이션에 고정된 너비와 길이를 사용하였습니다. (루트 <UserControl> 요소의 Width와 Height 특성을 확인하십시오.) Width와 Height 특성을 제거하면 크기를 동적으로 변하도록 지정할 수 있습니다. (여기에 대해서는 저의 레이아웃 튜토리얼에 설명이 되어 있습니다.) 디자인 타임에 애플리케이션에 너비와 길이를 지정해야 한다면, 루트 <UserControl> 요소에 d:DesignWidth="640"와 d:DesignHeight="476"라고 지정하면 됩니다. 이는 애플리케이션의 디자이너를 사용할 때의 기본 크기를 지정하는 것입니다.

채팅 애플리케이션 작성: 컨트롤과 색상을 추가

이제 채팅 애플리케이션의 핵심 레이아웃을 완성되었습니다. 지금부터는 여기에 컨트롤을 추가하고 그 동작을 조정하도록 하겠습니다.

루트 그리드 레이아웃을 선택하고 배경색을 파란색 그라디언트로 설정합니다. 특정 컨트롤을 선택하는 편리한 방법 한 가지는 "인터랙션" 패널을 사용하여 컨트롤을 선택하는 것입니다.

"Brushes" 속성 패널을 사용하여 그리드의 배경색을 파란색 선형 그라디언트 브러시로 선택합니다.

이제 하단에 채팅 창을 만들겠습니다. "Send" 버튼을 추가합니다.

채팅 메시지 텍스트박스는 표준 텍스트박스를 사용하겠습니다. 그러나 약간 변화를 주기 위해 보더 컨트롤을 추가하여 "RoundRadius"을 5로 설정하고 Background과 BorderBrush를 아래와 같이 지정합니다.

이제 텍스트박스를 보더 컨트롤에 포함시킵니다.

중요 팁: 디자인 화면에서 텍스트박스를 보더 컨트롤에 포함시키려면, 인터랙션 창에서 보더 컨트롤을 더블 클릭합니다. 이렇게 하면 보더 컨트롤이 디자인 화면에서 활성 삽입 컨트롤로 지정되고 아래 그림과 같이 노란색으로 하이라이트 됩니다.

그리고 도구상자에서 텍스트박스 컨트롤을 선택하고 보더 컨트롤 안에 추가합니다. 텍스트박스의 Background와 Border의 브러시는 부모인 보더 컨트롤을 따라 갑니다.

익스프레션 블렌드에 의해 생성된 XAML 마크업은 아래와 같습니다. (텍스트박스가 보더 컨트롤에 포함된 것을 확인하십시오 – 만일 보더 컨트롤이 활성 삽입 컨트롤이 아니면 텍스트박스는 추가되지 않았을 것입니다.)

상단 로우에 대해서도 동일한 작업을 하는데, 보더 컨트롤의 왼쪽에는 텍스트 박스를, 오른쪽에는 이미지 컨트롤을 포함시킵니다. UI는 다음과 같습니다.

블렌드가 생성한 XAML 마크업은 아래와 같습니다.

마지막으로, 가운데 로우에 보더 컨트롤을 추가하고 그 안에 리스트박스 컨트롤을 포함시킵니다. 그리고 보더 컨트롤을 그리드에 있는 두 컬럼을 모두 덮도록 늘리고, 배경생과 전경색을 지정합니다. 또한 리스트박스에 텍스트 표시자로 사용할 테스트 메시지를 입력합니다. (나중에 UI를 지정하고 실제 값으로 데이터바인딩 할 것입니다)

블렌드가 생성한 XAML 마크업은 다음과 같습니다.

이제 애플리케이션을 실행하면 브라우저에서 동작하는 간단한 채팅 인터넷 메신저 클라이언트(물론 값은 하드 코딩된 것입니다)를 볼 수 있습니다. 브라우저의 크기를 바꾸면 애플리케이션은 윈도우의 크기에 맞게 자동으로 크기를 재조정합니다.

물론 IM 클라이언트의 UI로는 부족함이 너무 많지만, 어쨌거나 동작을 하기는 합니다.

채팅 애플리케이션 작성: ChatMessage"와 "ChatSession" 클래스 추가

익스프레션 블렌드를 이용하여 초기 UI는 만들어 졌습니다. 이제 비주얼 스튜디오에서 이 프로젝트를 열고 UI에 바인딩할 채팅 클래스를 작성하도록 하겠습니다.

비주얼 스튜디오에서 이 프로젝트를 여는 방법은 두 가지입니다. 하나는 비주얼 스튜디오 2008에서 File->Open Project를 실행한 후 프로젝트 파일을 선택하는 것이고, 다른 하나는 익스프레션 블렌드에서 프로젝트 노트를 오른쪽 클릭한 후 "Edit in Visual Studio"를 선택하는 것입니다.

VS 2008의 실버라이트 지원 베타1에는 실버라이트 2 솔루션을 위한 프로젝트 관리 지원, 완전한 인텔리센스와 이벤트 기반 지원, 윈도우 혹은 맥에서 실행되는 실버라이트 애플리케이션의 디버깅 지원이 포함되어 있습니다. 또한 VS 2008은 실버라이트 .xaml 파일의 스플리트 뷰 편집도 지원합니다. 아래 화면은 익스프레션 블렌드에서 작성한 Page.xaml 파일을 VS 2008에서 연 것입니다.

베타1에서 VS 2008의 디자인 뷰는 인터랙티브하지 않았습니다. (즉 읽기 전용이었습니다.) 하지만 소스 뷰에서 변경한 내용은 곧바로 디자인 뷰에 반영되었습니다. – 그러니까 훌륭한 XAML 패드이기는 했습니다. (실버라이트 베타 1에서는 VS 2008에서 완전한 XAML 소스의 인텔리센스가 지원됩니다.)

이 블로그 포스트에서는 비주얼 스튜디오의 XAML 에디터를 사용하지 않겠습니다. 대신에 ChatSession과 채팅 메시지를 표현하는 클래스들을 만들고 익스프레션 블렌드를 사용하여 이 클래스들을 UI 컨트롤에 바인딩하도록 하겠습니다.

"ChatMessage" 클래스를 만들고 두 개의 퍼블릭 속성을 정의합니다.

채팅 세션을 표현하는 "ChatSession" 클래스도 만듭니다.

ChatSession 클래스에는 세 개의 퍼블릭 속성이 있습니다. 처음 두 속성은 채팅 상대방의 사용자 이름과 아바타를 표현합니다.

세 번재 속성은 지난 채팅 메시지의 컬렉션입니다. 이 타입이 List<ChatMessage>가 아니라 ObservableCollection<ChatMessage>인 점에 주목해 주십시오. ASP.NET 개발자라면 아마 ObservableCollection에 익숙하지 않을 것입니다. 윈도우 폼이나 WPF 개발자라면 아마도 익숙하실 테지요. 기본적으로 ObservableCollection는 아이템이 추가/삭제되면 (또는 아이템이 INotifyPropertyChanged를 구현하고 그 속성이 변경되면) 변경 알림 이벤트를 발생시키는 컬렉션입니다. ObservableCollection는 데이터바인딩을 할 때 특히 유용합니다. UI 컨트롤이 변경 내용을 감지하여 자동으로 갱신되기 때문에 개발자는 아무런 코드도 작성할 필요가 없기 때문입니다.

또한 ChatSession 클래스에는 두 개의 퍼블릭 메서드가 있습니다. 한 가지는 채팅 서버에 접속하기 위한 것이고, 다른 한 가지는 채팅 서버로 메시지를 보내기 위한 것입니다. 작업을 간단히 하기 위해 (또 저는 채팅 서버를 가지고 있지 않으므로) 이 메서드들은 가짜로 구현하였습니다. 실제 상황에서는 실버라이트에 내장된 네트워크 소켓을 이용하여 원격 채팅 서버에 연결해야 할 것입니다.

ChatSession 클래스는 INotifyPropertyChanged 인터페이스도 구현하고 있습니다. 이 말은 퍼블릭 "PropertyChanged" 이벤트를 가져야 한다는 의미가 됩니다. ChatSession 클래스의 속성이 변경되면 이 이벤트가 발생하여야 합니다. 그러면 이 이벤트의 리스너(예를 들어 ChatSession 클래스에 바인딩된 컨트롤)들은 속성 값이 변경되면 알림을 받게 되고 이를 이용하여 변경된 값을 다시 바인딩할 수 있습니다.

디자인 타임 데이터바인딩을 위한 가장 데이터 구현하기

순순히 기능적인 관점에서만 본다면, 위 코드는 채팅 클라이언트를 구현하는 데 필요한 모든 코드입니다. 하지만 블렌드의 디자인 타임 경험을 향상시키기 위해, 현재 런 타임인지 디자인 타임인지를 체크하고 만일 디자인 타임이라면 "가짜 데이터"를 로드하는 생성자를 추가하도록 하겠습니다.

이 작업이 디자이너에서 데이터바인딩을 얼마나 쉽게 비주얼하게 만드는지에 대해서는 조금 있다 살펴보도록 하겠습니다.

채팅 애플리케이션 작성: 익스프레션 블렌드에서 데이터바인딩을 이용하여 UI 연결하기

이제 ChatMessage와 ChatSession 객체가 정의되었으니, 익스프레션 블렌드에서 이를 사용하여 UI 컨트롤을 데이터바인딩할 수 있습니다.

실버라이트와 WPF에서 데이터바인딩을 하는 방법에 관해서는 지난 주에 쓴 파트 5: ListBox와 데이터바인딩을 사용하여 리스트 데이터를 표시하기에서 소개하였습니다. 오늘은 직접 타이핑하는 것이 아니라 익스프레션 블렌드를 사용하여 데이터바인딩 식을 연결하도록 하겠습니다. "Project" 패널 아래 있는 "Data" 패널에서 시작합니다.

"Data" 패널에서 "+ CLR Object"를 클릭하면 UI컨트롤에 데이터바인드할 .NET 객체를 선택하는 대화창이 열립니다. 우리가 만든 "ChatSession"를 선택합니다.

그러면 데이터 트레이에 ChatSession 객체가 추가되고, 그 속성(그리고 서브 속성까지)이 트리 뷰에 나타납니다.

"Data" 트레이에 있는 속성을 디자인 화면에 있는 UI 컨트롤에 끌어다 놓으면 데이터가 바인딩 됩니다. 예를 들면, 데이터 트레이에서 RemoteUserName 속성을 끌어서 놓기 하여 정적인 "ScottGu" 라벨을 {Binding RemoteUserName} 데이터바인딩 식으로 바꿀 수 있습니다.

"RemoteUserName" 속성을 텍스트블록에 끌어다 놓으면, 이 속성을 기존 텍스트블록에 바인딩할지, 아니면 이 속성을 나타내는 새로운 컨트롤을 만들 것인지를 묻는 프롬프트가 열립니다. 기본값(기존 컨트롤에 바인드)을 선택하면 바인딩 식의 타입을 물어보는 창이 열립니다.

텍스트블록의 "Text" 속에서 "단방향" 바인딩을 설정합니다. OK를 클릭하면 컨트롤의 "Text" 속성은 {Binding RemoteUserName}로 변경됩니다.

이미지 컨트롤(RemoteAvatarUrl 속성에 연결)과 리스트박스(MessageHistory 컬렉션 속성에 연결)에 대해서도 동일한 작업을 합니다. 작업을 마치면 블렌드는 아래 그림과 같이 디자인 뷰 화면에 "더미" 데이터를 표시합니다.

리스트박스의 내용이 이상하다고 생각하실지 모르겠습니다. 왜 아이템이 "ChatClient.ChatMessage"라고 표시되는 것일까요? 현재 리스트박스는 커스텀 .NET 객체 컬렉션에 바인딩되어 있는데, "ChatClient.ChatMessage"는 ChatMessage 인스턴스의 "ToString()"이 호출되어 반환된 값이기 때문입니다.

아래 그림과 같이 리스트박스에 <DataTemplate>를 추가하면 이를 수정할 수 있습니다.

노트: Blend 2.5 March preview 릴리즈에서는 datatemplates를 소스 뷰에서 정의하여야 합니다. 하지만 다음 버전에서는 디자인 뷰에서도 datatemplates를 정의할 수 있을 것입니다. WPF프로젝트에서는 지금도 이 기능을 사용할 수 있습니다.

이제 디자인 타임에서의 UI는 아래 그림과 같게 됩니다.

디자인 타임에 보이는 "더미 데이터"의 장점은, 런타임에 UI 경험이 어떻게 보일지에 대해 짐작할 수 있게 하여 디자이너(혹은 개발자)가 애플리케이션의 다른 부분이 완성되기를 기다릴 필요 없이 UI 작업을 할 수 있다는 것입니다.

채팅 애플리케이션 작성: 스타일과 컨트롤 템플릿을 사용하여 Button과 ListBox 변경하기

파트 7: 템플릿을 사용하여 컨트롤의 룩앤필을 커스터마이징하기 Digg 튜토리얼에서 제가 말씀 드린 것 중의 한 가지는 실버라이트와 WPF에서 개발자와 디자이너가 컨트롤의 룩앤필을 커스터마이징하는 방법이었습니다. 이 기능을 사용하면 애플리케이션의 UI를 굉장히 유연하게 제어할 수 있고 원하는 사용자의 경험을 정확하게 만들 수 있습니다.

우리가 만든 애플리케이션을 좀 더 멋지게 꾸미기 위해 실버라이트와 WPF의 컨트롤 템플릿 기능을 사용하여 Send 버튼과 리스트박스를 커스터마이징 해보겠습니다. 프로젝트의 App.xaml 파일에 "MessageHistory"와 "SendButton" 스타일 리소스를 생성하겠습니다. 각 스타일 객체는 컨트롤의 룩앤필을 오버라이드 하고 비주얼 구조를 변경하는 컨트롤 템플릿을 가집니다.

노트: Blend 2.5 March preview 릴리즈에서는 컨트롤 템플릿을 소스 뷰에서 정의하여야 합니다. 하지만 다음 버전에서는 디자인 뷰에서도 컨트롤 템플릿을 정의할 수 있을 것입니다. WPF프로젝트에서는 지금도 이 기능을 사용할 수 있습니다.

예를 들어, 아래 리스트박스 컨트롤 템플릿은 리스트박스의 바깥쪽 경계를 없애고, 리스트 컨테이너용 스크롤 바를 가진 "flat" 보기를 정의합니다.

이 템플릿을 리스트박스에 적용하면 아래 그림과 같이 모양이 됩니다.

버튼 컨트롤 템플릿에 대해서는 더 놀라운 일을 해보겠습니다. 단순히 버튼의 모양의 정의하는 것이 아니라, "마우스오버", "눌러짐", "보통" 상태에 따라 다양한 스토리 보드 애니메이션을 적용하겠습니다. (이러한 기능은 스타일 정의에 캡슐화되어 있기 때문에 개발자는 아무런 작업도 할 필요가 없습니다.)

"MessageHistory"와 "SendButton" 스타일 객체가 정의되고 나면, 디자인 화면에서 컨트롤에 적용시키는 것은 아주 쉽습니다.

익스프레션 블렌드에서 "Resources" 툴 윈도우를 클릭하면 현재 프로젝트의 모든 리소스 위치 리스트가 나타납니다.

"App.xaml" 노드를 확장하면 우리가 찾는 스타일이 나타납니다. 페이지의 컨트롤에 특정 스타일을 적용하려면, 스타일을 컨트롤로 끌어다 놓기 하면 됩니다. 예를 들어서, 아래 화면은 "SendButton" 스타일을 적용하기 전의 보내기 버튼입니다.

"SendButton" 스타일을 보내기 버튼에 끌어다 놓으면 컨트롤 템플릿 모양과 구조로 변경됩니다.

"SendButton" 스타일에는 상태 애니메이션이 포함되어 있기 때문에, 사용자의 동작에 따라 런타임에 버튼의 모양이 바뀝니다.

처음에 버튼은 아래와 같은 모습입니다.

마우스를 이 위에 가져다 놓으면 풍선의 색상이 밝은 색으로 변합니다.

버튼이 눌러진 상태가 되면 풍선은 눌러진 모양이 되고 그림자가 사라집니다.

버튼을 놓으면 다시 원래의 모습으로 돌아옵니다.

이러한 애니메이션과 상호작용하는 제스처 기능을 잘 사용하면 애플리케이션이 한결 강력해 집니다. 그 중에서도 가장 좋은 점은, 디자이너가 혼자서 이와 같은 작업들을 할 수 있다는 것입니다. 개발자는 이런 페이지 작업에 연관될 필요가 없으며 아무런 코드도 작성할 필요가 없습니다.

익스프레션 블렌드 2.5의 다음 버전에서는 디자이너는 버튼의 모양과 구조만 정의하는 것이 아니라 각 애니메이션의 변화도 디자인 화면에서 정의할 수 있게 될 것입니다. (즉 소스 편집이나 코딩이 필요하지 않습니다.)

채팅 기능 구현

지금까지는 익스프레션 블렌드를 사용하여 컨트롤 UI를 데이터바인딩하고, UI의 상호작용을 조율하였습니다. 이제 비주얼 스튜디오로 가서 UI 채팅 기능을 구현하는 코드를 작성하도록 하겠습니다.

Page 생성자에 상대방과의 ChatSession를 초기화하는 코드와 "Send" 버튼이 눌러졌을 때 상대방에게 메시지를 보내는 코드를 추가합니다.

위 코드를 추가하고 애플리케이션을 다시 실행하면 UI가 이제 상대방의 이름이 (디자인 타임에서 정의한 가짜 데이터 대신에) "ScottGu"인 ChatSession에 데이터 바인딩 되는 것을 확인할 수 있습니다.텍스트박스에 메시지를 입력하고 보내기 버튼을 클릭하면 리스트박스에는 자동으로 갱신된 채팅 기록이 나타납니다.

어떻게 리스트박스가 자동으로 업데이트 되는 것일까요? 왜냐하면 리스트박스는 ObservableCollection<ChatMessage> 형인 ChatSession.MessageHistory 속성에 데이터바인딩 되었기 때문입니다. 즉, 새로운 ChatMessage 객체가 컬렉션에 추가되면 자동으로 변경 알림이 발생하고, 리스트박스는 이 알림을 감지하여 새로운 데이터로 자신을 갱신한다는 것입니다.

리스트박스가 변경내용을 반영하도록 하기 위해 따로 코드를 작성할 필요는 없습니다. 뷰와 모델이 명확하게 구별된 바인딩 아키텍쳐가 자동으로 이러한 일을 해주기 때문입니다.

정리

제가 보여 드린 것은 익스프레션 블렌드의 일부 기능에 불과하며, 모두 실버라이트와 WPF에 공통입니다. 이 기능들은 모두 곧 다운로드가 가능하게 될 익스프레션 블렌드 2.5 March preview에 사용 가능합니다.

비주얼 스튜디오 2008과 익스프레션 블렌드를 같이 사용하면 RIA 솔루션을 개발하는 데 있어 생산성과 강력함을 더할 수 있습니다. 개발자와 디자이너는 동일한 프로젝트에 대해 동시에 작업할 수 있습니다. (그리고 실수로 서로의 작업을 망치는 일도 피할 수 있습니다.) 게다가 한 컴퓨터에서 비주얼 스튜디오와 익스프레션 블렌드를 같이 실행시켜 동일한 애플리케이션을 편집하는 일도 가능합니다.

익스프레션 블렌드의 다운로드가 가능해지면 익스프레션 블렌드에 대해 더 많은 블로그를 올리도록 하겠습니다. (특히 제가 다루지 않은 많은 기능들에 대해 다룰 예정입니다.) 위에서 예로 든 채팅 애플리케이션도 실버라이트 2 베타1이 출시되면 같이 올려 여러분이 직접 코드를 보고 실행하실 수 있도록 하겠습니다.

도움이 되길 바라며,

스캇

:

파트 1: 실버라이트 2와 VS 2008을 사용하여 "Hello World" 만들기

번역/ScottGu's Blog 2008. 2. 22. 21:27

원문 : Silverlight Tutorial Part 1: Creating "Hello World" with Silverlight 2 and VS 2008

이 포스트는 실버라이트 베타1 릴리즈를 사용하여 간단한 Digg 클라이언트 애플리케이션을 만드는 방법을 설명한 8개의 튜토리얼 중 첫 번째 입니다. 이 튜토리얼 시리즈는 순대로 읽도록 구성되어 있으며, 실버라이트의 핵심 프로그래밍 개념을 이해하는 도움이 되도록 구성되어 있습니다.

VS 2008을 사용하여 새로운 실버라이트 애플리케이션 작성하기

먼저 비주얼 스튜디오 2008에서 파일->새 프로젝트 메뉴를 실행한 후 "Silverlight Application"을 선택합니다. (참고: Silverlight Tools for VS 2008를 지원하는 베타1이 출시되면, 아마도 Silverlight Tools for VS 2008를 다운로드하고 설치하여야 할 것입니다.)

프로젝트의 이름은 "DiggSample"이라고 하겠습니다. "OK" 버튼을 누르면 그냥 실버라이트 애플리케이션만 만들지, 실버라이트 애플리케이션이 있는 솔루션에 추가적으로 서버 사이드 ASP.NET 웹 프로젝트를 추가할 것인지를 묻는 대화상자가 열립니다.

여기서는 ASP.NET 웹 애플리케이션 프로젝트를 솔루션에 추가하고 그 이름을 "DiggSample_WebServer"이라고 하겠습니다. "OK" 버튼을 누르면 비주얼 스튜디오는 실버라이트 클라이언트 애플리케이션과 ASP.NET 웹 서버 애플리케이션을 포함하고 있는 솔루션을 생성합니다.

"빌드" 명령을 실행하면 비주얼 스튜디오는 자동으로 컴파일된 실버라이트 애플리케이션을 웹 서버 프로젝트로 복사합니다. (수동으로 해야 할 작업이나 구성 설정은 필요하지 않습니다.) VS가 생성한 기본 웹 서버 프로젝트에는 실버라이트 애플리케이션을 실행하고 테스트하기 위한 ASP.NET 페이지와 정적 HTML 페이지가 있습니다.

참고: 실버라이트 애플리케이션은 모든 웹서버(리룩스에서 실행되는 아파치 포함)에서 운영이 가능하고, 정적 HTML 파일이나 모든 서버 사이드에서 생성된 페이지(PHP, Java, Python, Ruby 등)에서 호스팅이 가능합니다. Digg 샘플에서는 서버 사이드 코드를 작성하지 않습니다. 대신 Digg 서비스 API에 직접 접근하기 위해 크로스 도메인 네트워킹 기능을 사용합니다. ASP.NET 웹 서버 프로젝트를 만든 이유는 자동 배포와 테스트를 위한 내장 웹서버가 필요했기 때문입니다.

실버라이트 애플리케이션의 구조 이해하기

새로 생성된 실버라이트 애플리케이션은 기본적으로 Page.xaml과 App.xaml 파일, 그리고 이에 대한 코드 비하인드 클래스 파일(VB, C#, Ruby , Python으로 작성할 수 있는)을 포함합니다.

XAML 파일은 실버라이트 혹은 WPF 애플리케이션의 UI를 선언적으로 명시하는 XML 텍스트 파일입니다. XAML은 .NET 객체를 선언적으로 표현하기 위한 방법으로 폭넓게 사용되기도 합니다.

App.xaml 파일은 보통 애플리케이션 간에 공유되는 브러쉬나 스타일 객체 같은 리소스를 선언하기 위해 사용됩니다. App.xaml 파일의 코드 비하인드 클래스는 애플리케이션 레벨의 이벤트(Application_Startup, Application_Exit, Application_UnhandledException)를 처리할 때 사용됩니다.

Page.xaml 파일은 애플리케이션이 활성화될 때 기본적으로 로드되는 초기 UI 컨트롤입니다. 이 파일에 유저 인터페이스를 정의하는 UI 컨트롤을 두고 Page 코드 비하인드 클래스에서 해당 이벤트를 처리할 수 있습니다. (나중에 좀 더 상세히 설명하겠습니다.)

DiggSample 프로젝트를 빌드하면, 비주얼 스튜디오는 기본적으로 코드와 .XAML 마크업을 표준 .NET 어셈블리 파일로 컴파일하고, 이 어셈블리와 모든 정적 리소스(포함시키고 싶은 이미지와 파일과 같은)를 "DiggSample.xap"로 패키징합니다.

".xap" 파일("잽"이라고 발음합니다)은 표준 .zip 압축 알고리즘을 사용하여 클라이언트의 다운로드 크기를 최소화합니다. "hello world" .NET 실버라이트 애플리케이션의 크기는 약 4KB입니다.(VB 혹은 C#을 사용하여 빌드했을 때)

참고: 베타1에서 몇몇 컨트롤은 필요 시 애플리케이션의 .xap 파일에 포함되어 배포됩니다. 즉 애플리케이션의 크기가 기본 크기인 4KB 이상이 될 수 있습니다. Digg 애플리케이션에서 사용된 모든 컨트롤은 베타2와 최종 릴리즈에서는 코어 실버라이트 다운로드 패키지에 포함될 것입니다. 이 말은 완성된 애플리케이션의 전체 다운로드 크기가 6-8KB에 불과할 것이라는 이야기입니다. (매우 작고 빠르지요.)

실버라이트 2 애플리케이션을 호스트하고 실행하기 위해서는, 해당 .xap 파일을 가리키는 <object> 태그를 표준 HTML 페이지(자바스크립트는 필요하지 않습니다)에 추가하면 됩니다. 실버라이트는 자동으로 .xap 파일을 다운로드 하고 초기화 한 후, 브라우저의 HTML 페이지에 호스트 합니다. 이는 크로스 브라우저(사파리, 파이어폭스, IE 등)와 크로스 플랫폼(윈도우, 맥, 리눅스)에서 모두 동작합니다.

프로젝트를 생성했을 때 테스트 HTML과 ASP.NET 페이지(우리가 만든 실버라이트 애플리케이션을 가리키는 <object> 태그 참조를 포함하고 있는)는 자동으로 추가되었습니다. 우리는 그냥 F5 키를 눌러 빌드하고 실행하고 테스트하면 됩니다.

컨트롤을 추가하고 이벤트를 처리하는 방법 배우기

지금은 Digg 애플리케이션이 아무런 동작도 하지 않고 실행되었을 때 빈 페이지만 화면에 표시합니다.

프로젝트의 Page.xaml 파일을 열어 컨텐트를 추가해 보겠습니다.

그리드의 백그라운드를 변경하고 Button 컨트롤을 추가해 보겠습니다. 코드 비하인드 클래스에서 프로그래밍으로 참조할 수 있도록 버튼의 "x:Name" 특성에 "MyButton" 값을 지정합니다. 또 Content, Width, Height 속성도 지정합니다.

실행하면 아래 그림과 같이 화면 가운데에 "Push Me"라고 적힌 버튼이 나타납니다.

버튼에 "Click" 이벤트 핸들러를 추가하도록 하겠습니다. 소스 뷰에서 이벤트의 이름을 타이핑하면 됩니다.

그러면 코드 비하인드 클래스에서 사용할 이벤트 핸들러를 알리는 프롬프트가 뜹니다.

새로운 이벤트 핸들러 메서드 이름을 치거나, 아니면 기본 네이밍 컨벤션을 사용하는 핸들러 메서드 이름을 사용하려면 그냥 엔터키를 누릅니다.

VS는 자동으로 코드 비하인드 클래스 파일에 이벤트 핸들러 구현의 스텁을 생성합니다. 이를 변경하여 버튼이 클릭됐을 때 새로운 메시지를 표시하도록 하겠습니다.

애플리케이션을 다시 실행하고 버튼을 누르면, 이제 "Pushed!"라는 메시지가 표시됩니다.

다음 단계

이 애플리케이션이 완성되기 위해서는 "약간" 손을 더 봐야겠지요. :-)

다음 단계는 전체 UI 레이아웃 구조를 설정하고 더 많은 컨트롤들을 추가하는 것입니다. 다음 튜토리얼(레이아웃 관리 사용하기, 한국어 판)에서 뵈겠습니다.

:

처음 만나는 실버라이트 2

번역/ScottGu's Blog 2008. 2. 22. 21:21

원문 : First Look at Silverlight 2

지난 9월에 맥용과 윈도우 용의 실버라이트 1.0과 더불어 실버라이트를 리눅스로 이식하는 계획이 발표가 되었습니다. 실버라이트 1.0은 브라우저에서 풍부한 미디어 기능을 사용하는데 초점이 맞추어져 있었으며, 자바스크립트/AJAX 프로그래밍 모델을 지원하였습니다.

이제 곧 실버라이트 2의 첫번째 공개 베타 버전이 출시됩니다. 이는 실버라이트의 메이저 업데이트이며 강력한 인터넷 애플리케이션(RIA) 개발에 촛점이 맞추어져 있습니다. 이 포스트는 앞으로 제가 몇 주 혹은 몇 달간 작성할 실버라이트를 심도 깊게 다룰 포스트 시리즈의 첫번째 입니다.

크로스 플랫폼 / 크로스 브라우저 .NET 개발

실버라이트 2는 .NET 프레임웍의 크로스 플랫폼, 크로스 브라우저 버전을 소개하고, 강력한 .NET 개발 플랫폼이 브라우저에 실행되는 것을 가능하게 합니다. 개발자는 아무 .NET 언어(VB, C#, 자바스크립트, IronPython, IronRuby 포함)나 사용하여 실버라이트 애플리케이션을 작성할 수 있습니다. 실버라이트 솔루션을 개발함에 있어 개발자와 디자이너 간의 워크플로우 통합을 지원하는 비주얼 스튜디오 2008과 익스프레션 스튜디오 툴 지원도 곧 출시될 것입니다.

이번에 출시되는실버라이트 2 베타1 릴리즈에는 RIA 애플리케이션 개발을 지원하는 강력한 기능들이 다수 포함되어 있는데, 이는 다음과 같습니다.

  • WPF UI 프레임웍 : 실버라이트 2는 강력한 웹 애플리케이션을 더욱 쉽게 만들 수 있는 강력한 WPF 기반 UI 프레임웍을 포함하고 있습니다. 이에는 강력한 그래픽과 애니메이션 엔진, 컨트롤과 같은 상위 레벨 UI 기능 지원, 레이아웃 관리, 데이터 바인딩, 스타일, 템플릿 스킨이 있습니다. 실버라이트의 WPF UI 프레임웍은 완전한 .NET 프레임웍의 WPF UI 프레임웍 기능과 호환 가능한 하위 집합입니다. 따라서 개발자는 강력한 크로스 브라우저 웹 애플리케이션과 강력한 데스크탑 애플리케이션을 개발함에 있어 기술, 컨트롤, 코드, 컨텐트 등을 재사용할 수 있습니다.
  • 강력한 컨트롤 : 실버라이트 2는 개발자와 디자이너가 신속하게 애플리케이션을 개발할 수 있게 하는 강력한 내장 컨트롤 셋을 가지고 있습니다. 이번 베타1 릴리즈는 핵심 폼 컨트롤(TextBox, CheckBox, RadioButton 등), 내장 레이아웃 관리 패널(StackPanel, Grid, Panel 등), 일반 기능성 컨트롤(Slider, ScrollViewer, Calendar, DatePicker 등), 데이터 조작 컨트롤(DataGrid, ListBox 등)을 포함하고 있습니다. 내장된 컨트롤들은 강력한 컨트롤 템플릿 모델을 지원하는데, 이는 개발자와 디자이너가 협업하여 뛰어난 솔루션을 개발하는 데 큰 도움이 됩니다.
  • 강력한 네트워킹 지원 : 실버라이트 2는 강력한 네트워킹 지원을 포함하고 있습니다. 실버라이트 2의 네트워킹은 REST, WS*/SOAP, POX, RSS, 표준 HTTP 서비스에 대한 호출을 숨깁니다. 또한 크로스 도메인 네트워크 접근도 지원합니다. (실버라이트 클라이언트가 웹 상에 있는 있는 리소스와 데이터에 바로 접근하는 것이 가능합니다.) 마지막으로 베타1은 내장 소켓 네크워킹도 지원합니다.
  • 강력한 베이스 클래스 라이브러리 : 실버라이트 2는 강력한 .NET 베이스 클래스 라이브러리의 기능(컬렉션, IO, 제네릭, 쓰레딩, 전역화, XML, 로컬 저장소 등)을 포함하고 있습니다. 또한 .NET 코드와 HTML DOM/자바스크립트 간의 통합을 가능하게 하는 풍부한 API도 포함하고 있습니다. 그리고 로컬 데이터 캐싱과 저장소 지원과 더불어 LINQ와 LINQ to XML 라이브러리 지원(이는 데이터의 변형과 질의를 용이하게 합니다.)도 포함하고 있습니다. 실버라이트의 .NET API는 완전한 .NET 프레임웍의 호환가능한 하위 집합입니다.

.NET 프레임웍이 설치되어 있지 않아도 실버라이트 2는 실행됩니다. 실버라이트 설치 다운로드는 위에서 든 모든 기능이 필요로 하는 것을 포함하고 있습니다. (잠시 후 좀 더 자세히 말씀드리겠습니다.)

실버라이트 2 베타1 릴리즈의 크기는 4.3MB이며, 설치에는 4-10초 정도가 걸립니다. 실버라이트 2가 설치되고 나면, 선택한 브라우저(IE, 파이어폭스, 사파리 등)에서 실버라이트 애플리케이션이 자동으로 실행됩니다.

실버라이트 2 실전 : 간단한 Digg 클라이언트

실버라이트 이해에 도움을 드리기 위해서, 저는 실버라이트 애플리케이션을 만들고 거기에 사용된 여러가지 프로그래밍 개념들(컨트롤, 레이아웃 관리, 네트워킹, 데이터 바인딩, 스타일, 사용자 정의 컨트롤, 템플릿 등)을 단계별로 설명하는 튜토리얼 시리즈를 작성하면 재미있겠다는 생각을 하였습니다. 또한 이 애플리케이션을 브라우저 밖으로 꺼내어 WPF와 완전한 .NET 프레임웍을 사용하는 데스크탑 애플리케이션으로 이식하는 작업에 관한 튜토리얼 포스트도 작성하였습니다.

아래는 제가 작성한 애플리케이션의 스크린샷들입니다. 이 애플리케이션은 유명한 Digg.com 사이트에 대한 간단한 검색 프론트 엔드입니다. 사용자가 검색어를 입력하면 해당하는 Digg 스토리로 이동하는 기능을 합니다.

이 애플리케이션의 모든 UI는 실버라이트의 WPF 프레임웍을 이용하여 작성하였습니다. 이 애플리케이션은 실버라이트 네트워킹 스택을 사용하며, Digg REST API에 직접 질의하기 위해 크로스 도메인 접근 지원을 사용합니다. 또한 LINQ와 LINQ to XML를 사용하여 질의를 하고 반환된 데이터를 DiggStory 객체로 변형합니다. UI는 이 DiggStory 객체에 데이터 바인딩되어 있습니다.

이 애플리케이션은 마스터/디테일 데이터 모델을 지원하므로, 사용자가 검색 리스트에서 스토리를 선택하면 상세 폼이 나타납니다. 상세 폼에서 사용자는 Digg 아티클로 바로 이동하거나, 상세 폼을 닫고 다른 상세 폼을 열 수도 있습니다.

전체 애플리케이션은 약 35줄의 C# 코드와 75줄의 XAML 페이지/사용자 정의 컨트롤 마크업을 사용하여 구현되었습니다. 모든 컨트롤과 라이브러리는 실버라이트에 내장된 것만 사용하였습니다.

제가 작성한 실버라이트 튜토리얼

아래 8개의 튜토리얼은 Digg 애플리케이션을 작성하는 방법을 설명합니다.

파트 1: 실버라이트 2와 VS 2008을 사용하여 "Hello World" 만들기 (한국어판)

파트 2: 레이아웃 관리 사용하기 (한국어판)

파트 3: 네트워킹을 사용하여 데이터를 얻어 DataGrid를 채우기 (한국어판)

파트 4: 스타일 요소를 사용하여 룩앤필을 감싸기 (한국어판)

파트 5: ListBox와 데이터바인딩을 사용하여 리스트 데이터를 표시하기 (한국어판)

파트 6: 사용자 정의 컨트롤을 사용하여 마스터/디테일 시나리오 구현하기 (한국어판)

파트 7: 템플릿을 사용하여 컨트롤의 룩앤필을 커스터마이징하기 (한국어판)

파트 8: WPF를 사용하여 Digg 데스크탑 버전 작성하기 (한국어판)

위 튜토리얼들은 순서대로 읽도록 구성되어 있으며, Digg 애플리케이션을 구축하는 방법을 단계별로(VS 2008에서 파일-> 새 프로젝트를 실행하는 것 부터 시작합니다.) 따라할 수 있도록 되어 있습니다. 각 튜토리얼은 하나 또는 그 이상의 프로그래밍 개념을 설명합니다.

WPF를 사용해 본 적이 있는 분에게는 제가 설명하는 UI 개념이 지루할지 모르겠습니다만, 아직 WPF를 사용해 보지 않은 분에게는 이 튜토리얼들이 WPF의 기초적인 프로그래밍 개념에 대한 유용한 소개가 되고, 향후 베타1이 출시되었을 때 VS 2008을 사용하여 실버라이트 2 애플리케이션 개발을 시작하는 데 좋은 길잡이가 되었으면 합니다.

베타1의 다운로드가 가능해지면 좀 더 상세한 포스트를 쓰도록 하겠습니다. 그리고 Digg 애플리케이션의 최종 버전(코드 + VS 2008에서 불러오고 편집할 수 있는 프로젝트 파일)도 제 사이트에 올리도록 하겠습니다.

   

도움이 되길 바라며,

스캇

:

.Net 3.5 클라이언트 제품 로드맵

번역/ScottGu's Blog 2008. 2. 19. 13:39

원문 : .NET 3.5 Client Product Roadmap

몇달 전에 저는 비주얼 스튜디오 2008과 .Net 3.5에 탑재된 웹 개발 기능에 대한 개요를 소개하는 .Net 웹 제품 로드맵 블로그 포스트를 작성하였습니다.

또한 클라이언트 개발에 관한 새 기술들도 몇 달 안에 발표할 예정입니다. 저희는 고객들로부터 받은 피드백을 해결하는데 많은 노력을 기울였으며, 윈도우 애플리케이션을 개발하는 개발자의 한계를 넓히는데 주력하고 있습니다. 새로운 기술들은 모두 VS 2008과 .NET 3.5에서 동작하며 .NET 클라이언트 개발을 한층 더 진보시킬 것입니다. 아래는 향후 수 개월 내에 저희가 출시할 예정인 기술들에 대한 로드앱니다.

클라이언트 애플리케이션을 위한 .NET 프레임웍 설치의 향상

저희가 수 년 동안 고객과 클라이언트 애플리케이션을 개발하는 ISV들로부터 가장 많이 요청 받은 기능 중의 하나는 .NET 프레임웍 설치를 더 쉽고 빠르게 할 수 있도록 해달라는 것이었습니다.

클라이언트 애플리케이션에 최적화된 설치 패키지를 더 쉽게 만들 수 있는 새로운 .NET 설치 프레임웍이 올해 여름에 출시됩니다. 이 설치 프레임웍은 기존 설치 프레임웍(예를 들어 InstallShield와 같은 제품)과 통합될 예정이며, 최종 사용자가 더 쉽고 더 빠르게 .NET 프레임웍 설치를 할 수 있도록 할 것입니다.

이 설치 프레임웍을 사용하면 Windows Forms과 WPF 애플리케이션은  컴퓨터에 설치된 .NET 프레임웍 "부트스트랩"을 정확하게 얻어낼 수 있습니다. 설치 "부트스트랩" 유틸리티는 .NET 3.5 클라이언트 애플리케이션을 실행하는 데 필요한 최소의 .NET 프레임웍 패키지를 자동으로 다운로드 받는 기능을 지원합니다. 예를 들어, 사용자의 컴퓨터에 이미 .NET 2.0이 설치되어 있다면, 설치 프로그램은 .NET 2.0에서 .NET 3.5로 업그레이드하는 데 필요한 업그레이드 패치만을 자동으로 다운로드할 것입니다. (즉 .NET 2.0에 포함된 구성요소를 다시 다운로드하지는 않습니다.) 이 기능은 클라이언트 설치 프로그램의 크기를 대폭 줄이고 설치 속도를 향상시킬 것입니다.

또한 저희는 MSI 및 클릭원스 기반의 솔루션과 더욱 긴밀하게 통합되고, 고객이 더욱 편리하게 작업할 수 있는 사용자 경험을 지원하는 향상된 버전도 계획하고 있습니다.

향상된 워킹 셋과 .NET 클라이언트 애플리케이션 시동

저희가 자주 받는 요청 중 한 가지는 "차가운 시동" 상황에서 .NET 클라이언트 애플리케이션이 더 빨리 시동될 수 있게 해달라는 것입니다. "차가운 시동" 이란 컴퓨터에 .NET 클라이언트 애플리케이션이 하나도 실행되고 있지 않아서(혹은 한동안 실행되지 않아서), OS가 디스크로부터 매우 많은 페이지(코드, 정적 데이터, 레지스트리 등)을 로드해야 하는 것을 말합니다. 덩치가 큰 .NET 클라이언트 애플리케이션이나 라이브러리를 로딩하거나, 혹은   느린 디스크를 사용한다면, 차가운 시동 시나리오에서는 애플리케이션이 시작되는 데 꽤 많은 시간이 걸릴 수 있습니다.

올해 여름에 애플리케이션을 로딩하고 실행할 때 디스크 IO를 줄이고 메모리 레이아웃을 향상시키기 위해 내부적으로 데이터 구조를 획기적으로 최적화한 CLR 서비스 업데이트가 출시됩니다. 다른 장점도 많지만, 이 업데이트는 워킹 셋과 차가운 시동에서의 성능을 눈에 띄게 개선하여 .NET 기반 클라이언트 애플리케이션(2.0, 3.0, 3.5)의 사용자 경험을 극적으로 향상시킬 것입니다.

애플리케이션의 크기에 따라 다르긴 하지만, 저희는 .NET 애플리케이션의 차가운 시동 성능이 25%에서 40% 정도 향상될 것으로 기대하고 있습니다. 이러한 성능 향상 효과는 자동으로 적용되기 때문에 애플리케이션의 코드를 수정하거나 컴파일을 다시 할 필요는 없습니다.

WPF 성능 향상

올해 여름에는 성능 최적화를 통해 텍스트, 그래픽, 미디어, 데이터 스택이 개선된 WPF의 서비스 업데이트도 출시됩니다. 구체적인 내역은 아래와 같습니다.

- 현재는 소프트웨어 방식으로 렌더링되는 DropShadow와 Blur를 하드웨어 가속 방식(몇 배나 빠릅니다)으로 변경합니다. 하지만 API는 변경되지 않습니다. (코드를 수정하거나 컴파일을 다시 할 필요가 없다는 말입니다.)

- (특히 Visual과 DrawingBrush 시나리오에서 사용될 때) 텍스트 작업이 훨씬 빨라집니다. 여전히 API는 변경되지 않습니다. (코드를 수정하거나 컴파일을 다시 할 필요가 없다는 말입니다.)

- 미디어와 비디오의 성능도 훨씬 좋아지고 빨라집니다. (물론 코드를 수정하거나 컴파일을 다시 할 필요는 없습니다.)

- 소프트웨어 서페이스(surface)에서 실시간으로 비트맵 업데이트가 가능한 WriteableBitmap API가 포함됩니다.

- 데이터 편집을 위한 데이터 확장성이 향상됩니다. 이에는 컨테이너 재활용과 데이터 가상화 지원이 포함되어 있어 더 강력한 데이터 가상화 컨트롤을 쉽게 만들 수 있습니다.

WPF 컨트롤 향상

올 하반기에는 새로운 WPF 컨트롤들이 출시됩니다. DataGrid, Ribbon, Calendar/DatePicker 컨트롤 등이 포함될 예정입니다.

VS 2008 WPF 디자이너 향상

WPF 개발자를 위한 많은 추가 기능을 담은 VS 2008 서비스 업데이트도 출시될 예정입니다. 여기에는 컨트롤 이벤트를 위한 프로퍼티 그리드 내의 이벤트 탭 지원, 소스 모드에서의 툴박스 지원, 기타 기능 개선을 요청 받은 많은 기능이 포함되어 있습니다.

정리

이상의 기술들을 사용하면 훌륭한 데스크탑 애플리케이션을 더 쉽게 만들 수 있습니다. 이 기술들은 VS 2008과 .NET 3.5 기반 위에서 동작하기 때문에 적용하기도 쉽습니다. (그리고 대부분의 경우는 소스를 변경할 필요가 없습니다.) 각 기술에 대해 더 자세히 알고 싶으신 분들은 몇 주 안에 새로운 포스트가 게시될 제 블로그를 주시하여 주십시오.

 

도움이 되길 바라며,

스캇

:

2월 17일 링크 모음 : ASP.NET, ASP.NET AJAX, Visual Studio, .NET

번역/ScottGu's Blog 2008. 2. 17. 00:25

원문 : Feb 17th Links: ASP.NET, ASP.NET AJAX, Visual Studio, .NET

저의 최신 링크 리스트 시리즈를 포스팅합니다. 제가 작성한 예전 포스트 중 인기 있는 기사들에 대한 링크는 ASP.NET 팁, 트릭, 튜토리얼 페이지에서 찾을 수 있으니, 관심 있으신 분들은 그것도 확인하시기 바랍니다.

ASP.NET

ASP.NET AJAX
비주얼 스튜디오
  • VS 2008 웹 배포 프로젝트 일본어판 출시: 지난 달 말에 VS 2008 웹 배포 프로젝트가 출시될 것이라고 이야기를 하였습니다. 지난 중에는 VS 2008 웹 배포 프로젝트의 일본어 버전이 출시되었습니다. 참고: 제 블로그의 일본어 버전은 여기서 보실 수 있습니다. (Chica님 고맙습니다!)

.NET
  • 표현식 트리 비주얼라이저 사용하기: Charlie Calvert는 VS 2008과 함께 제공되는 LINQ 샘플 패키지에 들어있는 디버깅 툴 사용법에 대한 포스트를 작성하였습니다. 이 디버깅 툴에는 디버거 내의 표현식 트리 변수를 쉽게 비주얼라이즈하는 기능이 있습니다. 이 기능은 특히 고유한 LINQ 프로바이더(위 항목의 것들같이 말입니다.)를 작성할 때 매우 유용합니다. 표현식 트리와 LINQ를 구성하는 기저 개념에 대해 더 자세히 알고 싶으시면, 여기에 있는 Charlie'의 이전 포스트를 읽어보시기 바랍니다.

도움이 되길 바라며,

스캇

:

VS 2008 웹 개발 핫픽스 보완

번역/ScottGu's Blog 2008. 2. 8. 11:16

원문 : VS 2008 Web Development Hot-Fix Roll-Up Available

VS 2008에 대해서 우리 팀이 집중하고 있는 것 중 한 가지는 자주 보고되는 문제의 버그를 수정하는 보완 패치를 더 자주 릴리즈 하는 것입니다. 오늘은 VS 2008와 Visual Web Developer Express 2008에 대해 보고된 몇 가지 이슈를 해결하는 핫픽스 보완을 발표하고자 합니다.

핫픽스 상세

여기서 핫픽스를 무료로 다운받을 수 있습니다. (2.6MB) 아래는 해결된 이슈들의 목록입니다.

HTML 소스 뷰 성능

  • 서브 프로퍼티가 두 단계 이상의 레벨을 가지는 커스텀 컨트롤의 페이지에서 타이핑을 할 때 코드 편집기가 멈춤
  • 웹 응용프로그램 프로젝트에서 "코드 보기" 오른쪽 클릭 컨텍스트 메뉴 명령이 나타나는 데 오래 걸림
  • 커다란 HTML 문서를 열 때 비주얼 스튜디오가 매우 늦어짐
  • 특정 마크업이 있는 커다란 HTML 파일의 경우 비주얼 스튜디오의 응답이 멈춤
  • 많은 양의 HTML을 선택한 경우 탭/쉬프트-탭 (들여쓰기/내어쓰기) 동작이 느려짐

디자인 뷰 성능

  • 특정한 페이지 마크업 구성의 경우에 디자인 뷰에서 타이핑이 느려짐

HTML 편집

  • Class 혹은 CssClass 특성 다음에 쌍따옴표가 삽입되지 않음
  • 서비스 참조 요소가 현재 웹 페이지를 가리키는 경우에 비주얼 스투디오가 죽음

자바스트립트 편집

  • 자바스크립틀 파일을 열 때, 클라이언트 스크립트의 컬러링이 몇 초간 지연됨.
  • 현재 편집 중인 줄의 이전에 빈 문자열 프로퍼티가 있는 경우에 자바스크립트 자동완성이 동작하지 않음
  • jQuery가 사용되면 자바스크립트 자동완성이 동작하지 않음.

웹 사이트 빌드 성능

  • 웹 사이트 프로젝트의 경우, Bin 폴더에 어셈블리와 .refresh 파일이 많이 있으면 빌드가 매우 느려짐.

설치 노트

상기 패치를 다운로드 받고 설치하는 데 필요한 더 상세한 정보는 이 블로그 포스트를 참고하십시오. 특히 윈도우즈 비스타를 사용하고 UAC를 활성화 시켜 놓았다면, 패치의 압축을 "c:\" 이외의 디렉토리에 풀어야 하는 것을 잊지 마십시오. (그렇지 않으면 접근 거부 에러가 발생할 것입니다.)

핫픽스가 성공적으로 설치되었는지의 여부는 VS2008를 실행하고 Help -> About 메뉴를 실행하면 알 수 있습니다. ‘Hotfix for Microsoft Visual Studio Team System 2008 Team Suite – ENU (KB946581)’라는 항목이 있으면 성공적으로 설치된 것입니다.

패치를 삭제하고 싶으면, 제어판 -> 프로그래 추가/제거를 실행하고 마이크로소프트 비주얼 스튜디오 2008 (혹은 Visual Web Developer Express 2008) 아래에 있는 “Hotfix for Microsoft Visual Studio 2008 – KB946581”를 선택하고 "제거"를 클릭하면 됩니다.

요약

물론 처음부터 버그가 없는 제품을 출시하는 것이 가장 좋은 일일 것이지만, 그래도 이 핫픽스가 어느 정도 버그를 해결할 수 있으면 좋겠습니다. 버그의 원인을 파악할 수 있게 도움을 준 분들과, 지난 몇 주간 핫픽스를 검증하는 것을 도와 준 고객들에게 감사 드립니다.

노트 : VS 2008 웹 개발 기능의 이상을 발견하면 www.asp.net에 있는 VS 2008 Forum에서 도움을 요청하십시오. VS Web Tools 팀이 항상 이 포럼을 모니터링 하고 있기 때문에 아마도 도움을 줄 수 있을 것입니다.

도움이 되길 바라며,

스캇

:

2월 6일 링크 모음: ASP.NET, ASP.NET AJAX, Visual Studio, .NET, WPF

번역/ScottGu's Blog 2008. 2. 6. 19:39

원문 : Feb 6th Links: ASP.NET, ASP.NET AJAX, Visual Studio, .NET, WPF

저의 링크 리스트 시리즈의 최신판을 포스팅 합니다. 제가 작성한 예전 포스트 중 인기 있는 기사들에 대한 링크는 ASP.NET 팁, 트릭, 튜토리얼 페이지에서 찾을 수 있으니, 관심 있으신 분들은 그것도 확인하시기 바랍니다.

ASP.NET

ASP.NET AJAX
비주얼 스튜디오
  • 네임 스페이스의 분석과 사용하지 않는 using 문의 삭제 : David Hayden는 개발자들이 종종 간과하기 쉬운 몇 가지 비주얼 스튜디오의 코드 편집 기능에 대한 기사를 썼습니다.
  • 비주얼 스튜디오 2008 제품 비교 : 일전에 몇몇 분들이 제게 메일을 보내셔서 비주얼 스튜디오 2008 각 버전(스탠다드, 프로페셔널, 비주얼 스튜디오 팀 시스템 등) 간의 차이를 설명하는 페이지를 만들어 달라고 요청하신 적이 있습니다. 더 상세한 내용을 알고 싶으시면 이 링크를 클릭하십시오.
  • 아시나요...Shift+ESC로 툴 윈도우 닫기 : Sara Ford는 여전히 "아시나요..." VS 2008 팁과 트릭 시리즈를 작성하고 있습니다. 솔직히 이번 포스트는 저도 몰랐던 기능이네요. 제가 항상 추천하는 생산성 향상을 위한 팁 중 하나는 IDE의 단축키를 적극적으로 익히라는 것입니다. 단축키를 익히는 데 들어간 시간 보다 훨씬 많은 시간이 절약됩니다. 여기서 VB 2008 키 바인딩 포스터를 받으시거나, 여기서 C# 2008 용 키 바인딩 포스터를 다운로드 받으십시오. 그리고 출력을 해서 잠자는 동안 흡수할 수 있게 베게 밑에 넣어두십시오.
.NET
  • yield의 힘: Joshua Flanagan는 C# 2.0에서 가장 빼어난 기능 중의 하나이지만 아직 많이 쓰이고 있지는 않은 yield 키워드에 대한 기사를 작성하였습니다. yield 키워드는 IEnumerable 관련 작업을 효율적으로 구현하고 반복을 지연시키는 매우 강력한 기능입니다. (.Net 3.5의 LINQ는 이 기능에 크게 의존하고 있습니다.) C#을 좀 더 확실히 마스터하고 싶으면 C# 3.0 In a Nutshell 이라는 책을 보실 것을 강력하게 추천합니다. (저는 이 책의 아마존 리뷰에 별 5개를 줬습니다.)
WPF

 

도움이 되길 바라며,

스캇

:

MIX08

번역/ScottGu's Blog 2008. 2. 1. 18:32

원문 : MIX08

MIX는 우리가 매년 라스 베가스에서 개최하는 마이크로소프트 웹 개발 컨퍼런스입니다.

MIX는 재미있는 이벤트입니다. 두 가지 이유를 들어서 그런데요. 먼저 MIX는 최첨단 기술을 다룬다는 것입니다. (MIX07에서는 실버라이트 플랜이 발표되었었지요.) 두 번째 이유는 굉장히 다양한 참가자들이 모인다는 것입니다. (참가자 중에는 현재 마이크로소프트의 기술을 사용하고 있는 사람도 많지만, 사용하지 않는 사람들의 %도 상당히 높습니다.) MIX는 세션과 쌍방향 패널들 간의 교류에 중점을 두고 구성되었으며 , 좌석의 배치도 대화하기 편리하게 디자인되었습니다.

올해의 MIX는 3월 5일 부터 3월 7일 까지 라스 베가스에서 열립니다. Ray Ozzie과 저는 첫번째 날에 키노트를 진행할 것이고요. 둘째 날에는 Steve Ballmer와 Guy Kawasaki가 키노트를 진행합니다.

이번 컨퍼런스에서는 (특히 저의 키노트에서는) 상당히 많은 새로운 웹 기술이 선보이게 됩니다. 각 세션들의 주제는 다음과 같습니다.

  • IE 8
  • IIS 7.0
  • ASP.NET (ASP.NET 3.5, ASP.NET AJAX, ASP.NET MVC, ASP.NET 동적 데이타 포함)
  • VS 2008 and Expression Studio
  • WPF
  • Silverlight 2
  • 기타 많은 기술들

위 기술 중 일부에 대해서 제가 인터뷰한 내용이 Channel 9에 실려 있습니다. 파트 1은 IIS7에 대한 것이며, 파트 2는 ASP.NET, WPF, Silverlight 2를 다루고 있습니다.

빨리 등록하지 않으면 기회를 놓칩니다.

MIX는 TechEd나 PDC에 비하면 상대적으로 협소한 장소에서 개최됩니다. 이 말은 참가자들이 더 친밀한 느낌을 가질 수 있다는(참 재미있는 말입니다.) 의미이기도 하지만, 동시에 매년 표가 매진이 되고, 일단 매진이 되고 나면 진짜로 표가 없다는 의미이기도 합니다.

작년에 저는 MIX가 매진되고 난 후에 표를 구해달라는 이메일을 50통 정도 받았습니다. 또 많은 분들이 혹시 누군가가 들여보내주지 않을까 하는 기대를 가지고 행사장으로 바로 날아가버리기도 했습니다. (불행하게도 이 분들은 당연히 입장을 못했습니다.) 장소가 협소하기 때문에 (그리고 엄격한 화재 예방 지침 때문에) 매진이 되고 나면 구할 수 있는 표가 진짜로 없습니다. 심지어 제 시간에 등록하지 않은 제 팀원이 나중에 마음을 바꿔 참석하고 싶다고 해도 표를 구해줄 수 없을 정도입니다.

올해의 등록은 예전의 어떤 해 보다도 빨리 마감될 것으로 예상됩니다. 참석할 생각을 가지고 계신다면 최대한 빨리 등록하시라는 말씀을 드리고 싶습니다. 이벤트에 대한 더 자세한 소개와 온라인 등록 페이지는 여기서 보실 수 있습니다.

MIX에서 뵙기를 바라며 - 재미 있을 겁니다....

스캇

:

VS 2008 웹 배포 프로젝트 지원이 출시 되었습니다.

번역/ScottGu's Blog 2008. 1. 29. 15:49

원문 : VS 2008 Web Deployment Project Support Released

지난 금요일에 우리는 VS 2008 웹 배포 프로젝트에 대한 마지막 RTW(release to web) 지원을 출시 하였습니다. 여기에 가시면 더 많은 정보를 얻으실 수 있으며 무료로 다운로드도 받을 수 있습니다.

웹 배포 프로젝트는 VS 2008에 내장된 "ASP.NET 웹 사이트" 혹은 "ASP.NET 웹 응용프로그램 프로젝트"에 모두 사용될 수 있으며, 빌드, 패키징, 배포에 관한 몇 가지 옵션을 추가로 제공합니다. 좀 더 상세한 내용은 예전에 제가 작성한 튜토리얼 포스트에서 보실 수 있습니다.

VS 2008 웹 배포 프로젝트 버전은 VS 2005 웹 배포 다운로드가 제공하는 모든 기능을 지원합니다. 게다가 아래 기능도 추가로 지원합니다.

  • VS 2005 웹 배포 프로젝트에서 VS 2008 웹 배포 프로젝트로의 손쉬운 마이그레이션
  • 웹 배포 빌드가 성공되었을 때만 출력물을 교체
  • IIS7 지원

이번 RTW(release to web) 버전에서는 지난 달에 발표한 December CTP 버전의 몇 가지 버그를 수정했고, 고객들이 요청한 간단한 기능들을 추가하였습니다. 설치하기 전에는 반드시 이전 버전의 VS 2008 웹 배포 프로젝트 지원은 삭제하시기 바랍니다. VS 2008 웹 배포 프로젝트는 VS 2005 웹 배포 프로젝트와 같이 설치될 수 있습니다. 따라서 예전 프로젝트들을 아직 사용하고 있다면 굳이 VS 2005 버전을 삭제할 필요는 없습니다.

더 강력해진 배포 기능

지난 링크 목록 포스트에서 저는 IIS 팀이 곧 새로운 웹 배포 툴을 출시할 것이라고 하였습니다. 이 툴은 IIS6와 IIS7에서 모두 동작하며, 자동화된 복사 배포, 파일 동기화, 웹 서버로의 응용프로그램 마이그레이션을 지원합니다. ASP.NET 응용프로그램을 원격 서버에 배포하는 작업을 자동화하는 방법을 찾고 있다면, 반드시 이 툴을 검토해보시기 바랍니다.

마지막으로 배포한 설정을 수정할 때, 빌드 환경 내의 빌드 후 단계로 VS 2008 웹 배포 프로젝트를 사용할 수 있습니다. 그런 다음에는 IIS 웹 배포 툴을 사용하여 수정된 설정을 원격지에 있는 서버 머신으로 복사할 수 있습니다. 또는 IIS 웹 배포 툴을 사용하여 보통의 "ASP.NET 웹 사이트" 혹은 "ASP.NET 웹 응용프로그램" 프로젝트를 원격 머신으로 복사하는 방법도 있습니다. (이 경에는 VS 2008 웹 배포 프로젝트가 필요하지 않습니다.)

IIS 웹 배포 툴에 대해 더 많이 알고 싶으시면 이 페이지의 하단에 있는 따라하기를 읽어보십시오. (특히 "MS Deploy 소개" 항목) 저도 조만간에 IIS 웹 배포 툴을 사용하여 웹 서버 배포를 자동화하는 방법에 관한 블로그 포스트를 작성할 계획입니다.

도움이 되길 바라며,

스캇

: