2011-01-31 1 views
0

우리는 asp.net을 통해 제공되는 데이터 기반 컨텐츠에 크게 의존하는 Flex 애플리케이션을 보유하고 있습니다. 현재이 데이터의 대부분은 asp.net 객체를 통해 제공되며,이 객체는 XML로 직렬화되어 간단한 ASHX 핸들러를 통해 전송됩니다. 그런 다음 싱글 톤 클래스의 e4x를 통해 파싱되어 자체 또는 하위 클래스 배열을 채 웁니다.이 하위 클래스는 추가 데이터 호출없이 나머지 응용 프로그램에서 사용할 수 있습니다.Flex & WebServices

이 방법이 효과적이지만 최선의 방법입니까? 나는이 주제에 관해 논의한 기사를 많이 읽었지만 어떤 합의도 찾을 수 없었다.

웹 서비스로 변환해야합니까? 그렇다면 바인딩을 어떻게 관리하고, Flex를 통해 자동으로 가져 오거나, 내 바인딩을 직접 작성해야합니까? 프로와 콘은 무엇입니까? 이 결정의 중요한 요소는 속도가 가장 낮고 지연 시간이 가장 짧으며 처리량이 가장 많이 필요합니다.

별도로 문제는 응용 프로그램이 도메인의 루트에 있지 않고 로컬 개발에서 개발 서버로 데이터를 호출 할 때입니다. 결과적으로 응용 프로그램에 플래시 변수를 추가하여 appRoot를 지정하고 필요에 따라 서비스 URL에 추가합니다.

MyService.url = GeneralData.ApplicationRootUrl + "Services/foobar.ashx"; 

이 방법이 최선입니까? 그 후로 rootURL 속성을 발견 했으므로이 컨텍스트에서 어떻게 작동합니까? 서비스를 웹 서비스로 변환한다면 로컬 개발을 허용하기 위해 동일한 기능을 어떻게 구현할 것인가?

많은 감사

이 작동하지만 그것이 최선의 방법입니다

답변

1

?

귀하의 상황에 따라 매우 주관적입니다. 가능한 한 AMF 게이트웨이를 사용하는 것이 좋습니다. 이렇게하면 객체가 서버 측 객체 (.NET 클래스)에서 클라이언트 측 객체 (AS3 클래스)로 즉시 변환 될 수 있습니다. 백엔드에서 수동으로 XML을 만들거나 프런트 엔드에서 수동으로 XML을 처리 할 필요가 없으므로 시간을 크게 절약 할 수 있습니다. 또한 AMF의 바이너리 형식은 XML 또는 SOAP WebService보다 훨씬 작은 패킷을 제공합니다. .NET AMF 옵션의

, 내가 들여다 것 WebORB 또는 FlourineFX

+0

현재 연구가 진행되지 않은 현재 환경을 기반으로 연구되었습니다. 제안 주셔서 감사합니다. – Hawxby

0

플렉스 응용 프로그램은 항상 브라우저에로드하고 응용 프로그램이 어디에서 동일한 서버에 연결할 수 있도록 당신은 상대 URL을 사용할 수 있습니다 짐을 실은.

MyService.url = "/Services/foobar.ashx"; 

"/"는 출처의 호스트를 확실히 추가합니다. 그리고 플래시가로드 된 동일한 호스트에 연결하는 것이 좋습니다.

두 번째로 SOAP 웹 서비스는 XML 직렬화를 사용하므로 처리기를 사용하여 e4x 직렬화를 수행하거나 Flash Builder의 SOAP 웹 서비스 생성기를 사용하는 경우 속도는 거의 동일합니다. SOAP 웹 서비스는 확실히 느려질 것이지만 그 차이는 마이크로 초에서 밀리 초가 될 것입니다.

그러나 웹 서비스를 사용하면 프록시 클래스를 만들지 않아도되므로 개발 속도가 빨라집니다.