내 소프트웨어 프로젝트 중 하나에 스크립팅 언어를 포함시키고 CodeDOM을 통해 런타임에 C#을 컴파일하고 DLR 기반 스크립팅 언어를 포함하는 두 가지 옵션을 확인했습니다. 두 옵션 모두 .NET Framework에 대한 전체 액세스 권한을 제공합니다.스크립팅 작업에 C# 대신 DLR 기반 언어를 사용하는 이유는 무엇입니까?
내가 스크립팅하는 작업은 사용자 정의 된 DataRow 및 메타 데이터 집합으로 인해 수정 된 DataRow가됩니다. 나는 이러한 변환이 구성 가능하고 자주 호출 될 것으로 기대한다. 물론, 나는 변환이 최종 사용자에 의해 제공되고 수정 될 것으로 기대한다.
이러한 작업 부하를 염두에두고 한 접근법을 다른 접근법보다 명확하게 사용하면 어떤 이점이 있습니까?
두 가지 접근 방식의 상대적인 성능에 대해 의견이 있습니까? 아니면 C# 옵션에서 발생하는 AppDomain 관리 문제입니까? 또는 DLR 스크립팅 호스트를 포함하는 데 어려움이 있습니까? (좋은 지적, 나는 그것을 upvote 않았다). – Dave
"하지만 더 빠를 것입니다 ..."AppDomain 교차 메서드 호출에 대한 벌칙이 DLR 동적 디스패치 메커니즘보다 적을 것이라고 말하고 있습니까? 그 소스가 있습니까? (C# 구현에서는 컴파일 된 어셈블리를 언로드 할 수 있어야하므로 AppDomain 격리를 수행해야합니다.) – Dave
@Dave : 오, 그 문제가 있습니다 ... AppDomain을 넘을 때 벌금이 부과됩니다. 약간의 다이나믹 디스패치 비용으로 스크립트 내 어디에서나 지불 할 수 있습니다. 이러한 것들이 당신의 유스 케이스에서 어떻게 균형을 이루는 지 모르겠습니다. –