2014년 3월 29일 토요일

[구로ADO,닷넷,C#]전용 및 공유 어셈블리(.NET C# Assembly),[오라클/자바/닷넷/C#/ASP.NET/아이폰/안드로이드/초보/실무/교육/학원]

[구로ADO,닷넷,C#]전용 및 공유 어셈블리(.NET C# Assembly),[오라클/자바/닷넷/C#/ASP.NET/아이폰/안드로이드/초보/실무/교육/학원]

지금까지는 전용 어셈블리 즉 하나의 단일한 응용 프로그램의 일부로서 배포되는 어셈블리에 대해 이야기를 했습니다. 이러한 어셈블리 이외에 닷넷은 여러 응용 프로그램들이 하나의 어셈블리를 동시에 공유하는 기능을 제공 합니다.

1. 전용 어셈블리

기본적으로 어셈블리는 해당 프로젝트 전용으로 쓰입니다. 전용 어셈블리는 반드시 해당 응용 프로그램과 동일한 디렉토리에 있어야 합니다. Shapes.dll 역시 전용 입니다. 이 어셈블리를 ShapeUSer에서 참조하려면 두 프로젝트를 동일한 디렉토리에서 빌드 하거나 ShapeUSer에서 명시적으로 프로젝트 참조를 추가해야 합니다. 프로젝트 참조를 한 경우 VS는 shapes.dll의 복사본을 만들어 ShapeUser 디렉토리에 넣습니다. Shapes.dll이 복사되므로 원래의 shapes.dll이 사라져도 문제되지 않습니다. 그러나 많은 프로그램에서 참조되는 어셈블리의 경우 DLL을 매번 복사하는 것은 비 효율적 입니다. 이를 해결한 것이 공유 어셈블리 입니다
 
2. 공유 어셈블리

공유 어셈블리는 시스템 안의 모든 프로그램들이 공유 하는 어셈블리 입니다. 모든 공유 어셈블리는 전역 어셈블리 캐쉬(Global Assembly Cache, GAC)라는 특별한 .NET 시스템 디렉토리에 저장 되므로 프로그램들은 공유 어셈블리의 위치를 알 필요가 없습니다. 공유 어셈블리들은 시스템 전반에서 사용되므로 .NET 런타임은 공유 어셈블리에 대한 보안이나 버전 호환성 면에서 좀 더 많은 점검을 수행 합니다.


댓글 없음:

댓글 쓰기