아래 정리된 사항은 XPLATFORM9.x 버전을 V13으로 변경시 고려사항을 대상으로 정리합니다.
eval 함수를 사용하는 방법에 대한 처리
그리드 에서 bind 된 dataset 을 가져오기 위해 썻던 방법
9.2 사용방법
var dataset = eval(obj.binddataset);
V13 사용방법
var dataset = eval("this." + obj.binddataset);
obj.binddataset 을 할경우 dataset 이 넘어 오지만. javascript 에서 dataset 을 접근하기 위에 앞에 this. 을 붙여 줘야 한다.
eval 로 특정 함수를 호출 하기 위해선 기존과 다른 방법을 사용 합니다
9.2 사용방법
eval("this." + sParent)[callbackFunction](callbackServiceID, errorCode, errorMsg);
V13 사용방법
방법 1) eval("this."+ sParent[callbackFunction]+"(callbackServiceID, errorCode, errorMsg)"); 방법 2) eval("this."+sParent[callbackFunction]+"("+callbackServiceID+","+ errorCode+","+ errorMsg+")");
위와같이 eval 사용법은 사용방법이 개발자에 의해 여러가지 구현이 가능합니다.
사용 예) var callbackServiceID = 0; var errorCode = 1; var errorMsg = 2; var callbackFunction = 0; var sParent = new Array(); sParent[0] = "asdf"; eval("this."+sParent[callbackFunction]+"(callbackServiceID, errorCode, errorMsg)"); eval("this."+sParent[callbackFunction]+"("+callbackServiceID+","+ errorCode+","+ errorMsg+")");
eval 로 해당 화면에 특정 함수가 있는 지 여부를 파악하기 위해선 코드를 조금 수정해 줘야 함니다.
9.2 사용방법
if(isNull(eval("this." + sParent)[searchFunctionName]) == false ){}
V13 사용방법
if(this.isNull(eval("this." + sParent[searchFunctionName])) == false ){}
이벤트를 동적으로 제거 하기 위해선 이제 eval 을 사용 하지 않아도 됨니다. 추가시에는 eval 을 사용 합니다.
9.2 사용방법
eval("this.YearCombo." + eventName + ".clear()"); / eval("this.YearCombo." + eventName + ".addHandler("+fun+")");
V13 사용방법
this.Combo00.clearEventHandler(eventName); / this.Combo00.addEventHandler("ondropdown", eval("this."+fun),this);
사용 예) var fun = "aaaa"; this.Combo00.addEventHandler("ondropdown", eval("this."+fun),this);
XPLATFORM 9.2, V13버전 차이점
아래 표의 내용은 전체를 대상으로 정리된 것이 아니므로 참고용으로만 사용하시기 바랍니다.
Property 및 문법 | 9.2 | V13 |
---|---|---|
Div00.MaskEdit05.value ( 변수 등에 값을 넣을 때) | Div00.MaskEdit05.value | this.Div00.MaskEdit05.set_value |
Visible 처리 | divDetail.visible = true | this.divDetail.set_visible(true) |
컴포넌트의 위치 지정 | Grid00.position.height = 100 | this.Grid00.set_height(100) |
컴포넌트의 높이, 너비 구할 때 | Grid00.position.height | this.Grid00.height |
컴포넌트 등의 값을 지정 할 때 | Grid00.enable = false | Set_로 설정한다. this.Grid00.set_enable( false) |
url 지정 | objBodyChild.url=“work::mainPotal0” | objBodyChild.set_url( “work::mainPotal0”) |
변경된 Scroll Position 지정 | Grid00.vscrollbar.pos=+10 Grid00.vscrollbar.pos=-10 | Grid00.vscrollbar.set_pos (this.divLeft.divLeft3.Grid00.vscrollbar.pos-10) |
이미지 뷰어 동적 생성 | Imageviewer. new ImageViewer("drag_img", obj.left, obj.top, obj.right) | new ImageViewer("drag_img", obj.left, obj.top) bottom이나 right 넣으면 에러남 |
문자열 변수 숫자형 변환 | var varNum; varNum = toNumber("123.4"); | var varNum; varNum = parseInt("123.4"); |
rowcount | Dataset.rowcount | this.rdoRowCount.value |
getSum | getSum(("column0") | comp.parent.Dataset00.getSum("Column0") |
버전 Q&A : 해당 내용 답변시점은 2013년 3월29일 기준입니다.
XP 9.2 대비 13버전은 어떤 차이가 있는가?
9.2는 투비소프트가 만들고 유지보수를 직접 했다면, 13버전은 같은 기능을 제공하면서도, 유지나 보수 면에 있어서 투비소프트뿐만 아니라 고객들이 직접 유지보수를 할 수 있는 환경을 제공한다는 의미가 있다. 랭귀지에 있어서도 기존의 C언어가 아니라, 자바스크립트를 사용한코딩이 가능해 투비의 연구소 엔지니어가 아니어도 고객사에서 충분히 콤포넌트를 직접 만들고 재사용할 수 있다. 즉, 각 고객 기업 환경에 최적화된 콤포넌트를 고객들이 직접 만들고 유지보수 할 수 있는 환경을 제공하는 기반을 제공한다는 것이 큰 차이라 할 수 있다.
기술적 환경 측면에서 좀 더 쉽게 차이를 설명을 하자면?
기존 9.2는 OSMU측면에서 개발 시 런타임과 HTML5 버전 환경에 체크를 해야 하는 부분들이 있어 신경을 써야 하고, 그에 따른 테스트도 많이 발생하게 되었다. 간단히 말하면, 1번의 개발에, 2번의 테스트가 필요했던 환경이었고, HTML5 버전의 기능이 런타임 버전 기능과 일부 차이가 있었던 부분이 있었다. 그러나 13버전은 통합 프레임워크(Unified Framework) 기반으로 개발과 테스트의 수월함과 HTML5 버전의 기능과 런타임 버전의 기능이 일치하여 관리 포인트 역시 감소하고, 동시에 9.2버전의 HTML5보다 기능 및 성능이 보강되었다.
그렇다면 9.2 버전은 더 이상 사용할 가치가 없는가?(혹은 9.2 버전은 부족한 제품인가?)
결국에는 엑스플랫폼이 끊임없이 발전할 것이기 때문에 이전 버전의 제품보다 어떠냐는 수준을 묻는다면 결과적으로는 계속해서 나올 제품이 더 나은 제품이라고 말을 해야 할 것이다. 그러나, 9.2 버전과 13버전은 비교 대상의 제품으로 인식하기 보다는 고객의 환경, 니즈에 맞추어 고려해야 할 특징이 다른 제품으로 인식을 하는 것이 바람직하다. [고객의 고려 환경 : 데스크톱 only ] 엑스플랫폼 9.2 버전은 런타임 환경에 최적화된 제품 임. 단, 현재는 데스크톱만 고려가 되더라도 향후 장기적 멀티플랫폼을 계획하고 있다면 V13 버전을 선택하는 것이 바람직하다. [고객의 고려 환경 : 멀티플랫폼 지향 고객들 ] 엑스플랫폼 13 버전은 런타임과 HTML5 환경에 최적화되어 있고, 특히 HTML5 버전 환경에 보다 빠른 성능과 보강된 기능을 자랑하고 있기 때문에 13 버전을 선택하는 것이 유리하다. 단, 엑스플랫폼은 계속 발전 중이기 때문에 V13에 이어 향후 V14 버전에 이르기까지 BUX를 실현해 나아갈 버전들이 결국에는 9.2보다는 훨씬 좋은 제품이 될 것이다. 따라서 현재 V13은 UX 구현의 초석이 되는 제품이다.
엑스플랫폼 9.2 버전에서 13버전으로 마이그레이션이 가능한가?
현재 마이그레이터를 준비 중이고 고객들이 편리하게 마이그레이션 할 수 있도록 내부적으로 그 수준을 계속 향상시키고 있다. 단, 9.2에 대한 기능.성능 구현에 대한 준비가 마이그레이터를 통해 구현될 준비가 되었을 때, 고객들에게 소개할 예정이며, 그 소개 일정을 최대한 앞당길 수 있도록 내부적으로 노력하고 있다. 빠르면 13버전 시리즈 내에서부터 최대 14버전 출시 이내로 목표를 하고 있다.