2016-08-05 8 views
0

최근 Silverlight에서 DevForce가 Silverlight가 아닌 환경에 비해 동작하는 방식이 미묘하게 다르기 때문에이 코드에서 버그가 발생했습니다. 우리는 DevForce가 Silverlight에서 '모든 속성이 변경되었습니다'이벤트를 발생시킬 때 PropertyChanged 이벤트에서 string.Empty을 사용하는 것을 어렵게합니다. 그러나 Silverlight가 아닌 경우 null이 대신 사용됩니다. 이것은 우리의 목표에 대한 해결책을 찾기가 어렵지 않았습니다. 우리는 아마도 null 또는 string.Empty을 지켜봐야했을 것입니다. 그러나 우리가 조심해야 할 다른 미묘한 차이가 있다면 걱정이됩니다.DevForce에서 Silverlight 및 Silverlight가 아닌 플랫폼 간에는 어떤 차이가 있습니까?

Silverlight와 Silverlight 이외의 다른 알려진 차이점이 있습니까? Silverlight가 동기식 쿼리를 허용하지 않는 것과 같은 몇 가지 차이점이 분명히 있지만 ... 잘 설명되어 있습니다. 이전에 Silverlight에서 잘 작동했던 코드를 깨뜨릴 수있는 작은 것들을 찾고 있습니다.

답변

1

죄송합니다. PropertyChanged 문제가 발생했습니다. 이 차이는 실제로 SL DataForm의 오래된 버그로 인해 발생했지만 DevForce에서 다시 언급하지는 않았습니다. MS 설명서에 null과 빈 문자열 모두 똑같은 내용이 있기 때문입니다. FWIW, DF는 전체가 아닌 모든 .NET 환경에서 빈 문자열을 사용합니다.

이러한 미세한 차이점에 대한 문서가 없습니다. 일반적으로 대부분의 환경 차이로 인해 표면적이 달라지며 대개 API가 감소합니다. 따라서 동기식 메서드는 .NET 어셈블리에서만 발견되며 SL 어셈블리에서는 XAP 관련 API를 사용할 수 있습니다. 다른 "누락"또는 변경된 기능은 파일 I/O 및 .config 파일 처리와 같은 것입니다.

일반적으로 DF는 환경 전반에서 API와 동작을 합리화하려고 시도하지만, 기본 구현에서 미묘한 차이나 성능상의 영향이있을 수 있습니다. 예를 들어, WCF, 컴포지션 (MEF), 직렬화 및 리플렉션은 DevForce 내에서 이러한 문제를 완화하려고했지만 우리가 발견 한 몇 가지 영역이 항상 동일한 환경에서 작동하지는 않습니다. 문제. 또한 DF는 비 닷넷 환경에서 일부 속성 (주로 ODATA 및 데이터 주석 용)에 대한 심/더미 구현을 제공하므로 실제 유형을 예상하는 경우 문제가 발생할 수 있습니다.

분명하지 않을 수도있는 몇 가지 차이점을 검색했습니다. 1) 비.NET에서 복제 할 때 매개 변수없는 생성자가 필요합니다. 2) ProvideEntityAspect 및 ProvideComplexAspect 속성 사용에 대한 컴파일 타임 유효성 검사가 완료되었습니다. .NET에서만, 3) FIPS 매개 변수 세트로 암호화/암호 해독을 시도하면 Non.NET에서 NotSupportedException이 발생합니다.

디자인 타임 지원에도 차이가 있습니다. SL에서는 ECS를 사용하거나 코드 첫 번째 모델을 기반으로 디자인 타임 데이터를 사용할 때 VS에 의해 이상한 보안 및 직렬화 예외가 발생합니다.

SL 코드의 .NET 단위 테스트를 수행하는 경우 SL에서도 코드가 작동한다고 가정 할 수 없습니다. 놀라움을 피하기 위해 SL에서 실제로 테스트해야합니다.

DevForce의 특정 영역에 대한 질문이 있거나 예기치 않은 환경 차이가 발생하는 경우 저희에게 알려주십시오.

+0

자세한 설명을 주셔서 감사합니다. 그것은 많은 도움이됩니다. 이 정보를 다시 팀원에게 전달하고 추가 정보가 필요한지 알려주지 만 잘 처리했다고 생각합니다. –