[C#] 10. .NET 어셈블리

.NET 어셈블리는 .NET 프레임워크 응용 프로그램을 구성하는 기본 컴포넌트입니다. 컴포넌트 기반의 프로그래밍은 모듈의 재사용성을 높여줍니다. .NET 응용 프로그램을 제작할 때 미리 작성된 라이브러리를 사용할 수 있는데 이 때 사용하는 라이브러리도 .NET 어셈블리이며 실행 파일도 .NET 어셈블리입니다.

.NET 어셈블리는 EXE 파일 혹은 DLL 파일 형태로 만들 수 있으며 하나 이상의 모듈을 포함할 수도 있습니다.그리고 .NET 어셈블리는 배포를 단순화하여 COM에서 발생했던 많은 배포 문제를 해결하였습니다.

.NET 어셈블리는 자기 기술적인 메타 데이터를 갖고 있으며 레지스트리 항목에 종속되지 않는 구성 요소로 디자인하였기 때문에 병행(Side by Side) 실행이 가능합니다. 병행 실행은 같은 이름의 여러 버전의 라이브러리를 설치할 수 있고 이를 사용하는 응용은 자신의 원하는 버전의 라이브러리를 사용할 수 있는 것을 말합니다. COM에서는 버전 관리 문제를 비롯하여 DLL 충돌 문제가 있었지만 .NET 어셈블리는 강력한 이름을 사용하여 DLL 충돌 문제를 해결하였습니다.

이로써 같은 명칭의 여러 어셈블리를 설치 가능할 뿐만 아니라 이를 사용하는 응용들은 자신들에 맞는 어셈블리를 사용할 수 있습니다. .NET 어셈블리를 배포하는 방법에는 응용 프로그램의 전용으로 배포하는 방법과 여러 응용 프로그램이 공용으로 사용할 수 있게 공용으로 배포하는 방법이 있습니다.