1 Results for '패키지'

  1. 2008.03.06 [Silverlight/MSDN] Application Development Overview (3)

항상 새로운 기술을 접할 때에는 그 기술에 대한 전반적인 아키텍처와 구성, 특히 Overview를 읽어보는 것이 많은 도움이 되는 것 같아요. 저도 오랫만에 WPF스타일을 접해서 많은 혼란을 겪고 있어서 생각도 정리할 겸 MSDN 토픽 하나를 날림 번역해봤어요.

원본 글 : http://msdn2.microsoft.com/en-us/library/cc221365(vs.95).aspx

실버라이트는 애플리케이션 개발자에게 브라우저에서 실행되는 웹 애플리케이션을 개발하고 배포할 수 있게 하는 기술입니다. 이 토픽은 실버라이트 애플리케이션의 개발, 실버라이트 애플리케이션 및 라이브러리 어셈블리의 구현, 리소스 파일의 조직, 애플리케이션 서비스의 사용, 그리고 실버라이트가 제공하는 유연한 패키징 옵션을 다양한 개발 시나리오에 공급하는 것에 대한 개요를 제공합니다. 이 토픽은 클라이언트 측 캐싱에 관한 간단한 논의로 마무리합니다.

이 토픽은 다음과 같은 섹션을 포함합니다.

  • 애플리케이션 클래스, 어셈블리 및 패키지
  • 라이브러리 어셈블리
  • 리소스 파일
  • 패키지에 포함 vs 필요할 때 요청
  • 애플리케이션 서비스
  • 실버라이트 애플리케이션
  • 관련 토픽

실버라이트 애플리케이션에 관련된 정보는 Deployment (Silverlight 2)를 보세요.


애플리케이션 클래스, 어셈블리 및 패키지

각 실버라이트 애플리케이션은 반드시 실버라이트 플러그인 컨트롤에 의해 다운로드 된 이후 구동start up시키기 위한 최소한의 기능이라도 구현해야만 합니다. 만약 각 실버라이트 애플리케이션이 구동 기능을 각자의 방법으로 구현했다면 실버라이트 플러그인 컨트롤이 가능한 모든 구현을 공급하는 것은 불가능할 것입니다. 실버라이트 플러그인 컨트롤은 각 실버라이트 애플리케이션이 엔트리 포인트entry point라고 하는 잘 알려진 방법을 명시적으로 구동 기능을 구현하기를 기대합니다. 실버라이트 애플리케이션에서 엔트리 포인트는 다음의 항목들의 조합이 됩니다.

  • 애플리케이션 클래스application class라고 하는 Application에서 파생된 클래스.
  • 애플리케이션 어셈블리application assembly라고 하는 이 클래스를 구현하는 어셈블리.
  • 애플리케이션 클래스와 엔트리 포인트를 이루는 애플리케이션 어셈블리를 식별하는 메타 데이터.

최소한의 실행 가능한 실버라이트 애플리케이션은 애플리케이션 어셈블리(애플리케이션 클래스를 가지는)와 엔트리 포인트 메타데이터 모두를 포함하는 .xap 파일 확장자로 압축된 ZIP 파일입니다. .xap 파일은 애플리케이션 패키지로 알려져 있고 실버라이트 플러그인 컨트롤이 다운로드하고 실행하는 파일입니다.

애플리케이션 클래스와 애플리케이션 어셈블리를 어떻게 구현하고 패키지에 대한 자세한 정보는 Developing a Silverlight Application Assembly를 보세요.


라이브러리 어셈블리

애플리케이션 어셈블리가 일반적으로 실버라이트 애플리케이션의 메인 UI와 기능을 이루고 통합하는 반면, 라이브러리 어셈블리library assembly는 추가적인 애플리케이션 UI와 기능을 캡슐화할 수 있습니다. 라이브러리 어셈블리들은 애플리케이션을 더 쪼개진 요소로 분해하여 복잡도를 낮추고 다수의 애플리케이션에 걸쳐 UI와 기능을 공유하는 등의 다양한 이유로 사용됩니다.

실버라이트 라이브러리 어셈블리에 대한 자세한 정보는 Developing a Silverlight Library Assembly를 보세요.


리소스 파일

애플리케이션과 라이브러리 어셈블리가 실버라이트 애플리케이션의 실행가능한 형태를 캡슐화하는 한편, 실버라이트 애플리케이션은 오디오, 비디오, 이미지, XML 및 XAML 파일과 같은 비실행 데이터를 포함할 수도 있습니다. 이런 유형의 파일들은 집합적인 리소스 파일로 알려져 있고 다양한 방법으로 패키징될 수 있습니다.

리소스 파일의 작동에 대한 자세한 정보는 Application Services를 보세요.


패키지에 포함 vs 필요할 때 요청

실버라이트 애플리케이션은 하나의 애플리케이션 어셈블리, 0개 혹은 한개 이상의 라이브러리 어셈블리 및 0개 혹은 한개 이상의 리소스 파일의 덩어리입니다. 이 다양한 파일들이 어떻게 패키지되느냐는 가장 짧은 시간 동안 유저에게 올바른 기능을 제공하는 것의 평가에 달려있습니다.

앞서 얘기한 것처럼, 실버라이트 애플리케이션은 반드시 애플리케이션 클래스를 구현하는 애플리케이션 어셈블리를 가진 애플리케이션 패키지를 포함해야 합니다. 추가적으로 애플리케이션 패키지는 라이브러리 어셈블리와 리소스 파일을 포함할 수 있습니다. 애플리케이션 패키지는 실버라이트 애플리케이션을 시작하기 위해 실버라이트 플러그인 컨트롤이 다운로드하기 때문에 애플리케이션 패키지는 가급적 빠르게 다운로드 될 수 있도록 가능한 작아야 합니다. 따라서 애플리케이션의 UI와 기능을 구성하여 그것 없이는 애플리케이션의 실행이 불가능한 파일들만이 포함되어야 합니다. 예를 들어, 스프레드시트 애플리케이션과 같이 데이터를 입력하고 보여주는 기능만을 요구하는 애플리케이션을 생각해 봅시다. 애플리케이션 패키지에 포함되어 있는, 애플리케이션 어셈블리와 라이브러리 어셈블리와 리소스 파일을 포함하는 파일들이 바로 패키지에 포함된in-package 파일을 말합니다.

스프레드시트 애플리케이션은 또한 바 차트나 파이 차트처럼 언제나 사용되지는 않는 다른 데이터 뷰를 제공할 것입니다. 실버라이트 애플리케이션의 관점에 의하면, 애플리케이션의 선택적인 UI와 기능을 구성하는 파일들은 필요할 때 다운로드 될 수 있고 이것이 필요할 때 요청on-demand되는 파일입니다.

올바르게 구성된 스프레드는 사용자들이 애플리케이션 UI와 기능에 필요한 최소한의 초기 다운로드 비용이 들도록 하고 그들이 선택적인 기능을 원할 때만 추가적인 다운로드 비용이 들도록 합니다.

패키지에 포함하거나 필요할 때 요청되는 라이브러리 어셈블리를 어떻게 배포하는지에 대한 자세한 정보는 Developing a Silverlight Library Assembly를 보세요. 리소스 파일의 경우는 Application Services를 보세요.


애플리케이션 서비스

Application은 또한 일반적으로 애플리케이션에서 요구하는 몇 가지 애플리케이션 서비스를 제공합니다. 가장 중요한 서비스는 애플리케이션이 시작될 때 보여줄 사용자 인터페이스(UI)를 지정하는 기능입니다. 추가적인 서비스는 라이프타임 관리, 애플리케이션 스코프 리소스와 속성, 초기화 파라미터에 접근하기 및 처리되지 않은 예외 검출과 응답입니다.

Application 클래스에 의해 제공되는 서비스에 대한 자세한 정보는 Application Services를 보세요.


실버라이트 애플리케이션

지금까지 애플리케이션 클래스, 애플리케이션 어셈블리, 애플리케이션 패키지, 애플리케이션 서비스, 라이브러리 어셈블리 및 리소스 파일의 개요를 살펴봤습니다. 또한 실버라이트가 유연한 패키징과 배포를 위해 어떻게 in-package와 on-demand 파일을 지원하는지도 살펴봤습니다. 각 실버라이트 애플리케이션은 다음과 같은 방법으로 표현되는 하나 혹은 모든 것들의 조합입니다.

  • [필수] - 애플리케이션 어셈블리로 구현되고 애플리케이션 패키지에 포함된 애플리케이션 클래스와 서비스.
  • [선택] - 필수적인 애플리케이션 UI와 기능을 캡슐화하고 애플리케이션 패키지에 포함되는 in-package 라이브러리 어셈블리와 리소스 파일.
  • [선택] - 선택적인 UI와 기능을 캡슐화하고 애플리케이션 패키지와 나란히 포함되는 on-demand 라이브러리 어셈블리와 리소스 파일.

실버라이트 애플리케이션의 가능한 조합은 다음 그림에서 설명하고 있습니다.


관련 토픽

컨셉
Developing a Silverlight Application Assembly
Developing a Silverlight Library Assembly
Resource Files
Application Services
Deployment (Silverlight 2)

참조
Application 클래스

신고
Posted by gongdo


티스토리 툴바