PowerBuilder 드디어 .NET을 흡수하다. - 3. .NET Windows Forms
금봉이2007. 8. 30. 17:52
PowerBuilder 드디어 .NET을 흡수하다. - 2. .NET Web Forms포스트에서 기존 C/S 프로그램을 Web Application으로 전환하여 IIS에서 서비스하는 방법을 살펴보았었다. Tutorial 프로그램을 실행해본 결과에서 느낄수 있는 단점은 Web으로 전환후 속도가 C/S프로그램 만큼 나오지는 않는다는 것이다. 이번에 포스트하는 기존의 C/S프로그램을 .NET Windows Forms은 .NET기반의 Smart Client로 전환하는 방법에 대해서 설명하겠다. 파워빌더 개발환경이 설정되어 있지 않다면 PowerBuilder 드디어 .NET을 흡수하다. - 1. 환경설정포스트를 참고하여 설정을 하고 시작하도록 하자.
기존 C/S프로그램 및 Resource Files 복사
PowerBuilder 설치 폴더(default: C:\Program Files\Sybase)\PowerBuilder 11.0\Tutorial\Solutions디렉토리에 C/S버젼의 Tutorial이 존재한다. 우선 Tutorial\Soulutions폴더안의 파일을 Tutorial\Windows Forms폴더로 복사를 하자.
Tutorial폴더안에 있는 이미지 파일들(tshirtw.jpg, tutsport.bmp, tutorial.ico)을 Tutorial\Windows Forms 폴더에 복사를 하자. 파워빌더에서 .NET Windows Form Application에서는 Resource파일들이 반드시 Target Directory나 하위 Directory에 위치해 있어야만하는 제약이 있다. 모든 전환과정이 끝나고 .NET Windows Forms project object를 열어서 Resource tab에서 Add Files버튼을 클릭한 후 Target Directory상위 폴더로 이동해보자. 그러면 'You can only select files within this target's directory("C:\Program Files\Sybase\PowerBuilder 11.0\Tutorial\Windows Forms") or its subdirectories'라는 Warning 메시지 박스가 나타난다.
.NET Windows Forms Application target 생성 수정된 C/S Tutorial 프로그램을 .NET Windows Forms으로 전화하는 과정을 살펴보자. 과정은 .NET Web Forms로 전환하는 과정과 저의 비슷하다. 결과적으로 .NET Windows Forms project object를 생성하는 것이 주된 일이라고 할수 있겠다. 그 과정을 살펴보자.
신규 target을 생성하기위해 File > New 메뉴를 선택하거나 툴바의 New버튼을 클릭하여, New 화면에서 target tab을 선택한다. 그리고 목록중에서 지금 설명하고 있는 .NET Windows Forms Application을 선택하고 OK버튼을 클릭한다.
기존 C/S프로그램을 이용할 예정이므로, 'Use the library list and application object from an existing target'옵션을 선택한다. 다음 Tutorial C/S프로그램 target pbtutor를 선택해 준다.
새로 생성하는 .NET Windows Forms의 target 파일명과 project object명을 설정한다.
다음 화면에서 .NET Windows Forms Application의 이름, 실행파일명,버젼번호등을 설정해준다. 이 버젼번호는 Client가 Update를 할것인지 여부를 결정하는데 사용된다.
다음 화면에서는 Resource Files / Directories를 설정한다. 여기서 주의할 것은 Target폴더 상위에 Resource가 위치해서는 안된다는 것이다. 상위폴더로 이동하려고 하면 Warnning 메시지가 뜬다.
다음은 사용할 외부 DLL파일이 있는 경우 설정하는 화면이다. 이 Tutorial에서는 사용하는 것이 없으므로 그냥 넘어간다.
Smart Client Application을 지원하기 위해서 'Publish as smart client applicaton'옵션을 선택한다.
Application Running Mode를 설정하는 화면이다. 사용자 컴퓨터에 프로그램을 설치하고, 윈도우 시작메뉴에서 단축아이콘으로 프로그램 실행을 하기위한 옵션을 선택한다.
프로그램의 설치위치를 설정해 준다. 다음화면에서 업데이트 방식을 설정해 준다.
Wizard의 모든 설정이 끝나고, 설정한 내용을 요약해준다. Finish를 클릭하여 Wizard를 끝낸다.
Wizard를 끝내면 .NET Windows Forms Application target이 추가되고, pbtutor.pbl에 p_pbtutor_windform project object가 추가되어 있는 것을 확인 할수 있다.
PowerBuilder에서 .NET Windows Forms target의 Deploy 및 실행 PowerBuilder에서 .NET Windows Forms target을 실행해 볼려면 우선 Delploy를 먼저해 주어야 한다.
추가한 .NET Windows Forms Application target의 p_pbtutor_windform project object를 오픈한다.
.NET Windows Forms target을 Deploy하게 되면 target폴더 아래에 target명 + WinformOutput 폴더가 자동으로 생성되고, PBD파일, .NET assembly 파일, Resource파일들을 복사하는 작업을 수행한다. 주의할점은 PATH 시스템 환경변수에 .NET Framework 2.0 SDK가 설치된 폴더의 bin 폴더가 없다면 Deploy가 실패하게 된다는 것이다. 해당 폴더가 PATH로 잡혀있는지 반드시 확인하기 바란다.
파워빌더에서 .NET Windows Forms target을 실행하면, 기존 C/S프로그램과 동일하게 작동하는 것을 확인 할 수 있다.
웹브라우져로 Application 배포 웹을 통한 Update를 하기 위해 IIS에 프로그램을 Publish하는 과정을 살펴보자.
우선 .NET Windows Forms Application target의 p_pbtutor_windform project object를 오픈한다.
Version tab에서 Company name항목을 입력하자. Product name, Company name항목은 웹의 publish page에 표시되는 항목이다.
Prerequisites tab에는 .NEW Windows Forms Application을 실행하기 위해 필요한 Microsoft .NET Framework 2.0과 PowerBuilder 11 Runtime Library를 같이 설치 할 것인지 선택하는 옵션이 있다. 여기서 선택을 한 옵션은 install package에 같이 포함되어 사용자들에게 배포된다. 사용자가 publish page에 접속하여 프로그램을 설치하려고 할때 위 두가지 package가 이미 설치되어 있는지 체크하여 없다면 설치후 프로그램을 설치하게 된다.
설정이 끝났으면 project object를 저장하고 Design > Publish메뉴를 선택하여 IIS에 올리도록하자.
웹브라우져로 프로그램 설치 및 Update 테스트 이제 웹브라우져를 실행하고 Tutorial 설치페이지로 접속하여 프로그램을 설치해보자. 그리고 프로그램 수정으로 버젼업이 되었을때 클라이언트가 어떻게 배포를 받는지 확인해 보도록 하자.
'Click here to install this software now and run the application.'라는 메시지가 보일 것이다. here를 클릭하면 다운로드 팝업이 뜨는데 실행을 누르면 설치가 시작된다.
설치팝업이 뜨면서 설치할 Component를 보여준다. .NET Framework는 이미 내PC에 설치되어 있기 때문에 설치할 내용에는 나타나지 않았다. Advanced버튼을 클릭하면 설치할 Component를 선택할수도 있다. Microsoft .NET Framework 2.0은 이미 설치되어 있기때문에 (Installed)라는 메시지가 추가된 것을 확인 할수 있다.
Install버튼을 클릭하면 Sybase PowerBuilder .NET Runtime설치화면이 나타난다. Sybase PowerBuilder .NET Runtime의 설치가 끝나면 Tutorial 프로그램인 Odyssey의 설치화면이 나타난다.
설치가 끝나면 자동으로 Tutorial이 실행되고, 시작메뉴에 단축아이콘이 생성된 것을 확인할 수가 있다.
이제 프로그램을 수정하고 Update해 보자. w_pbtutor_basesheet Object를 오픈하여, BackColor를 변경해보자. 이 윈도우 Object는 Tutorial의 Sheet윈도우의 부모 윈도우이기 때문에 상속받아서 쓴 모든 Sheet윈도우의 배경색이 변경될 것이다. 저장후 Deploy하고, 다시 Publish를 한다.
웹브라우져로 http://localhost/odyssey/publish.htm페이지에 접속해보자. 그러면 Version 번호가 1.0.0.2로 변경되어 있다.
웹브라우져는 닫고(버젼확인을 위해 열어 보았다), 시작메뉴에서 Odyssey단축아이콘을 클릭하여, Tutorial프로그램을 실행해보자. 그러면 응용프로그램이 업데이트되었다는 팝업이 실행된다. 확인을 클릭하면 Update가 이루어지고 프로그램이 실행된다. Sheet화면을 열어보면 배경색이 변경된 것을 확인할 수가 있다.
지금까지 PowerBuilder 11에서 기존 C/S프로그램을 .NET Windows Forms Application target으로 변환하여 Smart Client프로그램으로 구현해 보았다. 파워스크립트를 그대로 사용하면서 .NET Framework 기반의 프로그램을 개발할수 있다는 것은 PowerBuilder개발자로서 기쁜일이다. 하지만 이 Tutorial만으로 모든 기능을 완벽히 이해했다고 하기에는 무리가 있을 것이다. 단지 이렇게 구현되어 있구나 정도만 느낄수 있다면 3개의 포스트를 쓴 보람이 있다고 생각한다. 가능하면 쉽게 설명하려고 따라하기 식으로 하다보니 화면캡쳐가 상당히 많아져서 스크롤이 길어졌다. 긴 포스트 읽어 주신 당신에게 감사드리면서~~ 끝~~!