본문 바로가기

VB.NET

Visual Basic 6.0에서 Visual Basic .NET으로 마이그레이션할 경우 얻을 수 있는 이점

반응형

Visual Basic 6.0에서 Visual Basic .NET으로 마이그레이션할 경우 얻을 수 있는 이점

White Paper

Ken McNamee
Eric Cherng
James Duff
Scott Stanfield
Vertigo Software, www.vertigosoftware.com


Jay Roxe
Microsoft Corporation


2004년 8월

적용 응용 프로그램:

Microsoft Visual Basic 6.0

Microsoft Visual Basic .NET

Microsoft Visual Studio .NET 2003

Microsoft .NET Framework 1.1



요약

Doculabs에서 최근 실시한 독립 벤치마크 결과, Visual Basic .NET 웹 응용 프로그램이 동등한 응용 프로그램보다 성능이 우수하며 더 많은 사용자를 지원하는 것으로 나타났습니다. 본 자료는 그 벤치마크 결과를 요약한 것으로, 응용 프로그램 성능 및 개발자 생산성 향상을 중점적으로 다룹니다. 벤치마킹 응용 프로그램을 ASP/Visual Basic 6.0 버전에서 ASP.NET/Visual Basic.NET 버전으로 마이그레이션하는 방법을 통해 이러한 이점을 설명하겠습니다.

다른 조건은 그대로 두고 Visual Basic 6.0에서 Visual Basic .NET으로 바꾸기만 했는데도 시스템의 트랜잭션이 평균 3배 이상 늘었습니다. 본 자료에서는 그 결과를 요약하고 그러한 결과를 이끈 Output Caching과 같은 Visual Baskc .NET의 새 기능에 대해 설명합니다.


도입

이 벤치마크 테스트 결과를 보면 Visual Basic .NET으로 업그레이드할 경우 Visual Basic 6.0 응용 프로그램보다 성능이 최소한 2배 이상 향상된다는 것을 알 수 있습니다. 그렇다면 기술 업그레이드가 어떻게 그렇게 현격한 성능 향상을 가져올 수 있을까요? 본 자료에서는 실제 응용 프로그램 성능을 점검하고 현저한 성능 및 확장성 향상을 이끈 ASP.NET과 Visual Basic .NET의 새 기능에 대해 살펴봅니다.

Visual Basic .NET은 Visual Basic 프로그래밍 언어의 최신 버전입니다. 첫 번째 버전부터 Visual Basic은 강력한 응용 프로그램 작성에 사용되는 간단하면서도 생산적인 언어로 유명했습니다. Visual Basic .NET은 사용자에게 익숙한 구문은 대부분 그대로 유지하면서 이 언어를 발전시켜 이러한 전통을 계승하고 있습니다. 또한 .NET Framework에서 Visual Basic .NET을 지원하므로 Visual Basic 개발자는 이전 버전에서는 볼 수 없었던 더 많은 강력한 기능에 액세스할 수 있습니다. 예를 들면, Visual Basic 6.0의 웹 서비스 호출과 같은 복잡한 기능이 Visual Basic .NET에서는 코드 단 두 줄로 해결됩니다.

Visual Basic 6.0에서 Visual Basic .NET으로 변경할 경우 얻어지는 성능 향상을 설명하기 위해 Nile Web 응용 프로그램의 벤치마크를 살펴 보겠습니다. Nile은 많은 독립 테스팅 업체가 응용 프로그램 플랫폼 벤치마크에 널리 사용하는 온라인 전자 상거래 서점 샘플 응용 프로그램입니다. 이 벤치마크는 원래 Doculabs와 PC Magazine에서 다양한 응용 프로그램 플랫폼을 테스트하기 위해 사용한 것으로 Visual Basic 6.0과 Visual Basic .NET으로 포트되었습니다. Nile은 샘플이긴 하지만 90% 데이터 구동, 세션 상태 사용, 사용자 인증 로그인과 같은 실제 웹 응용 프로그램 요소를 사용하기 때문에 상당히 유익한 벤치마크입니다.

Nile 응용 프로그램의 두 Visual Basic 버전의 벤치마크를 살펴 보겠습니다. 하나는 Visual Basic 6.0 COM+ 구성 요소를 사용해 ASP로 작성된 버전이며 나머지 하나는 Visual Basic .NET을 사용하여 ASP.NET 1.1로 작성된 버전입니다. 동일한 컴퓨터 구성과 동일한 응용 프로그램에서 Visual Basic 6.0과 Visual Basic .NET을 비교하면 Visual Basic .NET이 제공하는 현격한 성능 향상을 확인할 수 있을 것입니다.

이 벤치마크를 실행하기 위해 20분마다 250명의 가상 사용자를 추가하도록 시뮬레이션합니다. 너무 많은 HTTP 오류가 발견되거나 평균 응답 시간이 3초를 초과할 경우 벤치마크 테스트가 종료됩니다. 다음은 이 벤치마크 결과입니다. 하드웨어 및 소프트웨어 설정에 관한 자세한 내용은 벤치마크 결과 섹션의 끝부분에 제공됩니다.

본 자료에 제시된 결과는 여기 (US)에서 볼 수 있는 전체 보고서를 요약한 것입니다.


피크 처리량

피크 처리량은 특정 구성이 지원할 수 있는 최대 처리량을 말합니다. 다음 그림은 Visual Basic 6.0 및 Visual Basic .NET Nile 응용 프로그램을 둘 다 사용해 테스트한 서로 다른 네 가지 CPU 구성의 피크 처리량입니다.



위 그림에서 볼 수 있는 것처럼 ASP.NET/VB.NET 버전은 상응하는 ASP/VB6 버전보다 최소한 200% 이상 우수합니다. 더 높은 CPU 구성에서는 Visual Basic .NET 버전의 피크 처리량이 Visual Basic 6.0 버전보다 3배 이상 우수한 것을 볼 때 200%라는 수치는 실제로 아주 적게 잡은 수치라고 할 수 있습니다.

Visual Basic 6.0의 경우 CPU 수가 증가할 경우 응용 프로그램 성능이 평균 48% 증가했습니다. 한편 Visual Basic .NET 버전 응용 프로그램은 성능이 평균 70% 증가했습니다. 이는 Visual Basic .NET을 사용하여 응용 프로그램을 작성할 경우 추가 리소스를 보다 더 잘 활용할 수 있으며 훨씬 더 확장성 있는 솔루션을 제작할 수 있다는 것을 뜻합니다.

소규모 기업이나 취미로 개발을 하는 사람은 일반적으로 웹 응용 프로그램을 실행하는 멀티 프로세서 서버를 보유하지 않습니다. Visual Basic .NET에서의 성능 향상 때문에 1 CPU 및 2 CPU 구성의 경우만 하더라도 ASP.NET/VB.NET 응용 프로그램이 ASP/VB6 응용 프로그램보다 월등하게 우수합니다. 성능 확장력이 있으므로 처음에는 최소한의 하드웨어만 투자하면 되며 나중에 성능 확장이 필요할 경우 그에 맞게 하드웨어를 추가하면 됩니다.

소규모 기업과 달리 대부분의 대기업은 일반적으로 최적의 성능을 내기 위해 더 많은 CPU에서 응용 프로그램을 실행합니다. 다음 그림은 8 CPU 구성을 자세히 나타낸 것으로 Visual Basic .NET 응용 프로그램의 피크 처리량 성능이 동일한 Visual Basic 6.0 응용 프로그램보다 3배 이상 우수하다는 것을 알 수 있습니다.



확장성 비교

피크 처리량도 중요하지만 더 중요한 것은 그 처리량이 사용자 로드에 따라 어떻게 달라지는가 하는 것입니다. 처리량을 비교해 보면 시스템이 포화되어 오류가 발생하기 전까지 그 시스템에서 지원할 수 있는 최대 트랜잭션을 알 수 있습니다. 아래 그림은 8 CPU 구성 서버에서 실행되는 Nile의 ASP/VB6 및 ASP.NET/VB.NET 버전 처리량을 비교한 것입니다.


위 그림을 보면 Visual Basic 6.0 응용 프로그램은 우리 테스트 기준을 벗어나기 전까지 초 당 약 500 트랜잭션에서 약 4,500명의 가상 사용자를 지원할 수 있습니다. 4,500명이면 많은 수이긴 하지만 초 당 약 2,200 트랜잭션에서 약 13,000 명의 가상 사용자를 지원할 수 있는 Visual Basic .NET 버전과는 비교가 되지 않습니다. 이는 동일한 응용 프로그램의 경우 Visual Basic 6.0에서 Visual Basic .NET으로 업그레이드하면 사용자는 두 배 이상, 그리고 처리량은 4배 이상을 지원할 수 있다는 것을 뜻합니다. 하드웨어 및 운영 체제 등 모든 것이 동일할 경우 처리량과 사용자가 증가했다는 것은 Visual Basic .NET으로 작성된 응용 프로그램이 Visual Basic 6.0으로 작성된 응용 프로그램보다 리소스를 훨씬 더 효율적으로 활용하며 따라서 기존 투자에 훨씬 더 큰 가치를 제공한다는 것을 보여줍니다.

모든 벤치마크 결과에서 공통적인 경향은 Visual Basic 6.0 응용 프로그램을 Visual Basic .NET으로 전환할 경우 특히 웹 응용 프로그램의 경우 성능 및 확장성이 크게 향상된다는 것입니다. 다음은 이러한 극적인 성능 향상을 가능하게 한 Visual Basic .NET의 기술 향상에 대한 설명입니다.

설정

이 섹션의 하드웨어 및 소프트웨어 설명은 전체 보고서의 상세 정보를 요약한 것입니다.

하드웨어

Compaq ProLiant 시리즈가 이 벤치마크의 서버로 사용되었습니다. 4 CPU 3.6GB RAM 구성의 Compaq ProLiant DL580 서버(733 MHz Pentium III Xeon)가 데이터베이스 서버로 사용되었으며 웹 응용 프로그램 서버로는 4 및 8 CPU 2 GB RAM 구성의 Compaq ProLiant 8500R(700 MHz Pentium III Xeon)이 사용되었습니다. 이 서버에서 작업 부하를 생성하기 위해 모두 50대의 단일 프로세서 Dell 클라이언트 워크스테이션를 사용하였습니다. 그리고 마지막으로 테스트 관리 및 결과 수집에는 Mercury Interactive Controller를 사용하였습니다.

소프트웨어

Windows Server 2003 Enterprise Edition이 이 벤치마크의 운용 체제로 사용되었습니다. 운영 체제 외에 SQL Server가 데이터베이스로 사용되었으며 IIS(Internet Information Services) 6.0이 Nile Web 응용 프로그램을 호스팅하는데 사용되었습니다. 기본 제공되는 .NET Framework 1.1이 Nile VB .NET 버전 실행에 사용되었으며 로드 생성 및 결과 수집에는 Mercury Interactive LoadRunner 7.5 테스트 제품을 사용하였습니다.


Visual Basic .NET으로 마이그레이션해야 하는 6가지 이유

Visual Basic .NET은 Microsoft Windows 및 Web용 응용 프로그램을 신속하게 구성하는데 필요한 가장 간단하면서도 가장 생산적인 언어와 도구를 제공합니다. 따라서 Microsoft .NET 개발 환경으로 바꾸려는 새 개발자뿐만 아니라 기존의 Visual Basic 개발자에게도 매우 탁월한 선택입니다. Visual Basic .NET은 강화된 비주얼 디자이너, 향상된 응용 프로그램 성능, 보다 우수한 배포 옵션, 향상된 데이터베이스 액세스, 그리고 강력한 IDE(Integrated Development Environment)를 제공하여 신속하게 응용 프로그램을 개발할 수 있도록 만들어 줍니다.



보다 쉽고 강력한 웹 기반 응용 프로그램 개발

ASP.NET의 최고급 언어인 Visual Basic .NET을 사용하면 개발자는 기존의 ASP Web 응용 프로그램에 비해 더욱 광범위한 성능과 생산성 향상을 제공하는 웹 기반 응용 프로그램을 손쉽게 개발할 수 있습니다. Visual Basic 개발자는 이제 자신의 기존 기술을 사용하여 안정적이고 확장성 있는 고성능 웹 응용 프로그램을 더욱 신속하게 구축할 수 있습니다.

그렇다면 Visual Basic .NET은 웹 개발 부분에서 어떻게 Visual Basic 6.0에 비해 이렇게 우수한 성능 향상을 달성할 수 있는 것일까요? 먼저, 기존 ASP에서 사용했던 속도가 느린 해석된 스크립팅 모델을 더 이상 사용하지 않습니다. ASP.NET 페이지는 실제로 웹 응용 프로그램 내에 완벽하게 컴파일된 클래스로, 해석된 ASP 페이지보다 3~5배나 빠르게 실행됩니다. 페이지는 ASP.NET 런타임에 의해 자동으로 일단 컴파일 됩니다. 그리고 페이지가 변경될 때까지 임시 위치로 캐시되며 페이지가 변경되면 다시 컴파일 됩니다. 두 번째로, ASP.NET에서는 캐시된 출력 복사본이 이미 메모리에 있는 경우 런타임이 그 페이지 처리를 건너뛰도록 허용하는 Output Caching이라고 하는 기능이 있습니다. 이 기능은 HTML 출력을 사용자에게 반환하는데 필요한 시간을 크게 줄일 수 있으며 웹 서버의 처리 용량이 크게 증가합니다. 또한 ASP.NET Output Caching은 쉽게 구성할 수 있습니다. 따라서 사용자 정의 가능한 다양한 수의 매개 변수를 기초로 다양한 시간 동안 페이지를 캐시할 수 있습니다. Output Caching은 또 캐싱 전용 페이지 조각을 지원하므로 한 페이지의 대부분을 캐시하고 한 섹션만 동적으로 남겨둘 수도 있습니다. 마지막으로 Visual Basic .NET 개발자는 HTML뿐만 아니라 개체 및 데이터 캐싱까지 허용하는 보다 강력한 Caching API에 액세스할 수 있습니다. 이러한 기술 향상이 벤치마크 결과(Visual Basic .NET으로 구축한 ASP.NET 웹 응용 프로그램의 탁월한 기능과 같은)로 성능 그래프에서 보여준 우수한 성능의 가장 큰 이유입니다.

성능 외에도 ASP.NET은 언어가 단순하다는 또 다른 장점이 있습니다. Visual Studio의 이전 버전, 특히 Visual InterDev에서는 개발자가 웹 개발을 하려면 ASP 페이지 용 VBScript, COM 구성 요소 용 Visual Basic 6.0, 사용자 인터페이스 용 HTML, 그리고 클라이언트 브라우저 용 JScript를 알아야 했습니다. ASP.NET의 기본 제공 기능과 컨트롤 및 Visual Basic .NET을 언어로 사용하면 개발자는 어떤 브라우저 및 어떤 플랫폼에서나 인텔리전트하게 구성할 수 있는 풍부한 씬 클라이언트 사용자 인터페이스를 쉽고 빠르게 만들 수 있습니다. 기본 텍스트 상자 및 단추부터 달력, DataGrids, 필드 확인기와 같은 리치 컨트롤까지 컨트롤 범위도 다양합니다. HTML 및 Jscript를 사용한 프로그램 옵션이 완벽하게 지원되지만 ASP.NET은 이러한 컨트롤을 HTML 및 Jscript로 출력하는 최상의 방법을 자동으로 결정합니다. 게다가 ASP.NET은 어떤 브라우저 유형이 페이지를 요청하는지를 자동으로 감지하고 해당 브라우저에 적합한 HTML/Jscript를 출력하므로 이제 특정 브라우저 유형을 지원하기 위해 사용자 지정 코드를 작성할 필요가 없습니다.

ASP.NET은 또 코드 유지 관리성 부문이 크게 향상되었습니다. 기존의 ASP 웹 응용 프로그램은 그 구성이 엉망일 때가 많았습니다. 페이지에는 해당 브라우저에 대한 HTML 출력뿐만 아니라 서버 측 VBScript 형태의 비즈니스 논리도 포함되어 있습니다. 비즈니스 논리를 별도의 COM 구성 요소로 컴파일하면 코드와 HTML을 분리할 수 있지만 또 다른 도구에서 또 다른 프로젝트를 만들어야 하며 또 다른 언어를 알고 있어야 하고 게다가 COM 구성 요소를 호출하려면 인라인 VBScript를 포함시켜야 합니다. Visual Basic .NET 또는 다른 .NET 언어를 사용해 만들어진 ASP.NET 페이지는 HTML은 한 파일에, 서버 측 코드는 다른 파일에 있도록 하는 Code Behind라는 개념을 제공합니다. 이렇게 되면 코드를 읽고 유지 관리하기가 쉬우므로 훨씬 더 효율적인 팀 기반 개발과 개발자 생산성 향상이 이루어집니다. Code Behind를 사용하면 웹 디자이너는 단순한 ASP.NET 구문을 사용하여 페이지 레이아웃을 디자인할 수 있으며 Visual Basic .NET 개발자는 동시에 비즈니스 논리 관련 작업을 할 수 있습니다. 따라서 소스 제어 동시성 문제 발생 빈도가 크게 떨어집니다.

웹 팜 환경에서 세션 개체의 유용성을 제한하는 심각한 결함을 가졌던 기존 ASP에서 교훈을 얻어 ASP.NET 용 세션 상태를 다시 작성했습니다. 기존 ASP 모델 외에도 ASP.NET에는 응용 프로그램이 단일 서버에서 다중 서버 웹 팜으로 손쉽게 확장하면서도 세션 상태가 제공하는 장점을 여전히 이용할 수 있는 두 가지 새로운 옵션이 추가되었습니다. 세션 상태는 이제 전용 상태 서버 또는 SQL Server 데이터베이스에 저장이 가능합니다. 두 옵션 모두 웹 팜의 모든 서버에 액세스할 수 있으며 어떠한 이유로 인해 웹 응용 프로그램이 중단되어 다시 시작되더라도 세션 상태가 손실되지 않습니다. 또한 ASP.NET 세션 상태는 쿠키가 없는 작업에 대해도 보다 많이 지원합니다. 이러한 모든 옵션은 구성이 가능하므로 사용되는 세션 상태 유형을 작동 정지 없이 언제라도 즉시 변경할 수 있습니다.

강력한 Windows 기반 응용 프로그램 구축

Visual Basic .NET은 강력한 Microsoft Windows 기반 응용 프로그램과 서비스를 구성하는 가장 생산적인 도구로서, XML Web Services, 강화된 Windows Form Designer 및 많은 추가 컨트롤을 지원하는 Windows Forms 응용 프로그램을 구축하기 위한 세계적 수준의 환경을 제공합니다.

XML Web Services를 사용하여 데이터 요청을 중개하면 분산 아키텍처의 데이터 중심적인 Windows 기반 응용 프로그램을 보다 확장성있게 만들 수 있습니다. .NET Framework는 우수한 수준의 웹 서비스 지원을 제공하므로 인터넷을 통한 웹 서비스 메서드 호출이 로컬 기능 호출만큼 쉬워집니다.

새 Windows Forms Designer는 Visual Basic 6.0 Forms Designer에 비해 크게 업그레이드되어 개발자가 보다 짧은 시간 내에 데스크톱 응용 프로그램을 상용화할 수 있도록 만들어 줍니다. Form 클래스에는 이제 Visual Basic .NET 개발자가 작성해야 하는 코드 양을 크게 줄여주는 동시에 현대적인 사용자 인터페이스 경험을 제공하는 많은 새 속성과 컨트롤이 있습니다. 예를 들면, 컨트롤 앵커링 및 유연한 도킹 지원은 이제 Resize 이벤트 핸들러에 더 이상 복잡한 코드가 필요하지 않다는 것을 뜻합니다. 그리고 Opacity 속성을 사용하여 이 양식을 부분적으로 투명하게 만들 수 있으며 TransparencyKey 속성을 사용하면 직사각형이 아니게 만들 수도 있습니다. 한편 TopMost 속성은 이 양식이 계속해서 다른 모든 응용 프로그램 창 위에 보이도록 합니다.

Visual Basic 6.0에는 도구 상자에서 끌어서 놓으면 되는 풍부한 기능을 제공하는 큰 컨트롤 모음이 있었습니다. Visual Basic .NET에서는 이 모음이 확장되어 CheckedListBox, PrintPreviewControl, LinkLabel과 같은 몇몇 컨트롤이 추가되었으며, 클릭 가능한 웹 브라우저 링크로 표시됩니다.

시스템 트레이 아이콘을 지원하는 응용 프로그램 만들기를 예로 들어 봅시다. Visual Basic .NET에서는 NotifyIcon 컨트롤을 사용하면 복잡한 Win32 API 호출을 다시 정렬하지 않고도 시스템 트레이에 손쉽게 응용 프로그램 아이콘을 표시할 수 있습니다. 이렇게 하려면 오른쪽 클릭 메뉴에 시스템 트레이 아이콘을 제공하는 COntextMenu 컨트롤을 추가하거나 해당 응용 프로그램의 주요 사용자 인터페이스 내 아무 곳에서나 이 아이콘을 사용하면 됩니다. 하지만 Visual Basic 6.0을 사용할 경우에는 이 단순한 작업을 실행하는데 너무나 많은 기술이 필요하며 원시 Win32 API를 잘 알고 있어야 합니다.

Visual Basic .NET의 강력한 새 개체 지향적 기능을 이용하면 더 간단하면서 유지 관리성도 더 높은 코드를 사용하므로 기존의 UserControls를 더욱 쉽게 확장할 수 있습니다.

Visual Basic .NET은 이 외에도 Declares 구문을 사용한 복잡한 코드를 요구하는 많은 Win32 API 기능에 대해 더욱 통합된 지원을 제공합니다. System.Drawing 네임스페이스의 클래스는 복잡한 창 그림에 사용되는 단순한 API를 제공합니다. 이 외에도 GIF, JPG, PNG와 같은 가장 많이 사용되는 이미지 유형에 대한 통합 지원도 있습니다. 이 네임스페이스를 사용하면 개발자는 자신만의 이미지를 체계적으로 손쉽게 만들거나 심지어는 기존 이미지에 텍스트를 포개는 작업까지도 손쉽게 할 수 있습니다.

Visual Basic .NET 개발자는 이제 실제 Windows Services와 멀티-스레딩, 그리고 웹 서비스 액세스 통합 지원을 통해 보다 복잡하면서도 더욱 튼튼한 응용 프로그램을 만들 수 있습니다. Visual Basic .NET은 타사 솔루션 없이도 Windows Services를 손쉽게 만들 수 있도록 해주는 ServiceBase 클래스를 제공합니다. 그리고 새 스레딩 기능 덕분에 응용 프로그램 성능과 응답력이 실제로나 사용자 인식에 있어서나 크게 향상되었습니다. Visual Basic 언어 자체도 크게 향상되고 현대화되었습니다. Visual Basic .NET은 이제 보다 견고하고 재사용 가능하며 유지 관리성도 훨씬 큰 코드를 허용하는 완벽하게 객체 지향적인 언어입니다. 엄격한 형식 검사 덕분에 찾기 힘든 버그는 줄고 명시적인 인터페이스는 많아져 재사용 가능성이 향상됩니다. 그리고 견고한 예외 처리는 오류 찾기를 훨씬 더 효율적이고 정확하게 만들어 주므로 응용 프로그램이 훨씬 더 안정적입니다.

원활한 배포

Visual Basic .NET이 Visual Basic 6.0에 비해 탁월함이 두드러지는 분야 중 하나가 배포 분야입니다. Visual Basic 6.0 개발자는 응용 프로그램을 설치하고 구성 요소를 등록하며 응용 프로그램 간에 서로 다른 버전의 동일한 구성 요소를 공유하도록 하는 방법을 처리하는 DLL Hell 프로세스에 익숙합니다. 하지만 이러한 작업은 아주 불편하고 심지어는 악몽 같은 작업이 될 수도 있습니다. .NET Framework는 Windows 및 웹 응용 프로그램 모두 대상 디렉터리에 복사하기만 하면 설치되는 XCOPY 배포 기능을 제공합니다.

XCOPY 배포가 부적절한 경우에는 새 자동 다운로드 배포가 웹 브라우저에 URL을 표시하여 Windows 기반 응용 프로그램이 실행되도록 합니다. Visual Basic .NET을 사용하여 작성된 Windows 응용 프로그램은 이제 HTML 페이지와 동일한 방식으로 설치 및 유지 관리가 가능합니다. 즉, 새 응용 프로그램 또는 응용 프로그램 구성 요소를 사용해 서버를 업데이트하기만 하면 됩니다. 이 개념을 No-Touch 배포라고 하며, 응용 프로그램 사용자가 항상 최신 버전의 Windows 응용 프로그램을 실행하도록 만들어 줍니다. 이 기능은 사용자에게 익숙한 사용자 인터페이스를 제공하는 동시에 Windows 기반 응용 프로그램 배포를 둘러싼 많은 문제점을 해결해 줍니다. Microsoft는 외에도 .NET 응용 프로그램 용 Updater Application Block과 같은 다른 구성 요소도 제공합니다. 이 구성 요소를 사용하면 개발자는 인텔리전트하게 스스로 업데이트하는 방법을 아는 아주 우수하고 유연한 응용 프로그램을 만들 수 있습니다.

웹 응용 프로그램의 경우 ASP.NET은 그 배포 기능에 있어서도 아주 탁월합니다. 더 이상 COM 구성 요소를 등록할 필요가 없으므로 몇 분간의 작동 정지를 유발하고 잠겨진 DLL을 릴리스하기 위해 웹 서버를 중단한 다음 다시 시작해야 할 필요도 없어졌습니다. Visual Basic .NET을 사용해 구성된 ASP.NET 응용 프로그램을 실행 중인 웹 응용 프로그램 위로 복사하기만 하면 되며 웹 서버를 중단하거나 서버를 다시 부팅할 필요가 없습니다. 그리고 웹 서버에 이루어진 기존의 모든 HTTP 요청은 그 웹 응용 프로그램의 기존 인-메모리 버전에서 계속해서 실행되며 새 HTTP 요청은 새 버전에서 처리됩니다. 이 기능 덕분에 작동 정지가 전혀 없는 웹 응용 프로그램이 가능한 것입니다.

ASP.NET에는 web.config라고 하는 새로운 개념의 웹 응용 프로그램 구성 파일이 있습니다. 응용 프로그램 고유 설정이 이 파일에 안전하게 저장되어 나머지 웹 페이지에 배포되도록 합니다. 이 파일에서 읽혀진 설정은 메모리에 저장됩니다. Web.config 파일이 변경되면 ASP.NET은 새 파일에서 그 설정을 다시 읽어 새 요청을 처리하는 새 프로세스를 시작합니다. 응용 프로그램이 변경되는 이 경우에도 웹 서버 작동 정지가 필요하지 않습니다.

ADO.NET을 사용한 강력하고 유연한 데이터 액세스

ADO.NET을 사용하면 개발자는 데이터 액세스 코드에 IntelliSense 및 문 완성을 제공하는 강력한 형식의 프로그래밍 모델 및 DataSet 클래스와 같은 보다 강력한 구성 요소를 액세스할 수 있습니다. 기존 ADO와 달리 ADO.NET은 연결되었거나 연결이 끊어진 데이터 중심 응용 프로그램에 최상의 성능과 확장성을 제공하도록 최적화되었습니다.

DataSet 클래스는 데이터베이스 연결에 필요한 지연 시간은 최소화하면서 데이터를 쿼리 및 업데이트하는 우수한 방법입니다. 기존 ADO는 데이터 송수신에는 우수했지만 개발자가 연결을 끊고 나면 데이터 처리 방법이 제한적이었습니다. 이 때문에 많은 개발자가 성능, 응답력, 시스템 확장성을 제한하는 길을 걸을 수 밖에 없었습니다. 하지만 다중 테이블과 관계, 그리고 기존 및 새로운 가치를 추적하는 기능을 갖춘 DataSet는 데이터베이스의 인-메모리 복사와 같은 역할을 합니다. 따라서 DataSet 클래스를 통해 데이터베이스의 한 부분을 클라이언트로 보내 새 데이터로 업데이트한 다음 다시 서버로 보내 데이터베이스에 통합되도록 할 수 있습니다. Visual Basic .NET 및 ADO.NET을 사용하면 개발자는 신속히 생산성을 갖추게 되며 최소한의 코드화 작업으로 데이터 관리 응용 프로그램을 만들 수 있습니다. Data Adapter Configuration Wizard는 데이터베이스 내의 어떤 테이블에서나 데이터를 선택, 삽입, 업데이트 및 삭제하는데 필요한 모든 코드를 생성할 수 있습니다. 이 외에도 기존의 ADO와 달리 개별 SQL 명령을 사용자 지정할 수 있는 기능을 개발자에게 제공하며 저장 프로시저를 만들 수도 있습니다.

기존 ADO는 XML 지원이 제한적이었습니다. 하지만 ADO.NET은 처음부터 가능한 거의 모든 방식으로 XML을 사용하도록 만들어졌습니다. 예를 들면, DataSet 클래스는 한 줄의 코드로 잘 구성된 XML 문서로 손쉽게 변환될 수 있으며 문서 구조를 설명하는 XML Schema도 포함됩니다. DataSet는 이 외에도 투명하게 한 파일로 연속된 후 데이터 또는 스키마 정보의 손실 없이 나중에 다시 DataSet로 복원 가능합니다. 그리고 DataSet는 웹 서비스 호출의 일부 형태로 인터넷을 통해 전송이 가능하므로 XML로 변환이 가능합니다.

ADO.NET에는 SQL Server 7.0 이상과 같은 데이터베이스와 직접 대화하도록 특별히 만들어진 새 데이터 공급자가 포함되어 있습니다. 이 덕분에 Visual Basic .NET 코드가 다중 API 계층을 트래버스하지 않고도 실제 데이터베이스에 도달할 수 있으므로 성능이 향상됩니다. 따라서 데이터베이스 호출이 빨라지고 훨씬 더 효율적으로 이루어집니다. 이 외에도 OLEDB 지원 데이터베이스 용 데이터 공급자 및 Oracle과 같은 다른 데이터베이스에 직접 액세스를 제공하는 새 데이터 공급자도 있습니다.

ADO.NET은 이전 버전의 데이터 액세스 모델을 기초로 만들어 졌습니다. 그리고 .NET Framework 및 그 Visual Studio .NET IDE에 완벽하게 통합되어 있으므로 개발자가 요구하는 파워와 생산성을 제공합니다.

기존 투자 계승

Visual Basic .NET으로 전환한다고 해서 Visual Basic 6.0 COM 구성 요소나 Visual Basic 언어에 대한 기존 투자를 포기하는 것은 아닙니다. Visual Basic .NET은 Type Library Importer라는 간단한 도구를 사용해서 COM 구성 요소를 마치Windows 및 웹 응용 프로그램의 .NET 어셈블리인 것처럼 사용할 수 있습니다. 따라서 시간과 예산이 허용하는 한 수 년간 개발해온 비즈니스 논리 구성 요소를 .NET 구성 요소로 다시 개발할 필요가 없습니다. 때가 되면 VB6 CodeAdvisor 및 Visual Basic .NET Upgrade Wizard와 같은 도구를 통해 개발자는 기존 Visual Basic 6.0 코드의 60~90%를 Visual Basic .NET으로 마이그레이션할 수 있을 것입니다.

Visual Basic 6.0과 Visual Basic .NET 간의 상호 운용성에 보다 유연성을 주기 위해 .NET 어셈블리를 이용하여 보조 COM 구성 요소를 만드는 Type Library Exporter라는 도구를 이용할 수 있습니다. 따라서 Visual Basic .NET을 사용하는 개발자는 COM 기반 응용 프로그램을 자신 있게 확장할 수 있으므로 기존 투자는 그대로 유지하면서 새로운 개발이 가능합니다.

마지막으로, Visual Basic 언어 부문의 투자도 그대로 보존됩니다. Visual Basic .NET은 Visual Basic 6.0의 구문 기능과 특색을 상당 부분 그대로 유지하면서도 진정한 현대식 프로그래밍 언어의 융통성과 우수성을 제공합니다.

Visual Studio .NET 2003으로 생산성 향상

Visual Studio .NET은 Visual Basic 개발자에게 이전에는 갖지 못한 강력한 기능을 제공하여 신속하게 생산성을 향상시킵니다. 이 프로젝트 유형에는 이제 콘솔 응용 프로그램, Windows GUI 응용 프로그램, 클래스 또는 컨트롤 라이브러리, 웹 응용 프로그램, Web Service 응용 프로그램, Windows Services, 그리고 심지어는 포켓 PC 및 스마트폰과 같은 모바일 장치에서 실행되는 응용 프로그램도 포함됩니다.

Server Explorer 도구 창은 개발자가 메시지 대기열, 성능 카운터, SWL Server 데이터베이스, Windows Service, 이벤트 로그와 같은 실행 중인 컴퓨터 리소스를 신속히 확인할 수 있는 방법을 제공합니다. 이러한 서비스는 또 쉽고 빠르게 응용 프로그램에 통합됩니다. 단순히 항목을 Web Form 또는 Windows Form 디자인 표면으로 끌어다 놓기만 하면 프로그래밍 가능한 개체로 변하므로 엄청난 생산성을 제공합니다. 예를 들어, SQL Server 테이블을 디자인 표면으로 끌어다 놓으면 Visual Studio .NET IDE가 즉시 데이터베이스를 런타임에 연결하고 그 테이블에서 행을 선택, 추가, 업데이트 또는 삭제하는데 필요한 모든 코드를 추가합니다. 성능 카운터를 디자인 표면으로 끌어다 놓으면 언제든지 코드 단 한 줄로 카운터의 현재 값을 쿼리할 수 있습니다.

Visual Studio .NET 디버거도 크게 향상되어 응용 프로그램의 현재 실행 상태에 대한 아주 자세한 스냅샷과 범위에 속하는 모든 변수 및 개체를 개발자에게 제공할 수 있습니다. Call Stack 창은 실행 응용 프로그램의 특정 위치에 구성된 모든 기능 호출 목록을 제공합니다. 그리고 Task List 창은 응용 프로그램을 만드는 작업을 구성 및 관리하는데 도움이 됩니다. 이 창을 사용하면 개발자는 코드를 편집 또는 컴파일하면서 자동으로 감지되는 문제점을 정렬, 필터링, 식별 및 찾아낼 수 있습니다. Command 창은 Visual Studio .NET 명령을 발행하고 표현식을 평가하며 구문을 실행하거나 변수 값을 인쇄 및 편집하는데 사용됩니다. 그리고 이 창은 IntelliSense를 완벽하게 지원합니다. Debug 창은 범위 내 변수 또는 개발자가 조사하고자 하는 변수와 같은 가장 적절한 정보만을 제공하도록 필터링하고 유연성 있게 사용자 정의할 수 있습니다. 결과적으로 개발자는 문제점을 신속 정확하게 찾아낼 수 있으므로 부적절한 데이터를 지나치게 로드하지 않고도 필요한 정보를 찾을 수 있습니다.

Visual Studio .NET IDE 또한 구성 가능성 및 확장성이 높으므로 도구가 손쉽게 개발자가 선호하는 작업 방식을 따르도록 할 수 있습니다. 이 개발 환경은 글꼴 및 색상부터 도구 창 표시 유형, 배치, 동작에 이르기까지 완벽하게 사용자 정의 가능합니다. 그리고 고급 Visual Basic 기반 Macro 녹음기와 편집기를 사용하면 지루한 개발 작업을 간단하게 할 수 있습니다. 그리고 개발자는 IDE에 직접 플러그되는 자신만의 강력한 추가 도구를 만들 수 있습니다. Visual Studio .NET은 바로 이 기능만을 위한 프로젝트 기능을 제공하므로 프로세스가 더욱 쉬워집니다.

마지막으로, 새 Visual Basic .NET 개발자가 가능한 한 빨리 생산성을 갖추기 위해 Visual Studio .NET에서는 세계적 수준의 IntelliSense, 완벽하게 통합된 상황에 맞는 도움말, 그리고 Microsoft Developer Network에서 이용할 수 있는 풍부한 지식을 제공합니다.

결론

Visual Basic .NET은 생산성 높고 배우기 쉬운 개발자 도구 중 단연 선두입니다. 사람이 읽을 수 있는 친숙한 구문, 드래그 앤 드롭 방식의 사용자 인터페이스 디자인, 기본이 되는 단순성의 유지 및 향상이 바탕이 되어 이 제품을 중심으로 세계에서 가장 강력한 개발자 커뮤니티가 운영되고 있습니다. 게다가 Visual Basic .NET에서는 성능 및 확장성이 이제 생산성 및 쉬운 사용법과 대등한 위치에 오르게 되었습니다. 본 자료에서 우리는 Nile 웹 응용 프로그램을 Visual Basic 6.0에서 Visual Basic .NET으로 마이그레이션할 경우 처리량이 어떻게 3배 이상 증가하는지에 대해 살펴 보았습니다. 결론적으로 Visual Basic .NET은 Visual Basic 6.0의 장점은 그대로 살리면서 .NET Framework의 성능을 통합한 것으로, 도저히 업그레이드하지 않을 수 없는 이유를 개발자에게 제공합니다.

반응형

'VB.NET' 카테고리의 다른 글

MVC4, Azure 소스 및 예제입니다.  (1) 2013.01.28
타이머 테스트  (0) 2013.01.21
상수 및 열거형(Visual Basic)  (0) 2013.01.08
[TIPS] 파일의 속성을 설정한다  (0) 2012.10.22
[TIPS] 파일의 타임 스탬프를 취득한다  (0) 2012.10.22