달력

052008  이전 다음

  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

2008 Daum UI Dev Day

Thinking 2008/05/29 21:34
다음 UI 개발팀 블로그 : http://blog.daum.net/uidev/
다음 DNA 블로그 : http://dna.daum.net

드디어 내일 삼성역 섬유센터 17층에서 2008 Daum UI Dev Day가 열립니다.
오늘 회사에서 최종 리허설을 했습니다.
어찌나 말이 꼬이던지 꽤 여러번 당황 했었습니다.ㅎㅎ

주제 : RIA and Silverlight
사용자 삽입 이미지
사용자 삽입 이미지

내일 세미나 장에서 저를 알아보게 되는 분은 "세티의 Lonely Star"에서 봤다고 말씀해주시면
제가 커피 사드립니다.^^
크리에이티브 커먼즈 라이선스
Creative Commons License

'Thinking' 카테고리의 다른 글

프로가 되기 위해 주어지는 시간  (0) 2008/06/07
프로가 되기 위해...  (0) 2008/06/05
2008 Daum UI Dev Day  (4) 2008/05/29
Flex와 Silverlight 어떤게 더 좋아요?  (0) 2008/05/12
뮤지컬 '미라클'  (0) 2008/05/12
MS와 월드와이드 우주망원경  (0) 2008/05/07
Posted by -세티-

출처: http://www.microsoft.com/korea/msdn/library/ko-kr/bb190632.aspx

필요해서 퍼온 자료 입니다.

WPF/E(코드 이름) 시작

Laurence Moroney

2006년 12월

적용 대상: "WPF/E"(코드 이름) Microsoft Visual Studio 2005

요약: 이 백서에서는 "WPF/E"에 대한 간략한 개요와 이 기술을 차세대 웹 응용 프로그램 개발 스택에 적용하는 방법에 대해 살펴봅니다.

목차


"WPF/E"란?

"WPF/E"는 다양한 플랫폼에서 실행되도록 개발된 새로운 웹 프레젠테이션 기술의 코드 이름입니다. 이 기술을 사용하면 여러 장치와 데스크톱 운영 체제(예: Apple Macintosh)의 브라우저 화면에서 실행 가능한 화사하고 멋진 대화식 환경을 만들 수 있습니다. Microsoft .NET Framework 3.0(Windows 프로그래밍 인프라)의 프레젠테이션 기술인 WPF(Windows 프레젠테이션 파운데이션)와 마찬가지로 "WPF/E"의 프레젠테이션 기능은 XAML(eXtensible Application Markup Language)을 토대로 합니다.

이 백서는 "WPF/E"의 기본적인 내용, 그리고 Microsoft Expression Graphic Designer, Microsoft Visual Studio 2005를 비롯한 Microsoft 도구와 XAML을 사용하여 멋진 그래픽으로 장식된 사이트를 만드는 방법을 단계별로 안내합니다. 먼저 "WPF/E"의 발전 배경에 대한 기본적인 내용과 개발 영역에서 "WPE/E"의 위치에 대해 살펴보겠습니다.


웹 개발의 진화: 차세대 웹으로

CERN의 Tim Berners-Lee가 처음 웹을 만들었을 당시 웹은 네트워크 기반 시스템에서 정적 문서를 저장하고 연결하기 위한 시스템이었습니다. 시간이 지나면서 혁신이 이루어지고, 웹은 자연스럽게 "동적" 문서 단계로 발전했습니다. 동적 문서는 특정 시간 또는 사용자 정보에 따라 요청된 시점에 생성됩니다. CGI와 같은 기술이 이러한 개념을 채용했습니다. 이후 웹에서 문서를 생성할 수 있는 기능이 가장 중요한 요소로 부각되었으며 CGI, Java, ASP, 그리고 ASP.NET을 통해 기술 진화가 이루어졌습니다.

ASP.NET은 개발자가 서버 개발 패러다임과 Visual Studio 제품군의 분야별 최고급 도구를 사용하여 고품질 웹 응용 프로그램을 신속하게 개발할 수 있는 능력을 갖추는 데 있어 일대 전기가 되었습니다.

웹 응용 프로그램의 커다란 장벽은 사용자 환경이었습니다. 웹 응용 프로그램은 기술적인 제약으로 인해 로컬 데이터를 사용하는 클라이언트 응용 프로그램이 제공하는 것과 동일한 수준의 풍부한 사용자 환경을 제공하지 못했습니다.

Microsoft가 2000년 Internet Explorer 5의 일부로 발표한 XMLHttpRequest 개체는 AJAX(Asynchronous JavaScript and XML) 기술의 바탕이 되었습니다. AJAX 기술을 사용하면 웹 응용 프로그램에서 전체 콘텐츠를 다시 로드할 필요 없이 웹 페이지의 일부만 새로 고침으로써 사용자 입력에 대해 보다 동적인 반응을 제공할 수 있습니다. Windows Live Local 지도와 같은 AJAX 기반의 혁신적인 솔루션은 웹 응용 프로그램이 클라이언트와 유사한 사용자 환경을 제공할 수 있도록 한 단계 더 발전시켰습니다.

"WPF/E"는 응용 프로그램 개발자와 디자이너가 고객에게 제공할 수 있는 풍부한 사용자 환경의 다음 발전 단계입니다. 이러한 발전이 가능한 것은 "WPF/E"를 통해 디자이너가 창의력을 발휘하고 웹에서 바로 사용 가능한 형식으로 작업을 저장할 수 있기 때문입니다. 과거의 경우 디자이너가 풍부한 출력을 제공하는 도구를 사용하여 웹 사이트와 사용자 환경을 디자인한다 해도 개발자가 이를 구현하는 과정에서 웹 플랫폼의 제약을 받아야 했습니다. "WPF/E" 모델에서는 디자이너가 원하는 사용자 환경을 만든 다음 XAML로 이를 표현할 수 있으며 개발자는 "WPF/E" 런타임을 사용하여 이 XAML을 바로 웹 페이지로 만들 수 있습니다. 따라서 디자이너와 개발자는 이전보다 훨씬 더 긴밀하게 협력하여 풍부한 클라이언트 사용자 환경을 제공할 수 있게 됩니다.

XAML은 텍스트 기반인 XML이기 때문에 방화벽 환경에서도 편리하게 사용할 수 있고 풍부한 콘텐츠를 나중에 쉽게 확인할 수 있는 형태로 기술할 수 있습니다. DHTML/CSS/JavaScript보다 더 풍부한 콘텐츠를 제공할 수 있는 Java Applet, ActiveX, Flash와 같은 다른 기술도 있지만 이러한 기술은 모두 브라우저로 이진 콘텐츠를 전송하므로 보안 감사가 어려우며 당연히 업데이트도 어렵습니다. 변경 사항이 있으면 전체 응용 프로그램을 다시 설치해야 하는데, 이는 결코 사용자 친화적인 환경이 아니며 페이지 정체로 이어질 수도 있습니다. "WPF/E"를 사용하면 콘텐츠를 변경해야 하는 경우 서버 쪽에서 새 XAML 파일이 생성됩니다. 브라우저가 해당 페이지를 다음 번 방문할 때 이 XAML이 다운로드되어 아무런 재설치 작업 없이 환경이 업데이트됩니다.

"WPF/E"의 핵심은 XAML을 렌더링하고 브라우저 화면에 결과 그래픽을 그리는 브라우저 향상 모듈입니다. 이 모듈은 다운로드 크기가 작고(2MB 미만) 사용자가 "WPF/E" 콘텐츠를 포함하는 사이트를 방문할 때 설치할 수 있습니다. 이 모듈은 JavaScript 개발자에게 XAML 페이지의 기본 프레임워크를 제공합니다. 따라서 페이지 수준에서 콘텐츠와의 상호 작용이 가능하고, 개발자는 JavaScript 코드를 사용하여 이벤트 핸들러를 작성하거나 XAML 페이지 콘텐츠를 조작하는 등의 작업을 할 수 있습니다.

이론은 이것으로 마치고 이제 실습을 통해 첫 "WPF/E" 프로젝트를 만들어 살펴보겠습니다.


간단한 "WPF/E" 응용 프로그램 만들기

XAML을 사용하여 매우 간단한 "WPF/E"용 그래픽을 만들기 위해 Microsoft Expression Graphic Designer부터 살펴보겠습니다. 그림 1은 이 제품을 실행 중인 화면입니다.

그림 1. Expression Graphic Designer 도구

Expression Graphic Designer는 Microsoft의 새로운 도구로, 벡터 기반 및 픽셀 기반 그래픽 디자인 도구의 장점을 취합하여 디자이너가 새로운 창의력을 발휘할 수 있게 해줍니다. 이 도구를 사용하면 다른 응용 프로그램의 그래픽을 가져오고, WPF 및 "WPF/E"용 XAML을 포함한 다양한 소프트웨어 도구로 디자인 요소를 내보낼 수 있습니다.


"WPF/E"를 위한 그래픽 디자인 파일 준비

Expression Graphic Designer를 사용하여 Popcan.xpr 파일을 엽니다. 이 파일은 Program Files\Microsoft Expression\Design Beta 1\Samples 디렉터리에 있으며 그림 1에 사용된 그래픽 파일입니다.

파일을 열면 픽셀 해상도가 상당히 높다는 것을 알 수 있습니다. 세로 및 가로 눈금자를 사용하여 확인하면 1280 × 1024 픽셀입니다. 그림 2는 이미지의 너비를 나타내는 가로 눈금자를 보여 줍니다.

그림 2. Expression Graphic Designer의 가로 눈금자

그림 3에서 볼 수 있듯이 File(파일), Document Size(문서 크기)를 선택하면 표시되는 Document Size(문서 크기) 대화 상자에서도 확인할 수 있습니다.

그림 3. Document Size(문서 크기) 대화 상자

Document Size(문서 크기) 대화 상자를 사용하여 이미지 크기를 300 × 150 픽셀로 변경합니다. Document Size(문서 크기) 대화 상자에서 Width(너비) 입력란에 300을 입력하고 Height(높이) 입력란에 150을 입력하면 됩니다(그림 4 참조).

그림 4. 크기를 300 × 150 픽셀로 설정

대화 상자에서 OK(확인)를 클릭하면 이미지 크기가 조정됩니다. 이제 그림 5와 같이 깡통이 짧고 납작하게 변형된 상태가 됩니다.

그림 5. 300 × 150 픽셀로 크기를 조정한 문서

그리기는 벡터 기반이므로 품질 손실 없이 크기를 조정할 수 있습니다. 디자인 화면에서 CTRL+A를 누르면 그리기의 모든 요소를 선택할 수 있습니다. 그림 6과 같이 녹색 윤곽선이 표시되어 선택된 요소를 나타냅니다.

더 큰 이미지를 보려면 여기를 클릭하십시오.

그림 6. 모든 이미지 요소 선택(더 큰 이미지를 보려면 그림을 클릭하십시오.)

이제 프레임 내에서 이미지를 이동하고 모서리를 끌어 크기를 조정하여 원하는 가로 세로 비율로 맞출 수 있습니다. 그림 7은 깡통의 크기를 사실적으로 조정하여 문서의 왼쪽 위 모서리에 배치한 상태입니다.

그림 7. 적절한 가로 세로 비율로 크기를 조정한 깡통

이제 이 이미지를 "WPF/E" XAML 이미지로 내보낼 준비가 되었습니다.

내보내려면 File(파일), Export(내보내기), XAML을 클릭하거나 CTRL+ALT+X를 누릅니다. Common Save(일반 저장) 대화 상자가 표시됩니다. 이 대화 상자를 사용하여 XAML 파일의 위치를 지정할 수 있습니다. 파일 이름을 Popcan.xaml로 지정하고 Save(저장)를 선택합니다. Xaml Export(Xaml 내보내기) 대화 상자가 표시됩니다. 이 대화 상자를 사용하면 그림 8과 같이 "WPF/E"를 XAML 호환 형식으로 내보내는 데 관련된 세부 사항을 지정할 수 있습니다.

그림 8. "WPF/E" XAML 내보내기

화면 오른쪽에는 미리 보기 창이 있습니다. 작업을 진행하기 전에 이 창의 확대 및 이동 기능을 사용하여 이미지에 문제가 없는지 살펴볼 수 있습니다. 오른쪽에 있는 탭을 사용하면 이미지와 이 이미지를 나타내는 XAML 코드 사이를 전환하면서 검사할 수 있습니다. XAML을 처음 사용하는 경우 XAML Code(XAML 코드) 탭을 통해 코드와 이미지의 상관 관계를 파악하는 것이 좋습니다.

오른쪽의 드롭다운 옵션에서는 내보내기 특성을 지정할 수 있습니다. 예를 들어 래스터화된 이미지를 벡터화할지 특정 디렉터리로 출력만 할지 처리 방법을 지정합니다. 현재로서는 기본값을 그대로 유지해도 관계없습니다. 단, 그림 8과 같이 Document Format(문서 형식)에서 "WPF/E"를 선택해야 합니다.

여기까지 모두 마쳤으면 Export(내보내기) 단추를 클릭합니다. 그러면 "WPF/E" XAML 코드가 디스크에 작성됩니다. 이 코드는 다음 단계에서 Visual Studio 2005 웹 프로젝트에 사용됩니다. 계속해서 웹 프로젝트를 설정하고 XAML에 맞게 준비하는 방법을 알아보겠습니다.


Visual Studio 2005를 사용한 "WPF/E" 프로젝트 빌드

"WPF/E" SDK에는 "WPF/E" 프로젝트를 빌드할 수 있는 Visual Studio 2005용 템플릿이 포함되어 있습니다. 이 템플릿을 Visual Studio 2005에서 사용하려면 다음 IDE 추가 기능을 다운로드해야 합니다.

먼저 Microsoft에서 Update to Support Web Application Projects를 다운로드 및 설치 (영문) 해야 합니다.

이 파일을 설치해야 Visual Studio 2005 Web Applications Projects 추가 기능을 설치할 수 있습니다. WebApplicationProjectSetup.msi (영문) 링크를 클릭하여 다운로드 및 설치합니다. "WPF/E" SDK 다운로드에는 "WPF/E" JSApplication.zip이라는 압축 파일이 포함되어 있습니다. \Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\CSharp 디렉터리에 "WPF/E" 디렉터리를 만들어 이 압축 파일을 복사합니다. 그 다음 개발 환경이 닫혀 있는지 확인하고 명령 프롬프트에서 devenv.exe/setup을 실행합니다.

이제 Visual Studio에서 "WPF/E" 프로젝트를 만들 수 있습니다. Visual Studio IDE를 시작하고 파일, 새 프로젝트를 클릭하면 됩니다. 사용할 수 있는 프로젝트 형식에 "WPF/E"가 표시됩니다. 또한 그림 9와 같이 "WPF/E" 응용 프로그램을 새로 만들 때 사용되는 "WPF/E" JavaScript 응용 프로그램 템플릿도 표시됩니다.

그림 9. Visual Studio 템플릿 사용

이렇게 하면 하나의 HTML 페이지와 간단한 단추를 표시하는 XAML 파일을 포함하는 새 프로젝트가 만들어집니다. HTML에서 JavaScript를 사용하여 "WPF/E" 컨트롤(나중에 자세히 다룸)을 설정하는 방법, 그리고 XAML이 JavaScript에서 포착해 처리할 수 있는 이벤트를 제공하는 방법을 살펴보는 것이 좋습니다.


"WPF/E"를 위한 Visual Studio 2005 프로젝트 준비

이전 섹션의 템플릿을 사용하여 바로 응용 프로그램을 만들 수도 있지만 그보다 먼저 "WPF/E"의 작동 방식과 배포 방식을 이해하는 것이 좋을 것입니다. 이 과정을 통해 기존 웹 사이트를 구성하여 브라우저에 "WPF/E" 모듈을 배포하는 것이 얼마나 간단한지 확인할 수도 있습니다. 이 섹션에서는 기존 웹 사이트를 "WPF/E" 사이트로 수동으로 구성하는 방법을 살펴보겠습니다.

이 백서를 작성할 때 필자는 Visual Studio 2005와 "Orcas" CTP Preview를 사용했습니다. "Orcas"는 필요 없지만 설치되어 있으면 IntelliSense를 사용할 수 있고 "Cider" XAML 디자이너에서 완성된 XAML을 미리 볼 수 있으므로 XAML 코드를 조금 더 쉽게 작성할 수 있습니다. 단, Cider는 "WPF/E"가 아닌 WPF용으로 고안되었으므로 현재로서는 "WPF/E"를 위한 XAML 코드를 개발하는 데 사용하면 안 됩니다.

시작하려면 Visual Studio 2005를 실행하고 파일새 웹 사이트 대화 상자를 사용하여 새 웹 사이트를 만듭니다(그림 10 참조).

그림 10. Visual Studio 2005에서 새 웹 사이트 만들기

그러면 간단한 Default.aspx ASP.NET 페이지가 포함된 새 솔루션이 만들어집니다. 이 페이지를 실행하면 브라우저에서 렌더링되는 HTML이 생성됩니다. 이제 첫 "WPF/E" 페이지를 위한 기반이 마련되었습니다.

다음으로 플러그 인을 위한 배포 파일을 가져와야 합니다. 먼저 솔루션 탐색기에서 프로젝트(http://localhost/MyFirstWPFE)를 마우스 오른쪽 단추로 클릭하고 새 폴더를 선택하여 웹 사이트에 Bin 디렉터리를 만듭니다. 새 폴더의 이름을 "Install"로 바꾼 후 "WPF/E" 다운로드 파일에서 install.msi, MozillaControl1712.exe, WPFE.dmg, xcpctrl.cab 및 xcpctrl.xpi 파일을 이 디렉터리에 추가합니다. Windows 탐색기에서 이 파일을 끌어서 Visual Studio 2005 솔루션 탐색기 창의 Bin 디렉터리에 놓으면 됩니다. 또한 이전 섹션에서처럼 Visual Studio 2005 템플릿을 사용하여 개발한 모든 프로젝트에서 이 파일을 가져올 수 있습니다.

그 다음 웹 사이트에 aghost.js 파일을 추가해야 합니다. 이 파일 역시 Windows 탐색기에서 끌어서 솔루션에 놓는 방법으로 추가할 수 있습니다. 마지막으로 솔루션에서 XAML이라는 새 폴더를 만들고 앞서 만든 Popcan.xaml 파일을 이 폴더에 복사합니다.


"WPF/E" 콘텐츠를 렌더링하도록 웹 페이지 편집

이제 포함된 "WPF/E" 콘텐츠를 처리하도록 웹 페이지를 편집하는 방법을 살펴보겠습니다. 이 작업은 매우 간단합니다. JavaScript 참조 한 개를 추가하고 aghost.js에 정의된 JavaScript 개체를 호출하기만 하면 됩니다. 나머지 작업은 JavaScript 라이브러리와 "WPF/E" 설치 프로그램이 처리합니다.

먼저 목록 1과 같이 되도록 페이지를 편집합니다. 여기에서 수행하는 작업은 원래 "Untitled Page"인 페이지 제목을 바꾸고 aghost.js에 대한 JavaScript 참조를 추가하고 페이지 본문에 agHost 개체에 대한 호출을 포함하는 새 Div를 추가하는 것이 전부입니다. 목록 1에서 이 코드를 볼 수 있습니다.

목록 1. default.aspx HTML 코드

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" 
Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html  >
<head id="Head1" runat="server">
    <title>My first "WPF/E" Page!</title>
   <script type="text/javascript" src="agHost.js "></script>
</head>
<body>
    <form id="form1" runat="server">
    
    <div id="AgControl1Host">
    <script type="text/javascript">
    new agHost("AgControl1Host", "AgControl1", "400",
                 "400", "#00000000", null, "xaml/Popcan.xaml",
                 "True", "30", null);
        </script>
    </div>
    </form>
</body>
</html>

지금은 "new AgHost"라는 JavaScript 호출이 다소 어렵게 보일 수 있지만 걱정하지 마십시오. 여기에 대해서는 나중에 다시 설명하겠습니다. 다음 섹션에서는 먼저 Internet Explorer와 Mozilla Firefox에서 이 응용 프로그램을 실행하는 환경을 살펴볼 것입니다. 이후 "WPF/E"를 제어하는 JavaScript 개체를 알아보고 그래픽에 애니메이션을 추가하여 생동감 있게 만드는 편집 작업을 수행하게 됩니다. 이제 응용 프로그램을 실행하고 ASP.NET에서 "WPF/E" 콘텐츠를 포함하는 페이지를 생성할 준비가 되었습니다. 응용 프로그램을 시작하려면 Visual Studio 2005에서 F5를 누릅니다. 응용 프로그램을 처음 실행하면 브라우저에서 "WPF/E"가 설치되어 있는지 여부를 탐지합니다. 설치되어 있지 않은 경우 페이지가 시작될 때 "WPF/E" 모듈을 설치할 것인지 묻는 대화 상자가 표시됩니다. 부록 I에서는 Windows에서 실행되는 Internet Explorer와 Mozilla Firefox를 위한 설치 환경 세부 사항을 제공합니다.


JavaScript의 이해

"WPF/E"를 사용하여 이 XAML을 페이지에 넣는 JavaScript 코드는 다음과 같습니다.

new agHost("AgControl1Host", "AgControl1", "400", "400", "#00000000", 
null, "xaml/Popcan.xaml", 
            "True", "30", null);

이 코드는 필요한 매개 변수를 사용하여 "WPF/E" 플러그 인의 새 인스턴스를 만듭니다. 이러한 매개 변수는 다음과 같습니다(순서대로).

hostElementID: 플러그 인 컨트롤을 호스팅할 HTML 요소의 이름입니다. 따라서 플러그 인을 포함하는 페이지에 <div>가 있다면 <div>에 이름을 지정하고 그 이름을 여기에 사용합니다.

controlID: 플러그 인의 ID입니다.

height: 픽셀 단위의 컨트롤 높이입니다.

width: 픽셀 단위의 컨트롤 너비입니다.

backgroundColor: 컨트롤의 배경색입니다.

sourceElement: 컨트롤의 XAML을 포함하는 페이지 요소의 이름입니다. 이는 <script> 요소에 포함된 컨트롤의 XAML을 구성하는 한 가지 방법입니다(페이지에서 XAML의 위치). 이 방식을 사용하는 경우 <script> 요소의 ID를 이 매개 변수에 넣으면 컨트롤이 해당 위치에서 요소를 가져옵니다.

sourceURL: 외부 XAML 파일의 위치입니다.

isWindowless: 부울 값입니다. 창이 없는 방식으로 "WPF/E" 컨트롤을 사용하려면 이 매개 변수의 값을 True로 설정합니다. 이렇게 하면 HTML 페이지에서 "WPF/E" 컨트롤이 인라인으로 표시됩니다. 예를 들어 투명으로 설정하면 HTML이 컨트롤 "뒤에" 표시됨을 의미합니다. 창이 없는 방식이 아니면(즉, False로 설정하는 경우) "WPF/E" 콘텐츠는 페이지의 별개 영역에 위치하고 HTML 태그가 그 앞뒤에 위치하게 됩니다.

maxFrameRate: "WPF/E"가 애니메이션 콘텐츠를 렌더링하는 최대 프레임 속도를 지정하는 숫자입니다.

loadHandler: 페이지에 있는 요소 중 컨트롤이 로드될 때 실행할 <script> 요소의 이름입니다.

errorHandler: 페이지에 있는 요소 중 컨트롤에 오류가 발생할 때 실행할 <script> 요소의 이름입니다.

이러한 매개 변수를 사용하여 agHost 컨트롤의 새 인스턴스를 만들면 agHost.js가 호출되어(따라서 HTML에 이 파일에 대한 참조가 필요) 컨트롤을 감싸는 <object> 태그를 생성합니다. 따라서 Internet Explorer를 사용한다면 앞의 경우 다음과 같은 <object> 태그가 생성됩니다..

<object id="AgCotnrol1" height="400" width="400"
    Codebase="install/xcpctrl.cab"
    classid="CLSID:32C73088-76AE-40F7-AC40-81F62CB2C1DA">
    <param name="Source" value="xaml/Popcan.xaml" />
    <param name="MaxFrameRate" value="30" />
    <param name="BackgroundColor" value="#00000000" />
    <param name="WindowlessMode" value="True" />
</object>

원할 경우 언제든 페이지에 이 코드를 바로 사용할 수 있지만 JavaScript 개체를 사용하는 편이 훨씬 더 간결하고 <object> 태그 구현 세부 사항으로 인해 HTML 페이지가 복잡해지는 일도 없습니다.


XAML을 편집하여 텍스트 추가

Visual Studio 2005에서 XAML을 직접 편집하여 원하는 항목을 추가할 수 있습니다. 이 예에서는 기본적인 텍스트를 포함하도록 XAML에 TextBlock 컨트롤을 추가해 보겠습니다.

Visual Studio 2005에서 XAML 파일을 엽니다. "Orcas" CTP가 설치되어 있는 경우 "Cider" 편집기에서 XAML을 미리 볼 수 있습니다(그림 11 참조). "Cider" 디자이너는 WPF 응용 프로그램 전용이므로 "WPF/E" XAML에는 도구 모음을 사용하여 컨트롤을 추가할 수 없다는 점을 유의하십시오. "Orcas" CTP가 설치되어 있지 않은 경우에는 XML 편집기만 열립니다.

그림 11. Visual Studio 2005를 사용하여 XAML 편집(더 큰 이미지를 보려면 그림을 클릭하십시오.)

XAML에 텍스트 블록을 추가하려면 맨 아래로 스크롤한 후 닫는 </Canvas> 태그 바로 앞에 다음 코드를 추가합니다.

<Canvas x:Name="Layer_3">
  <TextBlock x:Name="MyLink" Canvas.Left="150" Canvas.Top="0"
      FontFamily="Verdana" FontSize="18"
      Width="250" TextWrapping="Wrap">
          Drink some of this yummy WPFE soda!
          Much better than a Hello, World App, right?
   </TextBlock>
</Canvas>

그림 12에서 이 코드가 웹 페이지에 미치는 영향을 볼 수 있습니다.

그림 12. 텍스트 블록을 포함하는 XAML


간단한 애니메이션을 위한 XAML 편집

XAML을 사용하여 애니메이션을 위한 스토리보드를 지정할 수 있습니다. 이 예에서는 텍스트를 화면의 위아래로 튕기는 간단한 애니메이션을 "WPF/E" 페이지에 추가해 보겠습니다. Canvas가 로드될 때 실행되는 EventTrigger를 추가하여 이 작업을 수행합니다. 이 이벤트 트리거는 작업을 포함할 수 있습니다. 지정된 작업은 "DoubleAnimation"을 포함하는 스토리보드를 시작하는 것입니다. 이러한 유형의 애니메이션은 "From"에서 시작해 "To"에서 끝나는 범위로 숫자를 조작하는 데 사용됩니다. 자동으로 왕복하면서 영구 반복되도록 설정할 수도 있습니다. 즉, 텍스트를 "튕기도록" 지정하여 0부터 지정된 숫자만큼 Top 애니메이션이 수행되고, 지정된 숫자에 이르면 자동으로 반대 방향으로 진행되어 영구히 반복되도록 할 수 있습니다. 이를 구현하는 스토리보드는 다음과 같습니다.

<Storyboard Storyboard.TargetName="MyLink"
            Storyboard.TargetProperty="(Canvas.Top)" >
  <DoubleAnimation AutoReverse="True" RepeatBehavior="Forever"
                   BeginTime="0" Duration="0:0:1"
                   From="0" To="90">
  </DoubleAnimation>
</Storyboard>

애니메이션 실행을 위한 텍스트와 트리거를 포함하는 완전한 Canvas 구현 내용은 다음과 같습니다.

<Canvas x:Name="Layer_3">
  <Canvas.Triggers>
    <EventTrigger RoutedEvent="Canvas.Loaded">
      <EventTrigger.Actions>
        <BeginStoryboard>
          <Storyboard Storyboard.TargetName="MyLink"
                      Storyboard.TargetProperty="(Canvas.Top)" >
            <DoubleAnimation AutoReverse="True" RepeatBehavior="Forever"
                             BeginTime="0" Duration="0:0:1"
                             From="0" To="90">
            </DoubleAnimation>
          </Storyboard>
        </BeginStoryboard>
      </EventTrigger.Actions>
    </EventTrigger>
  </Canvas.Triggers>
  <TextBlock x:Name="MyLink" Canvas.Left="150" Canvas.Top="0"
             FontFamily="Verdana" FontSize="18" Width="250"
             TextWrapping="Wrap">
               Drink some of this yummy "WPF/E" soda!
               Much better than a Hello, World App, right?
  </TextBlock>
</Canvas>

이제 웹 사이트를 보면 오른쪽에서 텍스트가 위아래로 "튕기는 것"을 확인할 수 있습니다.


간단한 상호 작용을 위한 XAML 편집

"WPF/E"를 사용하면 JavaScript 코드와 XAML의 상호 작용이 가능합니다. 이 예에서는 사용자와 XAML 파일이 상호 작용할 때 발생하는 이벤트를 처리하는 방법을 살펴보겠습니다. 이전 예제의 "튕기는" 텍스트에 하이퍼링크를 적용하여 다른 페이지로 연결하는 데 사용합니다.

이를 수행하려면 TextBlock 선언에서 이벤트 처리기를 지정합니다. 마우스 클릭을 캡처하여 MouseLeftButtonDown 이벤트 처리기를 통해 클릭을 처리하는 JavaScript 함수를 지정합니다. 텍스트 블록 및 hyperlink_MouseLeftButtonDown이라는 JavaScript 처리기에 대한 선언은 다음과 같습니다.

<TextBlock MouseLeftButtonDown="javascript:hyperlink_MouseLeftButtonDown"
    x:Name="MyLink" Canvas.Left="150" Canvas.Top="0"
    FontFamily="Verdana" FontSize="18"
    Width="250" TextWrapping="Wrap">Channel 9 is cool!</TextBlock>

이제 다음과 같이 호스팅 페이지(또는 페이지가 참조하는 외부 라이브러리)에서 JavaScript를 사용하여 이 이벤트를 처리할 수 있습니다.

    <script language="javascript">
       function hyperlink_MouseLeftButtonDown(sender, args) {
            window.open("http://channel9.msdn.com");
        }
    </script>

이제 페이지를 실행하면 애니메이션이 적용된 움직이는 하이퍼링크가 표시되며 이 하이퍼링크를 클릭하면 MSDN Channel 9 사이트로 연결됩니다.


믹스에 미디어 추가

"WPF/E"는 웹 개발자에게 최고의 Windows Media를 제공합니다. 다음과 같이 XAML에서 <MediaElement> 태그를 사용하여 "WPF/E" 응용 프로그램에 미디어 콘텐츠를 손쉽게 추가할 수 있습니다.

<Canvas x:Name="Layer_4">
    <MediaElement x:Name="VideoLayer" Source="Butterfly.wmv"
                  Canvas.Top="0" Canvas.Left="130"
                  Height="200" Width="200">
    </MediaElement>
</Canvas>

이 코드가 작동하려면 루트 웹 사이트에 Butterfly.wmv 파일이 있어야 합니다. 이 WMV 파일은 Windows Vista와 함께 제공되는 "샘플 비디오" 중 하나로, 문서 폴더에 있습니다. 이 파일이 없으면 원하는 WMV 파일로 대체하십시오.

MediaElement는 비디오를 시작, 중지, 일시 중지 및 탐색하는 데 사용할 수 있는 메서드를 제공합니다. 이에 대한 자세한 내용은 "WPF/E" 설명서 및 샘플을 참조하십시오.

그림 13은 비디오가 포함된 "WPF/E" 응용 프로그램을 보여 줍니다.

그림 13. 비디오가 포함된 "WPF/E"


결론

이 백서에서는 "WPF/E"에 대한 간략한 개요와 이 기술을 차세대 웹 응용 프로그램 개발 스택에 적용하는 방법에 대해 살펴보았습니다. 디자이너의 사양, 개발자의 도구 및 사용자에 제공되는 콘텐츠를 연결하는 고리로써 XAML을 사용하는 방법을 알아보고 Expression Graphic Designer에 대한 소개와 이 도구를 사용하여 웹 페이지를 위한 그래픽을 정의하는 방법, 그리고 이 그래픽을 "WPF/E" XAML로 내보내는 방법을 익혔습니다. 그 다음 Visual Studio 2005 웹 프로젝트로 이 XAML을 가져와 디자이너의 "WPF/E" XAML을 렌더링하기 위해 Internet Explorer 및 Firefox로 XAML 런타임을 배포하도록 구성하는 방법을 확인했습니다. 마지막으로 XAML을 조작하여 애니메이션, 상호 작용, 미디어를 추가하는 방법을 알아봤습니다.

이 기사에서 수행한 작업은 "WPF/E"로 할 수 있는 작업의 극히 일부에 불과합니다. 이 기술은 차세대 웹 구축을 시작하는 데 사용할 수 있는 풍부한 기능을 담고 있습니다. "WPF/E"와 함께 재미있는 여행을 시작해 보십시오!


부록 I: 설치 환경

"WPF/E" 콘텐츠가 있는 웹 페이지를 보려면 브라우저에 "WPF/E" 기능을 추가해야 합니다. 사용자에게 설치 여부를 묻는 개체 태그 메서드를 사용하거나 브라우저에 "WPF/E" 기능이 적용되어 있는지 확인한 다음 사용자에게 모듈을 받을 수 있는 적절한 다운로드 페이지를 알리는 방법 중 하나를 사용할 수 있습니다.

샘플 응용 프로그램에서는 "WPF/E" 모듈이 설치되어 있지 않은 경우 사용자가 적절한 모듈을 설치할 수 있도록 프롬프트를 표시하는 개체 태그를 사용하고 있습니다. 이 방법에서는 응용 프로그램을 처음 실행하면 브라우저에서 "WPF/E"가 설치되어 있는지 여부를 탐지합니다. 설치되어 있지 않은 경우 페이지가 시작될 때 "WPF/E" 모듈을 설치할 것인지 묻는 대화 상자가 표시됩니다. 다음 섹션에서는 각각 Internet Explorer와 Mozilla Firefox를 사용하여 이 워크플로를 따르는 경우의 사용자 환경에 대해 자세히 살펴보겠습니다.


Internet Explorer에서 페이지 실행

그림 14와 같은 Internet Explorer 보안 경고 대화 상자가 표시됩니다. 설치를 선택하면 플러그 인이 다운로드되어 설치됩니다. 다음 섹션에서 이에 대해 자세히 알아보겠습니다.

그림 14. "WPF/E" 설치에 대한 브라우저 보안 경고

설치를 선택하면 그림 15와 같이 설치 마법사가 시작됩니다.

그림 15. "WPF/E" 설치 시작

최종 사용자 사용권 계약을 신중하게 읽고 해당 내용에 동의하면 동의함을 선택합니다. 그림 16과 같이 WPFE 설치가 시작됩니다.

그림 16. "WPF/E" 설치

설치가 성공적으로 완료되면 그림 17과 같은 설치 완료 대화 상자가 표시됩니다.

그림 17. WPF/E 설치

마침을 누르면 준비가 완료됩니다. 그림 18에서 볼 수 있듯이 XAML이 즉각 렌더링됩니다.

그림 18. 브라우저에서 렌더링되는 XAML

다음 섹션에서는 Mozilla Firefox 브라우저에서의 설치 플러그 인 환경을 살펴보겠습니다.


Mozilla Firefox에서 페이지 실행

이전 섹션에서 "WPF/E"를 통해 Internet Explorer가 어떻게 향상되는지 살펴봤습니다. 그러나 "WPF/E"는 다중 브라우저, 다중 플랫폼 기술입니다. 이 섹션에서는 Microsoft Windows Vista에서 실행되는 Mozilla Firefox에서의 "WPF/E" 작동 방식을 알아보겠습니다.

"WPF/E"가 설치되어 있지 않은 경우 Firefox를 실행하면 그림 19와 같은 화면이 표시됩니다.

그림 19. Firefox에서 "WPF/E" 실행

화면의 오른쪽 위에 표시되는 Install Missing Plugins를 클릭합니다. Firefox에서 "WPF/E" 형식에 일치하는 알려진 플러그 인(application/xcp-plugin)을 탐색하지만 아무 것도 찾지 못합니다. 이는 "WPF/E"가 아직 릴리스된 제품이 아니고, 따라서 플러그 인도 Firefox Plugin Finder Service Directory에 게시되지 않았기 때문입니다. 제품이 릴리스되면 게시될 것입니다. 그림 20을 참조하십시오.

그림 20. Firefox Plugin Finder Service

Plugin Finder Service 대화 상자에서 수동 설치를 수행할 수도 있습니다. 이렇게 하면 MSI 파일이 있는 URL로 이동되며 이 파일을 시작하면 "WPF/E" 런타임 설치가 시작됩니다. 여기서부터 설치 환경은 앞 섹션에서 설명한 Internet Explorer의 환경과 동일합니다.

설치를 완료하고 페이지를 실행하면 그림 21과 같이 Mozilla Firefox 내에서 XAML이 "WPF/E"에 의해 렌더링됩니다.

그림 21. Mozilla Firefox에서 XAML 렌더링


부록 II: 서버 MIME 형식 구성

IIS 6.x 구성

"WPF/E" 응용 프로그램을 제공하는 데 필요한 MIME 형식을 위해 IIS를 구성하는 작업은 매우 간단합니다. 렌더링된 XAML 페이지가 아닌 빈 페이지가 표시되면 XAML이 IIS에서 인식 가능한 XML 형식으로 구성되지 않은 것입니다. 구성하려면 그림 22와 같이 웹 사이트 속성 대화 상자를 열고 HTTP 헤더 탭을 선택합니다.

그림 22. IIS 6.x 구성

이 대화 상자의 맨 아래에 형식을 지정할 수 있는 단추가 있습니다. IIS는 이 목록에 등록된 확장명을 가진 파일만 지원합니다. 따라서 .xaml이 등록되지 않은 경우 이 파일을 사용할 수 없고 "WPF/E" 컨트롤에 XAML을 추가할 수 없습니다. 그림 23은 구성 방법을 보여 줍니다. 필요한 경우 대화 상자의 새로 만들기 단추를 사용하여 추가하십시오.

그림 23. IIS에서 MIME 형식 구성

그림 23에는 없지만 Macintosh에 응용 프로그램을 설치하려면 application/octet-stream을 .DMG 파일 확장명에 대한 MIME 형식으로 사용해야 합니다.


IIS 7.x 구성

Windows Vista에서 IIS 7.x를 구성하려면 먼저 Windows 시작 메뉴에서 컴퓨터를 마우스 오른쪽 단추로 클릭한 다음관리를 선택합니다. 이렇게 하면 컴퓨터 관리 콘솔이 시작됩니다. 이 콘솔에서 그림 24와 같이 IIS를 선택할 수 있습니다.

더 큰 이미지를 보려면 여기를 클릭하십시오.

그림 24. Windows Vista의 컴퓨터 관리 콘솔(더 큰 이미지를 보려면 그림을 클릭하십시오.)

항목 목록을 스크롤하여 MIME 형식 애플릿을 찾습니다. 이 애플릿을 실행하여 그림 25와 같이 MIME 형식을 구성합니다.

더 큰 이미지를 보려면 여기를 클릭하십시오.

그림 25. IIS 7 MIME 형식 구성(더 큰 이미지를 보려면 그림을 클릭하십시오.)

작업 창을 사용하여 필요한 MIME 형식을 추가할 수 있습니다.

.XAML : text/xml
.DMG: application/octet-stream
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by -세티-
TAG WPF, WPF/E, XAML
원글출처: http://silverlight.net/quickstarts/silverlight10/canvas.aspx
본 강좌는 위의 원글을 참고 및 번역해서 작성했으며, 글 중간중간 제 개인적인 표현이나 의견을 넣어서 각색했습니다.

Canvas 객체
(Canvas Object)


캔버스 객체는 모양을 만들기 위한 포지션과 컨트롤들을 포함하는 객체 입니다. 모든 실버라이트 XAML 파일은 루트 엘리먼트로 캔버스를 하나씩 가지고 있습니다. 이번 강좌에서 캔버스 객체와 정의에 대해 공부해 보고, 자식 객체들에 어떻게 크기를 지정하고 포지션을 잡고 추가하는지에 대해 알아보겠습니다.

먼저 캔버스에 객체를 추가해 보도록 하겠습니다.
캔버스에 객체를 추가하기 위해서는 <canvas> 태그 사이에 추가할 다른 객체를 추가해야 합니다.

예를 들어서
사용자 삽입 이미지

위의 코드를 보면 <Canvas> 테그 사이에 <Ellipse> 태그가 위치한 걸 확인할 수 있습니다. 이 Ellipse 객체는 원을 그리기 위한 객체인데 코드에 보시는 것 처럼 원 모양에 대한 속성값(Height, Width, Stroke 등)이 설정되어 있는 것을 확인할 수 있습니다. Canvas 태그는 루트 엘리먼트로서 xmlns 선언을 가지고 있게 됩니다.

Canvas에 객체를 위치 시키기 위해 필요한 속성값이 있는데 그것은 Canvas.Left, Canvas.Top, Canvas.Left가 그것입니다. Canvas의 위치 지정 속성값을 이용해서 Canvas 객체 위에 그려진 원 객체의 위치를 변경해 보도록 하겠습니다. 먼저 Ellipse 객체에 2가지 속성값 Canvas.LeftCanvas.Top을 추가합니다.

먼저 각각 "0"을 설정해 보도록 하겠습니다.
사용자 삽입 이미지

결과는 아래의 그림과 같으며, 상단 그리고 왼쪽으로 바짝 붙어 있는 것을 볼 수 있을 겁니다.
사용자 삽입 이미지

이제 위에 제시한 코드를 이용해서 왼쪽으로 50픽셀 상단에서 하단으로 50픽셀 만큼 이동시켜 보겠습니다.
사용자 삽입 이미지

코드를 수정한 후 렌더링된 결과는 아래의 이미지와 같으며, 정확히 50픽셀 이동된 것을 확인할 수 있습니다.
사용자 삽입 이미지

다음으로 z-index에 대해 알아보도록 하겠습니다.
Canvas 엘리먼트 내에 위치한 자식 객체는 모두 순서대로 렌더링 됩니다. 젤 위에 있는 것이 먼저 렌더링 되고 나면 그 다음에 위치하는 자식 객체가 렌더링 되면서 제일 처음에 렌더링된 그림 위에 덮어쓰여 집니다. 이런 식으로 표현되는 Canvas 내의 객체에 대해 그  순서를 변경하고 싶으면 zorder를 이용해서 변경하게 됩니다.
Canvas.ZIndex라고 설정하면 되며, 값이 클수록 Canvas에서 멀어지고 값이 낮을수록 Canvas에서 가깝게 위치하게 됩니다.

먼저 3개의 원을 표시할 것이므로, Canvas의 크기를 더욱 키우도록 하겠습니다.
앞에서 만들었던 crObjS.js 에서 캔버스의 크기를 가로 500픽셀, 새로 500픽셀로 변경합니다.
사용자 삽입 이미지

그 다음에 3개의 원을 추가 합니다.
사용자 삽입 이미지

이제 브라우저를 통해 원이 잘 추가 되었는지 확인합니다.
사용자 삽입 이미지

잘 되었으면 이제 코드에 ZIndex를 설정합니다. Ellipse 엘리먼트에 Canvas.ZIndex 애트리뷰트를 설정하고 ZIndex 속성에 값을 설정하면 됩니다.
사용자 삽입 이미지

렌더링 된 결과는 다음과 같습니다.
사용자 삽입 이미지

Canvas 나 Shape 그 외 다른 많은 엘리먼트들은 높이와 넓이 속성을 가지고 있으며, 특정한 값을 할당함으로써 그것을 효과적으로 이용할 수 있습니다. 이것을 확인해보기 위해 Canvas 엘리먼트에 높이와 넓이를 주고 적절한 배경색을 주도록 하겠습니다.
사용자 삽입 이미지

위에 코드를 제시하였고, 아래는 렌더링된 결과 입니다.
사용자 삽입 이미지

위의 그림에서 빨간색 영역은 Canvas의 영역이고, 회색 부분은 호스팅된 Plug-in의 영역 입니다. Canvas와 Ellipse 객체의 기본적이 높이와 넓이 값은 모두 0 이라는 것을 참고하셨으면 합니다.

마지막으로 Canvas는 또 다른 Canvas를 포함할 수 있습니다. 그것이 가능한 이유는 Canvas 또한 또 다른 객체 이기 때문입니다.
사용자 삽입 이미지

위의 코드를 참고해서 Canvas 객체 2개를 추가합니다. 그리고 각 Canvas에 적절한 컬러를 할당합니다.
브라우저를 통해 렌더링 해보면 하단의 이미지와 같은 모양이 그려진 것을 확인할 수 있습니다.

사용자 삽입 이미지

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by -세티-

원글출처: http://silverlight.net/quickstarts/silverlight10/xaml.aspx
본 강좌는 위의 원글을 참고 및 번역해서 작성했으며, 글 중간중간 제 개인적인 표현이나 의견을 넣어서 각색했습니다.

이전 강좌에서 작성한 파일들을 이용하여 HTML 페이지에 Silverlight 플러그인이 추가된 Silverlight 프로젝트를 생성하고, 아무런 내용이 없는 XAML 파일을 생성합니다.
먼저 SimpleXAML.xaml 파일을 생성합니다. XAML 파일에 Canvas를 생성하고, Silverlight와 XAML 네임스페이스를 마크업 합니다.

사용자 삽입 이미지


위의 코드에서 XAML 파일은 <Canvas>라는 태그로 시작되는데 xmlns 라는 어트리뷰트는 Silverlight 네임스페이스에 대한 선언이고, xmlns:x 라는 어트리뷰트는 xaml 네임스페이스 입니다.
준비된 Canvas에 우리는 어떤 도형을 그리기 위해 아래의 코드를 추가합니다.
사용자 삽입 이미지

만약 실버라이트 1.0 컨트롤이 설치되어 있지 않다면 설치해야 코드로 작성된 실버라이트 결과물을 확인할 수 있습니다.

결과는 아래의 이미지와 같습니다.
사용자 삽입 이미지

우리는 실습을 통해 Silverlight를 직접 만들어 보았습니다.
매우 쉽지 않습니까?? ^^
XAML 같은 경우는 Expression Blend 같은 툴을 이용하여 직접 생성한 후 별도의 XAML 파일로 만들어 display 되기를 원하는 HTML 파일과 같은 경로상에 두면 됩니다.

다음 시간에는 이 샘플 예제에서 사용된 <Canvas>라는 태그에 대해 살펴보도록 하겠습니다.
<Canvas> 태그는 실버라이트 애플리케이션을 생성할 때 매우 빈번하게 사용되는 중요한 녀석입니다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by -세티-
원글출처: http://silverlight.net/quickstarts/silverlight10/FileSetup.aspx
본 강좌는 위의 원글을 참고 및 번역해서 작성했으며, 글 중간중간 제 개인적인 표현이나 의견을 넣어서 각색했습니다.

앞에서 우리는 실버라이트의 각 버전별 특징과 실버라이트 결과물을 제작하는데 있어서 어떤 도구를 알맞게 이용하는지 살펴봤습니다. 설명된 내용을 모두 잘 이해했다면 우리는 이제 실버라이트를 이용한 원하는 결과물을 만들어 볼 수 있을 것이빈다. 가장 많은 이용자를 확보하고 있으며, 가장 보편적인 플랫폼인 웹에서 이용할 수 있는 무언가를 만들어 보는 것이 가장 나을 듯 합니다.

웹 기반 실버라이트를 제작하기 위해서 우리는 실버라이트 1.0을 이용하도록 하겠습니다. 웹 페이지에 실버라이트를 추가하기 위해서 일반적으로 실버라이트 프로젝트는 다음 4개의 파일을 가집니다.

- 실버라이트 플러그 인
- silverlight.js
- XAML 파일
- HTML 파일을 지원하기 위한 JavaScript 파일


시작하기 전에 먼저 실버라이트 플러그 인과 HTML 파일을 준비해야 합니다. 실버라이트 플러그 인은 다음의 링크에서 다운로드 받으면 됩니다.

실버라이트 플러그인 다운로드 : http://www.microsoft.com/downloads/details.aspx?FamilyId=E0BAE58E-9C0B-4090-A1DB-F134D9F095FD&displaylang=en

플러그 인을 다운로드 받았고, 설치를 완료했다면 이제 HTML 파일 하나를 생성합니다.
사용자 삽입 이미지

이제 이렇게 만들어진 HTML 페이지에 참조를 하기 위한 스크립트를 추가할 것인데 그 스크립트 파일은 다음과 같습니다.

참조할 스크립트 : Silverlight.js, crObj.js

먼저 HTLM 페이지에 실버라이트 플러그 인이 호스트될 엘리먼트를 만들고, Silverlight.jscrObj.js 에 대한 참조를 추가하게 됩니다. 여기서 Silverlight.js 파일은 멀티 플랫폼에서 실버라이트 실행을 가능하게 해주는 역할을 합니다.

Silverlight.js 파일을 얻을려면 다음의 주소에서 다운로드 받으면 됩니다.
실버라이트 1.0 SDK : http://www.microsoft.com/downloads/details.aspx?familyid=FB7900DB-4380-4B0F-BB95-0BAEC714EE17&displaylang=en

다운로드가 완료되면 설치합니다.(원하는 폴더에 설치하시면 됩니다.)
사용자 삽입 이미지

저는 D:\Program Files 에 파일을 설치 했고, 그 하위에 설치된 실버라이트 1.0 SDK 폴더에서 Silverlight.js 파일을 가져오도록 하겠습니다.
사용자 삽입 이미지
(설치된 Silverlight 1.0 SDK 경로 및 Silverlight.js 파일)


적당한 폴더를 만들고 HTML 파일과 Silverlight.js 파일을 위치 시킵니다.
사용자 삽입 이미지
(작업할 폴더로 옮겨진 Silverlight.js 파일)

자아~ 이제 기본적인 준비가 모두 완료 되었습니다. ^^
이제 준비된 HTML 파일을 열고, <head> 영역에 다음의 마크업을 추가 합니다.
사용자 삽입 이미지

마크업을 추가 했으면 이제 crObj.js라는 빈 파일을 하나 만들어 놓고 마크업을 마찬가지로 <head> 영역에 추가 합니다.
사용자 삽입 이미지
(빈 문서로 생성한 crObjS.js )

사용자 삽입 이미지
(<head> 영역에 추가된 Silverlight.js와 crObjS.js에 대한 마크업)

이제 준비된 HTML 페이지에 실버라이트가 표시될 수 있는 영역을 잡아줄 것입니다. <div> 태그를 이용하여 그 영역을 표시할 것이며, id는 firstSilverlight로 하겠습니다.
사용자 삽입 이미지

만약에 실버라이트가 하나가 아닌 그 이상의 실버라이트를 화면에 표시하고자 한다면 영역을 또 잡아주고 다른 ID를 부여하면 됩니다.

이제 실버라이트를 div 블럭에 출력해 주기 위해 필요한 자바스크립트 코드를 HTML 파일에 추가합니다.
사용자 삽입 이미지

이제 HTML 파일에 대한 작업은 모두 완료 되었습니다. 그럼 이전에 만들어 두었던 crObjS.js 파일을 열어서 실버라이트 생성을 위한 작업을 할려고 합니다. 아래의 그림과 같이 코딩을 완료 합니다.
사용자 삽입 이미지
이 스크립트는 몇몇의 파라미터를 포함하고 있는데 플러그 인의 높이나 넓이 실버라이트 콘텐트를 포함하는 XAML파일의 이름, 그리고 windowless와 같은 특정한 값을 설정할 수 있습니다.

windowless란?
- 제가 이해하기로는 실버라이트 플러그인이 위치할 영역과 함께 렌더링 되느냐 안되느냐의 차이가 같습니다. 즉 isWindowless를 false로 설정하면 실버라이트 플러그 인이 위치할 영역을 먼저 렌더링 하고 그 다음에 실버라이트 플러그 인을 렌더링하여 위치시키는 것이고, true로 설정하면 실버라이트가 위치할 영역 즉 <div> 가 렌더링 되면서 실버라이트 까지 같이 렌더링 되는 것을 말하는 것 같습니다. 그것에 대한 구분은 opacity값을 계산해서 구분되는 것으로 보입니다. 이것에 대한 부연 설명은 아래의 경로에서 읽어보시면 됩니다.
isWindowless 속성에 대한 이해 :
http://msdn.microsoft.com/en-us/library/bb412380.aspx

자아~ 이제 실버라이트를 위한 HTML 파일과 js 파일이 준비되었으므로 실버라이트 콘텐트를 생성할 차례 입니다.

먼저 앞에서 생성했던 HTML 파일과 같은 디렉토리 상에 SimpleXAML.xaml 파일을 생성합니다. 그리고 이 Silverlight에 대한 이벤트 핸들링과 같은 행위를 하고 싶다면 그것에 대한 스크립트 파일을 별도로 만들어서 <head> 영역에 스크립트 마크업을 추가합니다. 저는 이 파일의 이름을 SimpleEventHandle.js 라고 하겠습니다.
사용자 삽입 이미지

여러 개의 실버라이트 플러그인을 생성하고 싶다면 앞에 설명된 것을 참고하여, 실버라이트 JS를 만들고, div 마크업을 이용하여 호스팅될 영역을 생성하고, 다시 그것을 호스팅할 js 파일을 생성하고, 다시 HTML 페이지의 <head> 영역에 js 참조 마크업을 추가하면 됩니다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by -세티-

UI 개발 분야의 전문성을 확립하고 생태계 발전을 도모하기 위한 Daum UI DevDay 행사를 개최합니다. 이 행사는 Daum에서 주최하는 UI 기술 행사로써 재미있는 강의도 듣고 Daum UI/RIA 개발자와 만남의 자리를 통해 친목을 나눌 수 있는 자리입니다. 또한 푸짐한 경품과 기념품을 함께 증정해드릴 예정이오니 많은 참여 바랍니다.

uidevday.jpg

Daum UI DevDay

  • 일시: 2008년 5월 30일(금) 오후 1시 30분 ~ 오후 6시
  • 장소: 삼성동 섬유센터 17층
  • 인원: 250명

프로그램 안내

자세한 프로그램은 행사 안내페이지를 참고하세요!

참가 신청은 5월 26일(월)까지 가능하며 이후 추첨을 통해 250명을 선정하여 5월 27일(화) 이 곳에 다시 공지하도록 하겠습니다. 선착순으로 참가 우선권을 드릴 예정이오니 자리에 여유있다고 신청을 미루지 마시고 미리미리 신청해 주세요 ^^

이벤트: 블로그에 Daum UI DevDay 행사 소개 글을 올리고 트랙백을 보내는 분 중 추첨을 통해 3분께 CGV 영화 상품권 2매를 증정합니다. 많은 참여 바랍니다.

크리에이티브 커먼즈 라이선스
Creative Commons License

'General Tech.' 카테고리의 다른 글

windows 7  (4) 2008/07/29
소프트웨어 아키텍트 대회 안내  (0) 2008/07/04
Daum UI DevDay 행사 안내  (0) 2008/05/18
Microsoft Dev Days 2007 Korea  (0) 2008/04/29
Windows 7과 관련된 동영상 입니다.  (0) 2008/04/11
Velocity  (0) 2008/03/20
Posted by -세티-
RIA에 대한 내용들을 찾아 인터넷을 누비고 있는 세티입니다. 인터넷을 검색하다보면 RIA기술이 뭐에요? 라는 질문부터 Flex가 이길 것이냐, Silverlight이 이길 것이냐 하는 소모적인 내용도 보이곤 합니다. 이러한 글들을 읽고 나름 그러한 물음에 대해 혼자서 고민을 해보았고, 그 고민의 결과를 한번 적어보았습니다.

얼마전 부터 불기 시작한 RIA의 바람이 인터넷에 태풍이 되어 관련 글들을 마구 쏟아내고 있습니다. RIA기술이 이렇듯 주목받게 된 몇 가지 이유를 꼽아 보자면...

1. 강력해진 개인컴퓨터 파워
2. 보다 빨라진 브로드밴드
3. 엔드 사용자의 다양한 시각적 요구
4. 웹 플랫폼을 만족시키기 위한 움직임


에 기인한다고 봅니다.

사실 RIA와 개념적으로 유사한 기술은 이미 90년대 말부터 그러한 기술적 배경과 이론을 가지고 있어왔고, 큰 제약없이 Rich Application을 적용할 수 있는 기업시장과 같은 곳에서는 이미 관련 기술과 개념이사용되어 왔습니다. 새삼 새로운 것도 아니고 다만 널리 사용되지 않았을 뿐이라는 것이 제 개인적인 의견 입니다. 또한 지금의 RIA기술과는 조금 다른 형태지만 데스크탑 기반에서는 이미 널리 사용되고 있었고, 웹 기반에서는 Cross Platform이나 Cross Browser 지원이 문제긴 했지만 그렇다고 사용되지 않았던 것도 아닙니다. 아무튼 RIA든 Rich Client든 이미 강력해진 웹 플랫폼에서 어찌보면 데스크 탑 응용프로그램에서 이미 사용되던 인터페이스나 그래픽의 화려함을 끌어다 쓰기 위한 고민에서 출발했다고 여러 증거가 말하고 있고, 저 또한 그렇게 보고 있습니다.

어도비는 웹 상에서 데스크탑 응용 애플리케이션의 화려함을 일반 엔드유저에게 제공하기 위해 누구보다 발빠르게 움직인 것은 사실 입니다. 어도비와는 다르게 MS나 Sun은 자사의 언어를 이용한 Rich Application을 가지고는 있었지만 이것을 일반 엔드유저에게 제공하기 위해 Cross Platform, Cross Broswer 지원에는 소홀했다고 봅니다. 그리고 그 소홀한 틈을 타서 어도비(매크로미디어)는 발빠르게 대처했고, 그들이 새롭게 정립한 기술을 기존 기술과 차별화 하기 위해 RIA라는 용어를 제시했고, 그것은 결국 표준은 아니지만 하나의 표준 기술처럼 인식되며, 오늘날 리치 클라이언트를 표헌하기 위한 가장 인기있는 기술로 자리매김 하게 되었다고 봅니다.

Rich Client와 RIA를 굳이 분리한다면 제 생각에는 'Rich Client 보다 매우 가벼운 하나의 엔진을 가지고 있고, 브라우저에 플러그 인의 형태로 제공되며 가볍고, 네트워크에 강하고 그러면서 기존의 Rich Client에서 표현되던 것 보다 더 화려하고 사용자 친화적인 환경을 제공한다.'라고 구분하고 싶습니다. 그런 부분에서 어도비는 매우 선구자적인 역할을 했다고 보여 집니다.

Flash가 디자이너를 위한 기술이었다고 본다면 Flex는 개발자를 위한 기술적 개념을 제공합니다. 이번에 나온 Silverlight 역시 디자이너와 개발자를 모두 만족시키기 위해 노력하고 있으며, Flex와 똑같은 RIA기술 입니다. 이러한 Flex와 Silverlight는 자신들이 가지고 있는 기술적 환경 차이를 그대로 가지고 내려오면서 나름 발전을 시켜 나가고 있습니다. 그러한 이유로 어느 기술이 좋다, 나쁘다 하는 것은 아직은 성급한 결론이라고 보여집니다.

Flex는 사용자 기반이 매우 넓습니다. 그리고 관련 기술을 익히고 있는 개발자들은 이미 기술적 성숙함을 가지고 있습니다. 반면에 Silverlight는 나온지 얼마 안되었고, 이제 개발자들이 기술을 익혀야 하며, 또 사용자 기반이 부족하지만 가장 최근에 나온 기술이라 Flex가 가지는 몇 가지 부족한 점을 매워주고 있습니다.
하지만 그렇다하더라도 기술은 매번 발전하는 것이고, 또 늘 개선되고 있다는 점을 고려할 때 오늘 이 순간 유지하고 있는 기술적 우위나 시장적 우위는 얼마든지 변할 수 있습니다.

자바가 처음 세상에 나왔을 때 닷넷이 세상에 처음 나왔을 때 우리는 기술적 편견을 가지고 특정 기술에 올인하는 경향을 보여왔습니다. 그리고 그 기술의 우월성을 강조하기 위해 진지한 고민과 고찰 없이 기술회사가 강조하는 사안만 가지고 상대를 흠집내는데 열을 올리고 있습니다.

이제는 기술회사의 설명이 아니라 우리 스스로가 고민하고 Flex든 Silverlight든 '어떤 기준에서 가장 최고의 성능을 발휘하더라.' 라는 객관적 자료들이 많이 제시되고, 그것을 기준으로 기술의 장단점이 아닌 특성을 이야기 해야 한다고 보여집니다.

개발자라면 당연히 그래야 하고 기술에 대해 편견을 가져서는 안된다고 보여집니다.
또한 나의 기술이 소중하면 상대방의 기술도 소중하다고 생각해야 하고, 있는 그대로 현상 그대로를 가지고 서로 이야기 되어져야 한다고 봅니다.

여담입니만 제가 최고로 생각하는 개발환경을 포함하는 기술은 바로 이겁니다.
"똑같은 결과물을 내고 비슷한 기술로 개발을 진행할 때 나 자신을 집에 빨리 보내줄 수 있는 기술"
전 이것을 최고의 가치로 여깁니다.
크리에이티브 커먼즈 라이선스
Creative Commons License

'Thinking' 카테고리의 다른 글

프로가 되기 위해...  (0) 2008/06/05
2008 Daum UI Dev Day  (4) 2008/05/29
Flex와 Silverlight 어떤게 더 좋아요?  (0) 2008/05/12
뮤지컬 '미라클'  (0) 2008/05/12
MS와 월드와이드 우주망원경  (0) 2008/05/07
Google Night을 갔다와서...  (0) 2008/04/26
Posted by -세티-
원글출처:http://www.microsoft.com/expression/products/Overview.aspx?key=studio
본 강좌는 위의 원글을 참고 및 번역해서 작성했으며, 글 중간중간 제 개인적인 표현이나 의견을 넣어서 각색했습니다.


실버라이트 개발을 위해 필요한 툴이 많이 오픈 되어 있습니다.
하지만 매우 혼란스럽고, 또 언제 어떤 상황에서 내가 원하는 툴을 사용해야 하는지 좀 모호하기도 합니다.
그래서 관련 툴에 대한 설명을 간단하게 정리해 보았습니다.


Microsoft Expression Studio 2 특징


윈도우즈와 웹을 위한 디자인
- 닷넷 프레임워크와 실버라이트를 이용하여 디자인을 하기 위한 툴

개발자 워크플로우 디자이너
- 디자인과 혁신적 애플리케이션을 위한 강력하고 통합된 솔루션 제작을 위한 Visual Studio와 디자이너를 위한 Expression Studio가 결합되어 있다.

실버라이트 1.0을 위한 디자인
- Expression Studio 2는  마이크로소프트의 새로운 웹 기술 실버라이트 1.0을 위한 필수적인 디자인 리소스 입니다.

Expression Web2로 표준에 기반한 디자인
- 오늘 날의 웹 표준 디자인을 할 수 있는 Expression Web2는 XHTML, CSS, XML 그리고 XSLT와 같은 버전을 선택할 수 있고, 컴파일을 통해 시각적 레이아웃을 만들 수 있습니다.

Expression Web2로 ASP.NET과 PHP 지원
- Expression Web2는 ASP.NET 3.5와 PHP 양쪽을 깊이있게 지원하는 디자인 툴 입니다.

Expression Blend 2로 디자인 경험
- 코드라인을 타이핑할 필요없이 디자인 애플리케이션 스킨과 상호작용할 수 있고, 애니메이션을 만들 수 있다.

XAML을 위한 디자인
- XAML 포맷에서 Blend 와 실버라이트를 위한 디자인 그래픽 엘리먼트를 공유할 수 있다.

Expression Design2로 Artwork 생성하기
- 웹을 위한 이미지를 XAML을 이용해서 데스크탑이나 웹 애플리케이션에 필요한 이미지를 생성할 수 있다.

Expression Media2로 디자인 관리하기
- Expression Media를 이용하여 그래픽과 비디오 파일들을 보관할 수 있다.

Expression Encoder2
- 비디오 콘텐트와 웹 사이트가 상호작용하는데 필요한 툴 입니다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by -세티-

뮤지컬 '미라클'

Thinking 2008/05/12 14:21
주말에 모처럼 뮤지컬을 봤습니다.



제목은 '미라클'....

매우 존경하고 인간미 넘치는 한 형님의 소개로 뮤지컬 '미라클'을 보게 되었습니다. 인터파크에서 예매 했는데 별점이 화려하더군요. 관객평도 괜찮았구요. 그래서 어제 오후 7시것을 예매하고, 대학로 미라클씨어터로 향했습니다. 대학로 소극장은 이전에도 느꼈던 것이지만 가족 같은 오손도손 모여있는 그런 분위기에 공연자와 관객이 최접점에 있고 또한 관객이 극의 일부가 될 수 있다는 점에서 매우 매력적입니다.
미라클은 현재진행형인 뇌사자에 대한 커다란 두 개의 시선, 즉 '살아있는 생명으로 볼 것인가', 아니면 '가족들에게 고통을 주는 죽어있는 존재로 볼 것인가' 라는 의견을 잘 혼합하여 무거운 주제임에도 코믹하고, 한국적 특유의 정서인 희노애락과 묶어서 풀어나갑니다.

배우는 총 5명이고, 교통사고로 식물인간이 되어버린 인기그룹 핫바의 '희동', 희동이가 사랑하는 간호사 '하늬', 희동이에게 날마다 뽀뽀하는 '미저리 간호사' 밝고 명랑하면서도 가끔 변태로 오인 받지만 마지막에 인간미를 보여주는 '의사' 그리고 식물인간 희동의 눈에만 보이는 또 다른 식물인간 길동....

인기그룹 핫바의 '희동'은 자신을 보살펴주는 간호사 '하늬'의 이야기를 들으며 '하늬'에 대한 사랑을 키워갑니다. 그런 '하늬'에게 자신의 존재를 알리기 위해 자신의 눈에만 보이는 또 다른 식물인간 '길동'에게 도움을 청하게 되고, '길동'은 그런 희동의 바램에 도움을 주기 위해 동전을 날린다던가 편지를 대신 써준다던가 곰인형을 슉~ 슉~ 하면서 날리기도 합니다. 길동의 노력 끝에 '하늬'는 '희동'의 존재를 알게되고 또 희동을 보게 되면서 서로의 마음을 확인하게 됩니다.

하지만 그들의 사랑도 사회적 이슈가 되고 있는 인간의 생명은 어떻게든 존중받아야 한다는 부분과 환자의 가족을 둘러싸는 현실적 고통 속에서 과연 어떤 결정이 합리적인가에 대한 고민의 경계를 넘지 못했고, 결론은 현실적 상황 판단에 따르는 것으로 결론이 나게 됩니다. 이런 애틋함이 식물인간의 영혼과 간호사와의 사랑을 통해 우리 눈에 보이는 것만이 진실이 아님을 이 뮤지컬은 전하고 있었습니다.



오랜만에 가는 소극장이었지만 그것이 주는 그 뭐랄까요? 몰입감과 일체감은 여전히 좋았습니다.
덕분에 저와 함께 갔던 분은 '치질 수술 받아야 하는 병원장님 딸' 이 되셨으니깐요. 하하하....

오랜만에 뮤지컬을 보고 싶은 분에게 '미라클'을 추천해 드립니다.^^
크리에이티브 커먼즈 라이선스
Creative Commons License

'Thinking' 카테고리의 다른 글

2008 Daum UI Dev Day  (4) 2008/05/29
Flex와 Silverlight 어떤게 더 좋아요?  (0) 2008/05/12
뮤지컬 '미라클'  (0) 2008/05/12
MS와 월드와이드 우주망원경  (0) 2008/05/07
Google Night을 갔다와서...  (0) 2008/04/26
집에 오는 길... 넉넉한 마음  (0) 2008/04/15
Posted by -세티-
 
 
매년 이 맘때면 우리나라에서 "서울디지털포럼(http://www.seouldigitalforum.org/kr/index.sdf)"이 열립니다.

세계적인 석학이나 기업가를 원격지 또는 국내 초대해서 여는 포럼인데요.
이 포럼에 빌 게이츠가 특별 연설에서 "앞으로 10년은 컴퓨터 기술이 지금과는 많이 달라질 것" 이라고 언급하면서 소프트웨어 기술이 그 성패를 달리하게 된다고 말했습니다.

그러한 소프트웨어 중요성을 언급하면서 보여 준 예가 "월드와이드 우주망원경" 기술 이었다고 합니다.


 (Microsoft Research "World Wide Telescope")


관련기사 :
http://media.daum.net/economic/industry/view.html?cateid=1038&newsid=20080506214113367&cp=yonhap

미래는 우주 천문의 시대이고, 소프트웨어라는 것과 뗄레야 뗄수 없는 관계가 되어 가는 것 같습니다.
무언가를 고민하고 결합하고 새로운 세상을 만들어나가는 것...
제가 다른 일 못하고 이 일을 사랑하는 유일한 이유인 것 같습니다.

Microsoft Research :
http://www.worldwidetelescope.org/

크리에이티브 커먼즈 라이선스
Creative Commons License

'Thinking' 카테고리의 다른 글

Flex와 Silverlight 어떤게 더 좋아요?  (0) 2008/05/12
뮤지컬 '미라클'  (0) 2008/05/12
MS와 월드와이드 우주망원경  (0) 2008/05/07
Google Night을 갔다와서...  (0) 2008/04/26
집에 오는 길... 넉넉한 마음  (0) 2008/04/15
스토리텔링  (0) 2008/04/02
Posted by -세티-
최초 작성자: 세티
최초 작성일: 2008년 5월 5일


꽤 오래된 자료 인데 개인적으로 필요해서 번역을 했습니다.
그리고 많은 부분을 의역화 했습니다.



A Look at Rich Internet Applications

By Cameron O'Rourke

2002년부터 2004년까지 2년동안 Rich Client를 이용한 흥미있는 아이디어가 많이 나오게 되었습니다. Rich Client의 사용자 인터페이스는 HTML 보다 더 견고하고, 응답적이고 비쥬얼한 흥미를 주기 때문입니다.

Rich Internet Application(RIA) 기술은 웹을 이용하여 Rich Client를 배포할 수 있는 기술을 말합니다. RIA는 그 어떤 누가 예측하더라도 완벽하게 HTML을 대체할 수 있을 것이라 여겼습니다. 그러나 복합적인 애플리케이션을 실행하기 위해선 "fat client" 기술처럼 저렴한 비용으로 복합적 애플리케이션을 실행할 수 있는 대안이 요구되었습니다.

왜 Rich Internet Application인가?
HTML 기반 애플리케이션은 간단한 아키텍처와 낮은 비용으로 배포를 할 수 있었기 때문에 많은 인기가 있었습니다. 그리고 HTML은 누구나 쉽게 배우고 또 사용할 수 있었습니다. 많은 사용자와 개발자들은 새로운 데이터와 애플리케이션에 즉시 접속할 수 있었고 또 잠시 자리를 비웠다가 다시 컴퓨터 앞으로 돌아왔을 때에도 그 상태 그대로 사용자 인터페이스를 보여줍니다. 이것은 웹 기반에서 의미있는 UI의 기능보다 더 중요한 이점이었습니다.

그러나 HTML은 우리가 확신을 가지고 사용하게 되는 애플리케이션과 잘 맞지 않았습니다. 그 이유는 다음과 같은데 복잡한 애플리케이션은 한 트랜잭션에서 완벽하게 몇몇의 페이지를 다시 그려줘야 하기 때문입니다. 예를 들어서 의학 분야나 금융 분야 처럼 확실하게 필드를 보여줘야 하는 케이스에서는 느린 상호작용을 보여주면 안됩니다. 또한 프로젝트 매니지먼트 시스템과 같은 것을 만들때도 HTML 애플리케이션으로 조작 되야 하고, 유저에게 차트, 스케줄, 계층적인 것과 같은 것들을 보여줘야 합니다.

더 나아가 오프(off)된 상태에서도 바로 스크립트와 쌍방향 작용이 가능해야하고, 입력 폼에 의해 입력되는 값들은 브라우저에 의해 간단한 이름/값 쌍으로 보내질수 있어야 합니다. 또한 XML 문서로 부터 복합적인 데이터 구조를 받고 보낼 수 있어야 하기 때문입니다.

HTML과 달리 RIA의 유틸은 다른 그 어떤 것보다 강력한 클라이언트-사이드 렌더링 엔진입니다. 그것은 일반적인 애플리케이션에 비해 허술하지 않으며 그래픽적인 Rich User Interface를 통해 응답할 수 있습니다. 추가적으로 컨트롤의 다양성(슬라이더, 데이트 피커, 윈도우즈, 탭, 스나이퍼, 게이지 등)이 있으며, 일반적인 SVG나 다른 매커니즘에 따르는 그래픽 생성을 수용 합니다. 어떤 RIA기술은 데이터 변경시 응답하는 풀 모션 애니메이션을 제공하기도 합니다.

이런 RIA의 또 다른 이점은 데이터가 클라이언트에 캐쉬될 수 있다는 점, HTML 보다 서버에 라운드 트립하는게 낮다는 점, 그리고 최근의 트랜드가 텍스트 기반의 웹 클라이언트에서 멀어지면서 무선이나 디바이스를 지원하는 Rich Client로 넘어가고 있기 때문입니다. 또한 랩탑에서 실행되는 애플리케이션은 인터넷 연결을 잃어도 오프라인에서 작업이 가능하도록 디자인 되어져 있습니다.

RIA의 일반적인 아키텍처는 그림과 같습니다.
사용자 삽입 이미지

XML은 데이터 전송이나 폼 레이아웃을 기술하는 용도로 사용됩니다. 수 많은 인스턴스로 클라이언트가 데이터 소스를 이용하여 연결되고 그 안에 머무르게 되면 서버는 실시간으로 클라이언트를 업데이트 할 수 있습니다.

Rich Clients를 위한 기술들
RIA의 기술은 다음과 같습니다.

Java
오라클의 J디벨로퍼나 이클립스로 자바 코드를 작성할 수 있는데 상상할 수 있는 대부분의 Rich Client 를 생성할 수 있습니다. Java는 몇년전 부터 폼 기반 UI를 지원하는데 폭 넓게 이용되었습니다. 추가적으로 사용자 인터페이스는 Java Foundation Classes(JFC/Swing)내의 콤포넌트에서 찾을 수 있습니다. 또한 개발자들은 이클립스 프로젝트와 다른 써드 파티 툴킷에서 Standard Widget Toolkit(SWT)을 사용하여 개발할 수 있습니다. Java는 또한 XML과 웹 서비스를 지원합니다. 웹 브라우저의 자바 플러그 인이나 자바 런타임 환경에 포함된 새로운 자바 웹 스타트 기술을 사용하여 애플리케이션을 배포할 수도 있습니다. Rich Client를 만드는데 있어 자바를 사용하는데 중요한 결점 한가지는 간단한 폼이나 그래픽을 생성하는데 있어서  적지 않은 라인의 코드를 요구합니다.

XUL
XUL은 모질라 오픈 소스 프로젝트에서 제안한 XML 기반의 UI 언어입니다.
그것은 Zulu(플래쉬 MX 컴포넌트)와 Thinlets(자바도구)와 같은 다른 렌더링 엔진과 마찬가지로 모질라 브라우저내에서 실행되는 폼 애플리케이션을 생성하기 위해 사용됩니다. XUL 랜더링 엔진은 일반적으로 매우 작고(100k) XML 데이터를 산출할 수 있습니다. 자바와 더불어 Theodore Thinlet Editor와 같은 오픈소스 툴의 풍부함으로 인해 꽤 큰 사용자 커뮤니티가 있습니다. 자바 애플리케이션에서 그래픽한 레이아웃 UI와 XUL을 통신하게 할 수 있습니다. XUL의 가장 큰 불리한 점은 주요 기업의 지지가 없다는 점이다. XUL의 큰 이점은 Gecko 엔진과 통합할 수 있고, 실제로 XUL은 다른 XML UI 정의언어 대부분과 비교했을 때 매우 표현적이고 간결한 언어입니다.

마크로미디어 플래쉬와 플렉스
플래쉬는 웹 페이지에서 그래픽을 보여주기 위한 상업적 제품입니다. 그것은 최근에 폼-스타일 애플리케이션을 빌딩하기 위한 특징을 포함했고, 업그레이드 했습니다. 플래쉬는 웹에 광범위하게 배포된 프론트-엔드 기술이고 이론의 여지는 있지만 98%의 데스크 탑에 설치되어 있습니다. 활발한 그래픽을 생성하는 플래쉬의 편리함은 매우 강력하고 또 비쥬얼적 입니다. 이것의 스크립팅 언어는 액션 스크립트, 자바스크립트로 잘 알려진 ECMAScript 1.5입니다. 플래쉬에 XML description language가 추가된 제품이 Flex 입니다. 그래서 UI는 플래쉬 플레이어에 의해 컴파일과 렌더링 될 수 있습니다. 플래쉬와 플렉스의 첫번째 불리한 점은 개발툴의 미비점으로 인해 XML과 웹 서비스를 지원에 한계가 있다는 점입니다. 하지만 플렉스와 플래쉬의 이점은 복잡한 애니메이션을 쉽게 만들 수 있고 써드파티 제품에 애드온 된다는 점입니다.

오라클 폼(Forms)
오라클 폼은 데이터 중심 인터넷 애플리케이션을 빌딩하기 위한 상업적 제품입니다. 오라클 폼에서 폼 모듈 파일들의 출력물인 비쥬얼 디자이너를 사용하여 폼을 생성할 수 있습니다. 모듈 파일들은 FMT 포맷이나 그 밖의 디자인 툴을 위한 XML로 형식화 될 수 있습니다. 추가적으로 표준화된 폼의 모든 위젯은 자바 콤포넌트와 커스텀 자바 빈즈에 통합될 수 있습니다. 스크립팅 언어는 오라클 데이터베이스에서 사용되는 것과 같은 PL/SQL 이다. 오라클 폼의 흥미로운 특징은 폼 모듈 파일을 생성하고, 수정하고 컴파일링 하기 위한 자바 API를 사용할 수 있습니다. 오라클 폼의 중요한 결점은 웹에 배포하기 위한 오라클 애플리케이션 서버 라이센스가 요구된다는 점이며 이점으로는 오라클 플랫폼이나 오라클 데이터베이스에 강력하게 통합된다는 점입니다.

Rich Internet Applications를 생성하기 위한 기술을 이용하는데 있어서 RIA기술을 선택해야 하는데 다음과 같은 요소를 따라야 한다.
1. 오픈소스와 상업적 제품간의 비교
2. 성숙한 기능 이냐 특정 기능이냐
3. 가볍고 저장공간이 작아야 하느냐 UI가 풍부해야 하느냐
4. 미디어 중심이냐 데이터 중심 애플리케이션이냐?


RIA를 생성하기 위한 최상의 준수사항은
1. 백그라운드 스레드를 이용하여 패치 되어야 합니다. 리치 클라이언트를 위한 퍼포먼스의 기대는 높아야 하고, 만약에 웹 서비스로 데이터를 수집하는데 애플리케이션이 중단될 때 그것은 응답이 없는 것처럼 보여야 합니다.
2. 클라이언트와 리모트 데이터가 동기화 되는 것 처럼 보여야 합니다.
4. 흥미롭고 기능적인 UI를 비쥬얼하게 생성하는 능력을 가진 그래픽 아티스트나 최소한 좋은 UI 디자이너가 잇어야 합니다.
크리에이티브 커먼즈 라이선스
Creative Commons License

'HCI & UX' 카테고리의 다른 글

User Experience Architecture  (4) 2008/06/23
Remix08 Beyond RIA  (0) 2008/06/07
User Experience란?  (0) 2008/06/04
Rich Internet Applications  (0) 2008/05/05
Scott Guthrie가 발하는 Silverlight2의 RIA(Rich Internet Application)  (0) 2008/04/27
웹 접근성을 위한 CSS(1)  (0) 2008/04/06
Posted by -세티-