盡人事待天命

미디어협동조합 국민TV
하루종일 고생했다

여지까지 플렉스로 뭔가를 만들면서

NT로만 되어 있는 것을 만들었었는데

이번에 UNIX로 되어 있는 것 ..

어제 쉬는날 출근을 해서 그거 때문에
하루종일 고생했다..

플랙스 프로젝트 메뉴에서 OS를 잘 선택해서 컴파일 하자 ㅠ_ㅠ;;
Posted by 톰켓 Trackback 0 Comment 0

기본적으로 Adobe가 .NET의 DataSet을 지원하지 않습니다.

MS에서 기술 공유를 거부했다는 이야기도 있고, Adobe에서 공식적으로 .NET 지원을 안하는 것으로 공표했다는 이야기도 있습니다.

언젠가는 상호 데이터 교환이 되겠지만, 현재로서는 방법이 없습니다.

그런데, 방법이 없다고 손을 놓으면 안 되겠죠. 자료를 찾다보니, DataSet의 xml 형식을 W3C표준으로 바꿔주는 방식이 있어,

여기에 소개합니다.

(지금 현재 .NET Webservice와 연동하여, 프로젝트 진행 중이며, 아직까지 문제없이 작동중입니다.)


간략 요약하면,

1. .Net WebService를 하나 더 만듭니다. (기존 WebService를 호출해서, Return된 DataSet를 변환하기 위한)

2. 생성한 WebService에서, 기존 WebSevice를 호출하여, xmldocument로 변환한다.

3. 리턴한다.

4. flex webservice에서 resultFormat="object"로 하여, object 형으로 return 받는다.



상세설명입니다. -- 이후 존칭 생략합니다.


1. .Net App에서 Webservice를 하나 생성하고, 호출하려는 Webservice를 웹참조합니다.
   : 호출하려는 webservice에서 return하는 DataSet을 표준 xml로 변환하는
     Webservice를 생성하기 위해서이다.
2. 다음과 같은 Webservice를 정의한다. (VS.Net 2008, C# 기준)
        /*FlexInterfaceCallasmx */
        [WebMethod]
        public XmlDocument DataSetBoxing()
        {
            XmlDocument xml = new XmlDocument();

            try
            {
                호출하려는 Web Reference ws = new 호출하려는 Web Reference();

                DataSet ds = ws.호출하려는 Method();

                if (ds != null && ds.Tables[0] != null)
                {
                    System.IO.StringWriter sw = new System.IO.StringWriter();
                    ds.WriteXml(sw);
                    sw.Close();

                    xml.LoadXml(sw.ToString());
                }
                else
                    xml.LoadXml("<Error>Interface Error : Data Not Found</Error>");

                return xml;
            }
            catch (Exception ex)
            {
                xml.LoadXml("<Error>" + ex.Message + "</Error>");
                return xml;
            }
        }


   3. Flex에서는 해당 Result를 Object Format으로 받아서, ArrayCollection으로 변환한다.
          <mx:Script>
               <![CDATA[
                      private function fnSucs(e:ResultEvent) : void
                     {
                           this.dsResult.removeAll();
   
                          if( e.result.최상위다음노드 != null )
                          {
                                 if (e.result.최상위다음노드.NewDataSet == null)
                                       Alert.show(ObjectUtil.toString(e.result.최상위다음노드.Error),"Alert");
                                 else if (e.result.DataSetBoxingResult.NewDataSet.Table == null)
                                       Alert.show("조회된 자료가 없습니다.","Notice");
                                 else
                                       this.dsResult = ArrayCollection(e.result.DataSetBoxingResult.NewDataSet.Table);
                          }

                         this.dgTest.dataProvider = this.dsResult;
                  }
   
                  private function fnFail(e:FaultEvent) : void
                 {
                       Alert.show(ObjectUtil.toString(e.fault));
                  }
           ]]>
      </mx:Script>

      [Bindable] protected var dsResult : ArrayCollection = new ArrayCollection();

      <mx:WebService id="webService" wsdl="http://localhost/FlexInterfaceCall.asmx?wsdl"
             useProxy="false" showBusyCursor="true">
             <mx:operation name="DataSetBoxing" resultFormat="object"
                    result="this.fnSucs(event)" fault="this.fnFail(event)">
             </mx:operation>
      </mx:WebService>

    <mx:DataGrid x="10" y="98" width="402" height="404" id="dgTest" />

Posted by 톰켓 Trackback 0 Comment 0

Flex debug perspective

Flex debug perspective 에는, Flex 어플리케이션과 ActionScript 어플리케이션의 디버그에 필요한 툴이 있습니다. 개발 perspective 와 같이, debug perspective 내의 주요 툴은 에디터입니다. 어플리케이션의 디버그에서는, 에디터는 debug 툴과 연동해 주의가 필요한 코드행을 찾아내 하이라이트 표시하기 위해(때문에), 코드행을 수정해 어플리케이션의 테스트를 속행할 수 있습니다.

예를 들어, 그 시점까지의 변수의 값이나 그 외의 정보를 검사할 수 있도록(듯이), 스크립트의 실행을 정지하는 breakpoint를 스크립트로 설정할 수 있습니다. 다음의 breakpoint에 진행될 수도 있고, 함수 호출해에 스텝 인 해 변수치의 변경을 확인할 수도 있습니다.



디버그 perspective 는, 최초의 breakpoint가 발견되었을 때에 자동적으로 표시됩니다. 메인 workbench 툴바의 우단에 있는 perspective 바로부터, debug perspective 를 선택해 바꿀 수도 있습니다.

디버그 perspective 에는 다음의 뷰가 있습니다.

Debug view

Debug view (다른 디버거로 "Call Stack " 로 불리는 일이 있습니다)는, debug 하고 있는 Flex 어플리케이션의 중단 thread의 스택 프레임을 표시합니다. Debug view 를 사용하면, debug 프로세스를 관리할 수 있습니다. 예를 들어, Debug view 에서는, thread의 재개나 중단, 코드 스테이트먼트의 스텝 인 및 스텝오버등을 실행할 수 있습니다.



Debug view 의 조작 방법의 상세한 것에 대하여는, Debug view 에서의 debug 세션의 관리를 참조해 주세요.

Flex 어플리케이션은, Java 등과 같이 multi-thread는 아니고 싱글스 레드이기 (위해)때문에, 한 번에 1 개의 Flex 어플리케이션 밖에 debug 할 수 없습니다. 따라서, Flex 어플리케이션의 디버그시에는, 싱글스 레드 실행용의 프로세스와 Debug view 밖에 표시되지 않습니다.

Debug view 에는, 그 시점까지 불려 간 모든 함수의 목록이 불려 간 순서에 표시됩니다. 예를 들어, 최초로 불려 간 함수는, 목록의 가장 아래에 있습니다. 함수를 더블 클릭 하면, 스크립트의 그 위치로 이동할 수 있습니다. Flex Builder 에 의해 Variables view 의 정보가 갱신되어 스크립트내의 새로운 위치가 반영됩니다.

Breakpoints view

Breakpoints view 에는, 프로젝트로 설정한 breakpoint가 모두 표시됩니다. breakpoint를 더블 클릭 하면, 에디터에 그 위치를 표시할 수가 있습니다. breakpoint를 무효로 하거나 스킵 하거나 삭제할 수도 있습니다.



상세한 것에 대하여는, Breakpoints view 에서의 breakpoint의 관리를 참조해 주세요.

Console view

Console view 에는, ActionScript 코드로 지정되고 있는 trace 스테이트먼트로부터의 출력, 또 디버거 자신으로부터의 피드백 (스테이터스, 경고, 에러등)도 표시됩니다. Console view 는, Flex Builder 1.5 의 "출력 패널 " 와 같은 역할을 완수합니다.



상세한 것에 대하여는, Console view 의 사용을 참조해 주세요.

Variables view

Variables view 에는, 현재 선택되고 있는 스택 프레임의 변수에 관한 정보가 표시됩니다. 이 Variables view 는, 다른 디버거 (Flex Builder 1.5 등)의 [locals] 윈도우와 같은 역할을 완수합니다. 변수를 선택해 Expressions view 로 감시할 수 있습니다. 한층 더 debug 세션중에 변수의 값을 변경해, 현재 실행중의 SWF 파일로 변경을 확인해, 해결하려고 하는 문제의 수정 개소를 시험할 수가 있습니다.



상세한 것에 대하여는, Variables view 에서의 변수의 관리를 참조해 주세요.

Expressions view

Expressions view 를 사용하면, 중요한 변수세트를 감시할 수 있습니다. Expressions view 는, 다른 디버거의 [watch] 윈도우와 같은 역할을 완수합니다 (Flex Builder 1.5 에서는, 이것은 "감시 리스트 " 로 불리고 있었습니다). Variables view 로 중요하다고 생각해지는 변수를 선택해, Expressions view 에 추가해, 감시할 수가 있습니다.



어플리케이션을 debug 할 경우에 변수를 감시해, 필요하면, 변경할 수 있습니다. Expressions view 내에서 변수를 추가 및 삭제할 수도 있습니다. 상세한 것에 대하여는, Expressions view 의 사용을 참조해 주세요.

Flex 어플리케이션과 ActionScript 어플리케이션의 디버그의 상세한 것에 대하여는,어플리케이션의 실행과 디버그를 참조해 주세요.

관련 토픽

Posted by 톰켓 Trackback 0 Comment 0


티스토리 툴바