동영상 강의/C# 언어 동영상 강의

[C# 동영상 강의] 18. .NET 어셈블리

언제나휴일 2016. 4. 9. 16:45
반응형

[C# 동영상 강의] 18. .NET 어셈블리




다루는 내용

.NET 어셈블리

.NET 어셈블리 구성

전용 어셈블리

공용 어셈블리



대본


슬라이드 1

이번 강의에서는 어셈블리에 대해서 살펴보기로 하겠습니다.


슬라이드 2

.NET 어셈블리는 .NET Framework 응용 프로그램을 구성하는 기본 컴포넌트입니다컴포넌트 기반의 프로그래밍을 하면 여러분들이 아는 것처럼 재 사용성을 높일 수 있습니다. .NET 어셈블리는 EXE파일 혹은 DLL파일 형태를 지닐 수 있으며 하나 이상의 모듈을 포함할 수도 있습니다. .

그리고, .NET 어셈블리는 배포를 단순화를 통해 많은 배포 문제를 해결하였습니다.  .NET 어셈블리는 자기 기술적인 메타 데이터를 갖고 있고 레지스트리 항목에 종족되지 않는 구성 요소로 디자인이 되었기 때문에 Side-by-Side 실행이 가능합니다. 기존 Win32 COM에서는 버전 관리 문제를 비롯하여 DLL충돌 문제가 있었지만 .NET 어셈블리는 강력한 이름을 제공하면 이를 기반으로 DLL 충돌 문제를 해결하였습니다. 이로써 같은 명칭의 여러 어셈블리를 설치 가능할 뿐만 아니라 이를 사용하는 응용들은 자신들에 맞는 어셈블리를 사용할 수 있습니다.   .NET 어셈블리를 배포하는 방법에는 기본적으로 사용하는 응용 프로그램의 전용으로 배포하는 방법과 여러 응용 프로그램이 공용으로 사용할 수 있게 배포할 수 있습니다


슬라이드 3

구성 요소를 살펴봅시다.

첫 번째 구성요소로 어셈블리 매니페스트가 있습니다. 어셈블리 매니페스트는 어셈블리의 버전 요구 사항과 보안 ID를 지정하는 데 필요한 모든 메타데이터와 어셈블리의 범위를 정의하고 참조를 확인하는데 필요한 모든 메타 데이터를 포함하고 있습니다.

그리고, 어셈블리에 정의된 형식들에 대한 형식 메타 데이터와 실제 수행해야 할 코드인 MSIL코드와 리소스로 구성이 됩니다.

어셈블리를 구성하는 방법은 논리적 어셈블리와 물리적 바이너리 매핑 관계를 1:1로 대응 시키는 단일 파일 어셈블리와 여러 개의 모듈들을 논리적 관련을 통해 하나의 어셈블리를 구성하는 다중 파일 어셈블리가 있습니다어셈블리를 물리적 관점에서 어셈블리를 보면 리소스 파일, 매니페스트, DLL, 모듈 등으로 인식할 수가 있을 것이며 논리적 관점에서 보면 클래스, 대리자, 인터페이스, 리소스 등으로 볼 수 있습니다.


슬라이드 4

전용 어셈블리는 사용하는 응용 프로그램과 함께 어셈블리를 배포하여 해당 응용 프로그램에 의해서만 이용되는 어셈블리를 말합니다배포되는 위치는 응용 프로그램과 동일 디렉토리이거나 하위 디렉토리가 됩니다.

그리고, .NET에서 어셈블리 배포 방법의 기본으로 전용을 선택하고 있어 Visual Studio .NET을 가지고 개발을 할 때 특정 어셈블리를 참조를 하고 컴파일을 하면 자동으로 참조하는 어셈블리를 복사를 해 주어 개발자에게 편의성을 제공하고 있습니다.

CLR에 의해 전용 어셈블리의 위치를 찾는 과정을 프로빙이라 합니다제일 먼저 응용 프로그램 디렉토리를 우선적으로 검사를 하고 없으면 구성파일이 있는지 확인을 하게 됩니다그리고, 구성 파일이 있으면 구성 파일에 명시된 디렉토리를 검사하게 됩니다.


슬라이드 5

공유 어셈블리는 어셈블리를 컴퓨터 시스템의 어셈블리 캐시에 설치를 함으로써 여러 응용 프로그램에 의해 사용될 수 있습니다보통 전역 어셈블리 캐시 위치는 Windows 디렉토리의 Assembly 하위 디렉토리에 위치하게 됩니다. 그리고, DLL충돌을 막기 위해 공유 어셈블리에는 강력한 이름을 할당해야 합니다강력한 이름은 어셈블리 이름과 버전 번호 및 문화권, 어셈블리 ID, 공개 키, 디지털 서명 등으로 구성이 됩니다전역 어셈블리 캐시에는 동일한 이름의 DLL이더라도 강력한 이름이 다르면 배포가 가능합니다이를 통해 같은 이름의 서로 다른 버전을 사용하는 응용 프로그램들이 자신에게 알맞은 어셈블리를 사용할 수 있는 것입니다.

 


이제 어셈블리를 만들어 보도록 합시다

 

실습




  앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 

2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다.
 

반응형