기존 PowerBuilder로 개발된 C/S프로그램을 .NET Web Forms으로 전환하여 IIS에 Deploy하는 방법을 알아보자. 파워빌더의 Tutorial프로그램을 .NET Web Forms Application으로 전환하는 과정을 알아보자. 개발환경이 설정되어있지 않다면 PowerBuilder 드디어 .NET을 흡수하다. - 1. 환경설정포스트를 참고하여 설정을 하고 시작하도록 하자.
기존 C/S프로그램 복사 PowerBuilder 설치 폴더(default: C:\Program Files\Sybase)\PowerBuilder 11.0\Tutorial\Solutions디렉토리에 C/S버젼의 Tutorial이 존재한다. 우선 Tutorial\Soulutions폴더안의 파일을 Tutorial\Web Forms폴더로 복사를 하자.
파워빌더를 실행하고 복사한 Web Forms폴더안의 Workspace파일을 MyWorkspace.pbw Open하여 C/S버젼의 Tutorial프로그램이 잘 동작하는지 테스트해 보자.
이제 이 C/S Tutorial프로그램을 .NET Web Forms Application으로 IIS서버에 Delploy하여서 웹브라우져로 실행해보자.
.NET Web Forms target생성
Workspace에 .NET Web Forms Application target을 추가한다. File > New메뉴 선택하여 New 팝업을 실행한다. New화면에서 target tab을 선택하고, .NET Web Forms Application target을 선택하여 .NET Web Forms Application Wizard를 실행한다.
기존 C/S Target을 사용하여 Web Forms Application을 생성하기위해 3번째 'Use the library list and application object from an existing target' 항목을 선택하고 다음을 누른다.
Target 선택화면에서 C/S target을 선택한다. 이 Workspace에는 Tutorial target을 선택하고 다음을 누른다.
.NET Web Forms Application target file의 이름을 설정한다. 그냥 Default로 pbtutor_webform.pbt라는 파일명으로 선택하자.
다음은 project 명을 입력하고, project object를 저장할 Library 파일을 선택한다. Default로 p_pbtutor_webform을 project명으로 pbtutor.pbl Library 파일을 선택하자.
Web application의 이름을 정의한다. Application의 이름은 Application의 URL로 사용된다.
다음화면은 Resource 파일/디렉토리를 설정하는 화면이다. Tutorial에서 사용하는 3개의 Resource 파일(tutsport.bmp, tshirtw.jpg, tutorial.ico)을 Add Files...버튼을 클릭하여 추가한다.
다음은 Application에서 사용될 DLL파일, JavaScript파일을 추가하는 화면이 있다. Tutorial에서는 설정할 내용이 없으므로 다음을 눌러 그냥 넘어가자.
다음 화면에서 Deploy 옵션을 설정해 준다. IIS에 바로 Deploy하기 위해 'Directly deploy to IIS'를 선택하고, IIS server address항목에 localhost를 입력한다.
마지막으로 Wizard로 설정한 내용을 정리해주는 화면이 나타난다. Finish버튼을 누르면 새로운 .NET Web Forms Application target이 Workspace에 추가되는 것을 확인 할수 있다.
.NET Web Forms Application target인 pbtutor_webform을 보면 C/S Application target인 pbtutor와 차이점이 거의 없음을 알수가 있다. 기존 C/S에서 개발한 object들은 그대로 재사용되고 단지 project object만 .NET Web Forms Application용으로 새로 만들어졌다.
.NET Web Forms Application의 배포
새로 만든 .NET Web Forms Application target(pbtutor_webform)의 project object인 p_pbtutor_webform을 오픈한다.
project painter를 보면 .NET Web Forms Application Wizard에서 설정한 내용이 각 탭에 나타나는 것을 확인 할 수 있다. Wizard에서 없었던 Configuration을 설정하기 위해 선택한다.
System에 이미 정의된 configureation을 사용하기 위해 'System-defined configureation settings' 옵션을 선택하고, 아래 리스트중 PBDataWindowPageNavigatorType을 선택하고 Edit버튼을 클릭한다.
PBDataWindowPageNavigatorType옵션은 DataWindow 하단에 Navigator의 형식을 정의한다. 각 Value별 표시 형식은 다음과 같다.
Run tab을 보면, Application에 Internet Explorer가 기본으로 설정되어 있고, Arguments항목에 URL이 설정되어 있다. Deploy후 웹브라우저에서 Argument항목의 주소를 입력하면 Tutorial프로그램이 실행된다는 설정이다.
이제 모든 설정이 끝났으므로 project object를 저장하고, 실제로 Project를 Deploy해보자. Design > Deploy Project를 선택하거나, 툴바에서 Deploy Project를 선택하면 project object에 설정한 내용을 기반으로 PowerBuilder는 Deploy 작업을 수행한다.
Deploy가 끝나면 아래 메시지창에 'Finished Deploy of...'라는 메시지를 확인 할수 있다. 이 메시지 위쪽에 보면 'Some functions/events/properties are not supported.'라는 메시지를 볼수 있다. C/S의 모든 기능을 그대로 웹에서 지원해 줄수는 없기때문에 일부 함수, 이벤트, 속성은 지원하지 않는다는 메시지이다. Unsupported Features라는 창을 확인해보면 어떤것이 지원되지 않는 것인지 확인할수 있다. Tutorial의 경우는 메뉴관련된 일부 속성들과 beep함수가 지원되지 않는다는 메시지가 나왔다. 하지만 Tutorial을 웹으로 실행하는데에 치명적인 부분은 없기 때문에 큰 문제는 되지않는다. 실제 Project에서는 지원되지 않는 부분의 확인과 관리가 철저해야할 부분인 것 같다.
.NET Web Forms Application으로 전환은 모두 끝났다. 이제 테스트를 해보자. 웹브라우져를 실행하고 URL로 http://localhost/pbtutor를 입력해보자.
지금까지의 과정에서 C/S 프로그램의 소스코드의 수정은 전혀 없었따. 단지 project object만 새로 생성하는 과정만으로도 .NET Web Forms Application을 훌륭히 만들수 있었다. 물론 아직 많은 것이 검증안되었고, 지원되지 않은 function, event, properties가 있는건 사실이다. 하지만 C/S코드의 100% 재사용으로 간단히 .NET Web Application으로 전환이 가능하다는 것은 상당히 메리트가 있다고 생각한다.
웹으로 실행해보면 알겠지만 확실히 C/S프로그램과 비교했을때 속도가 많이 느려짐을 느낄수가 있었다. C/S프로그램에서는 배포라는 고질적인 문제를 Web은 해결해 주지만 대신 속도를 희생해야만 한다. 다음에 포스트할 .NET Windows Forms을 이용한 Smart Client는 이 두가지의 장점을 모두 가지고 있는 것이다.