.NET Framework 에는 많은 "맛"이 있습니다 .
- 전체 ( "일반")
- 클라이언트 프로파일 서브 세트
- 웹 브라우저의 Silverlight
- Windows Phone의 "Silverlight"
- 컴팩트 한 프레임 워크
- WinRT
새로운 플랫폼에서 C # 코드가 필요할 때 Microsot은 전체 CLR을 가져와 작은 하위 세트로 분류하여 BCL의 기존 어셈블리를 사용하는 대신 기존 어셈블리를 사용하는 대신 새 어셈블리를 만들고 유형을 이동하는 것을 선호합니다. . 예를 들어 Silverlight는 WPF와 동일한 구현을 단순히 참조하는 대신 WPF에 대해 다른 클래스 / 방법을 갖습니다 (서로 약간 다른 서명 또는 매우 다른 구현을 가진 일부 방법으로도) List<T>
.
이것이 이상적인 아키텍처입니까, 아니면 레거시의 표시입니까? BCL이 각기 다른 프리젠 테이션 / IO 라이브러리를 가진 모든 플랫폼에서 실행되어서는 안됩니까? 아니면 BCL 및 기타 라이브러리가 너무 부풀어 있고 분리하면 너무 많은 이전 버전과의 호환성 문제가 발생합니까?
빈 캔버스에서 시작하여 이전 버전과의 호환성에 대해 걱정하지 않는다면 현재 상황이 실제로 여러 플랫폼을 처리하는 가장 좋은 방법입니까?