.NET 프레임워크 에서의 CLS
CLS(공용언어사양) 이란?
구현된 프로그램 혹은 객체가 언어에 상관없이 동일하게 실행되고, 상호작용 하려면호환이 되는 언어 사양이 필요합니다.
예를 들면 .net프레임워크를 들수 있는데 C#, C++, vs, cobol, power shell 등 원래 작성된 언어와 다르더라도 엑세스가 가능하다.
이러한 공용언어사양은 ECMA-335(Standard:Common Language Infrastructure ) Partition I, Clauses 7~11에 정의되어있다.
CLS 준수 규칙
CLS 규칙은 아래와 같다.
- 형식 및 형식 멤버 시그니처
- 명명 규칙
- 형식 변환
- 배열
- 인터페이스
- 열거형
- 형식 멤버 일반 사항
- 멤버 접근성
- 제네릭 형식 및 멤버
- 생성자
- 속성
- 이벤트
- 오버로드
- 예외
- 특성
- CLSCompliantAttribute 특성
- 언어 간 상호 운용성
공용 라이브러리, 인터페이스 구성
- 공용 클래스 정의
- 파생클래스에서 액세스 할 수 있는 protected 멤버에 대한 정의
- 공용 및 파생 클래스, 메서드에 대한 매게변수 및 반환형식
자세한 규칙은 ECMA-335 참고(https://www.ecma-international.org/publications/standards/Ecma-335.htm)
** 이것을 찾아보게 된 계기는 classic asp에서 c# dll을 사용할 수 있고 그 원리를 알아보기 때문에
** 공통 언어 사양을 통해 구현을 하였기에 c# 모듈이 classic asp 에서 사용 가능
참고
- 공용 언어 사양 https://docs.microsoft.com/ko-kr/previous-versions/dotnet/netframework-4.0/12a7a7h3(v=vs.100)
- 언어 독립성 및 언어 독립적 구성요소 https://docs.microsoft.com/ko-kr/dotnet/standard/language-independence-and-language-independent-components
- ECMA-335 https://www.ecma-international.org/publications/standards/Ecma-335.htm