검수요청.png검수요청.png

비주얼베이직닷넷

위키원
218.146.11.241 (토론)님의 2019년 7월 24일 (수) 14:32 판 (역사)
이동: 둘러보기, 검색
비주얼베이직(Visual Basic)

비주얼베이직닷넷(Visual BASIC .NET)은 미국 마이크로소프트가 개발한 객체 지향 컴퓨터 프로그래밍 언어이다. 기존의 비주얼베이직 6.0 버전을 닷넷(.NET) 기반으로 변형하였고, 닷넷 프레임워크에서 구현된다. 간략히 브이비닷넷(VB.NET)이라고 한다.

개요

비주얼베이직닷넷(Visual Basic .NET, VB.NET)은 마이크로소프트C#과 함께 출시한 비주얼 베이직(VB)의 진화된 형태인 객체 지향 컴퓨터 프로그래밍 언어이며, 닷넷 프레임워크에서 구현된다. 비주얼베이직(Visual Basic 6.0)에서 파생되었지만 차이점이 많다. 때문에 VB을 쓰던 유저들이 새로운 기반의 언어로 넘어가기에 거부감이 많아 초기에는 사용자가 별로 없었지만, VB 지원이 중단되고 최신 운영체제로 가면서 동작하지 않은 기능이 생기고 새로운 확장 라이브러리 및 기본 컨트롤도 개선되는 등 상당한 발전을 보이면서 많은 사용자들이 VB.NET로 넘어오게 되었다.[1]마이크로소프트는 현재 상용 소프트웨어인 마이크로소프트 비주얼 스튜디오와 프리웨어인 마이크로소프트[비주얼 스튜디오 익스프레]로 두 가지의 주된 비주얼 베이직 통합 개발 환경을 제공한다.

지원 운영체제

  • 윈도 XP 서비스 팩 2 이상(2010 출시는, 서비스 팩 3)
  • 윈도 서버 2003 서비스 팩 1 이상
  • 윈도 서버 2003 R2 이상
  • 윈도 비스타
  • 윈도 서버 2008
  • 윈도 7

하드웨어 요구사항

  • 최소: 1.6 GHz CPU, 384 MB RAM, 1024×768 화면, 5400 RPM 하드 디스크
  • 권장: 2.2 GHz 이상의 CPU, 1024 MB 이상의 RAM, 1280×1024 화면, 7200 RPM 이상의 하드 디스크[2]

역사

  • 비주얼 베이직 : 1991년, 미국 조지아주 애틀랜타에서 열린 세계 최대 규모의 하드웨어 및 소프트웨어 관련제품 전시회인 컴덱스에서 윈도우비주얼 베이직 1.0이 발매되었다. 또, 1992년 3워르, 도스용 비주얼 베이직 1.0이 발표되었다.
  • 비주얼 베이직 2.0 : 1992년, 비주얼 베이직 2.0이 발매되었다. 프로그램이 환경의 개선과 속도가 향상되었고, 폼이 인스턴스적인 개체가 되었다.
  • 비주얼 베이직 3.0 : 1993년, 비주얼 베이직 3.0이 발매되었다. 이 때는 스탠다드 에디션과 프로페셔널 에디션으로 구분되어 발매되었다. 이 비주얼 베이직3.0은 제트1.x 데이터베이스를 읽을 수 있는 마이크로소프트제트 데이터베이스 엔진 1.1을 포함하고 있었다.
  • 비주얼 베이직 4.0 : 1995년, 비주얼 베이직 4.0이 발매되었다. 32비트와 16비트 윈도우 프로그램을 다 개발할 수 있는 첫번째 버전의 비주얼 베이직으로 GUI가 없는 클래스를 비주얼 베이직에서 개발할 수 있는 기능이 추가되었다.
  • 비주얼 베이직 5.0 : 1997년, 비주얼 베이직 5.0이 발매되었다. 32비트 버전으로만 발매되었으며, 16비트 프로그램의 개발을 계속 했던 프로그래머는 4.0의 소스 코드를 5.0으로 옮길 수 있었으며, 5.0 프로그램이 4.0으로 옮겨가기도 쉬었다. 또한 사용자 정의 컨트롤을 만드는 기능, 원시 코드로 윈도우용 실행 파일을 컴파일 하는 기능, 대량의 계산에서의 속도 향상의 기능이 추가되었다.
  • 비주얼 베이직 6.0 : 1998년, 비주얼 베이직 6.0이 발매되었다. 많은 영역에서 개선을 이루었다. 6.0은 기반 응용 프로그램의 개발 기능이 추가되었다. 그러나 6.0은 2008년 마이크로 소프트의 지원안함 단계에 해당 됨으로써 종료되었다. 실행에 필요한 라이브러리윈도우 비스타, 윈도우 2008, 윈도우7에는 계속 지원되고 있었다. 2005년 마이크로소프트 비주얼 베이직 6.0의 주요 지원이 종료되었고, 확장 지원은 2008년 3월에 종료되었다.
  • 비주얼 베이직 닷넷 7.1 : 기존의 비주얼베이직 6.0버전의 상위버전으로, 닷넷 프레임워크 버전1.1과 함께 출시되었다. 기존버전인 비주얼 베이직의 코드를 비주얼 베이직 닷넷의 코드로 바꿔주는 마법사가 추가되었다. 또한 성능과 닷넷 IDE와 런타임의 신뢰성을 개선하였다.
  • 비주얼 베이직 8.0 : 비주얼 베이직 닷넷 2003의 업데이트 버전으로, 마이크로소프트사에서는. NET을 생략하기로 결정했다. 고속 응용 프로그램 개발 플랫폼으로서 비주얼 베이직 닷넷의 집중을 강화하고 더 나아가 C#과 차별화를 하는 의도로 다양한 기능이 추가되었다.
  • 비주얼 베이직 9.0 : 2007년, 마이크로소프트 닷넷 프레임 워크3.5와 함께 출시 되었다. 이 버전에서도 마이크로소프트는 많은 기능을 추가하였다.
  • 비주얼 베이직 10.0  : 2010년, 마이크로소프트는 비주얼 베이직 2010을 출시하였다. 마이크로소프트는 이번 버전에 동작 언어 런타임(DLR)을 사용하기로 결정했지만, 비주얼 베이직과 자매 언어 C# 사이의 동등성을 높이기 위해 공동 진화 전략으로 변경하였다. CLRCOM개체와 동적 상호 작용하는 비주얼 베이직의 타고난 능력은 DLR에 빌드된 동적 언어와 작동하도록 향상되었다. 기존에 있던 줄 연결 문자의 필요를 없애고 일반적인 콘텍스트의 집합에서 행 연속으로 추정하도록 개선되었다. 또 인라인 Sub에 대한 지원을 구비하였고, 디버그 모드에서 일시 중지된 응용 프로그램의 소스 코드를 더 이상 편집할 수 없게 되었다.
  • 비주얼 베이직 11.0 : 닷넷 프레임워크 4.5를 이용하며, 비동기 기능, 반복자, 호출계층, 호출자 정보와 이름 공간에 넣는 전역 키워드가 주요 기능이다.
  • 그 이후 12.0, 13.0, 14.0 버전이 출시되었으며, 2015년 6월 5일에 출시된 14.0 버전이 가장 최근 버전이다.(2019.07.24기준)

특징

네임스페이스 (My Namespace)

네임스페이스응용 프로그램에 일곱 가지의 기능을 제공한다. C#에서도 지원하지만, VB.NET에 맞게 개발되어 있다.

  • My.Computer : 당신의 컴퓨터에 대한 이름, 메모리, 시간, 네트워크 등의 정보를 제공한다.
  • My.Application : 현재 응용프로그램의 실행경로, 어셈블리 정보 (이름이나 버전 같은 것) 그리고 환경 변수들을 제공한다.
  • My.User: 윈도우에 해당되어 있는 이름 같은 것을 가져온다. 또, 사용자가 특정 역할에 속하는지도 확인이 가능하다.
  • My.Forms: 프로젝트에 있는 모든 의 참조를 제공한다.
  • My.Web Services: 서비스에서 사용되는 프록시 서버에 대한 접근 권한을 준다.
  • My.Settings: 읽거나 저장하는 응용 프로그램 구성 설정이 가능하다
  • My.Resources: 현재 응용프로그램에서 사용중인 리소스 정보를 읽을 수 있다.

IsNot 연산자

  • If Not A = B Then를 If A IsNot B Then 으로 사용하는 연산자다.
  • If Not A = B Then의 의미 : A = B를 검사 후 그 검사 결과가 A = B의 반대 되는 결과일 시에만 If문 처리한다.
  • If A IsNot B Then의 의미 : A가 B가 아닐 경우에만 If문 처리한다.

WithEvent 선언자

WithEvents를 사용하지 않으면 AddHandler를 사용해야 하지만, WithEvents를 사용시 Handles 뒤에 (변수이름).(이벤트명) 형식으로 사용이 가능하다

WPF의 지원

C#과 동일하게 WPF 프로젝트를 만들어서 사용할 수 있다..[1]

Visual Basic 6.0과의 차이점

메서드 괄호의 차이

VB 6.0에서는 메서드를 괄호로 묶지 않았지만, VB.NET 부터는 메서드는 괄호로 묶게 되어있다. 괄호를 않을 시엔 메서드를 괄호로 묶으라는 오류 메세지가 뜬다. 매게 변수를 전달하지 않을 때에도 괄호를 반드시 넣어야 한다. 다만 Visual Studio 2017 버전 기준으로 자동으로 괄호를 삽입하므로 문제는 없다.

  • 예제 (VB 6.0)

MsgBox "Hello!"

  • 예제 (VB.NET)

MsgBox("Hello!")

For문 문법의 차이

VB 6.0에서의 For문에는 For문 내에서 형식을 지정하며 선언이 불가능하지만 VB.NET에서는 형식을 지정하며 선언이 가능하다.

  • 예제(VB 6.0)
 Module Hello
     Sub Main()
         For i = 1 to 10 step 1
             Console.Writeline(i)
         Next
     End Sub
 End Module
  • 예제(VB.NET)
 Module Hello
     Sub Main()
         For i As Integer = 1 to 10 step 1
             Console.Writeline(i)
         Next
     End Sub
 End Module

디자인에서의 컨트롤 배열 미지원

기존 VB 6.0에서는 컨트롤 배열이라는 것을 사용해서 의 컨트롤을 관리할 수 있었다. 컨트롤 배열로 이벤트 처리기 공유, 컨트롤 그룹 반복 및 런타임에 컨트롤 추가에 대한 기능을 제공했었는데, VB.NET에서 부터는 지원하지 않는다. 대신 Handles 뒤에 콤마, 쉼표를 사용해서 여러개의 컨트롤에 이벤트 처리 메서드를 공유할 수 있게 되었다.[3]

비평

초기 버전 VB 6.0에서 사용 가능했던 언어 구조와 사용자 인터페이스 기능이 축소되었고, 남아있던 VB 6.0의 의미론이 바뀌었기 때문에 비주얼 베이직 사용자들은 이에 대해 오랫동안 불평해왔다.

VB.NET 지지자들은 새로운 언어가 대부분의 측면에서 이전 버전보다 더 강력하며, 초기 버전보다 자연스럽고, 일관되며, 완전한 방식으로 현대적인 객체 지향 프로그래밍 패러다임을 통합하는 것이 가능하다고 말한다. 반대자는 VB 6.0은 자신의 개체 모델에서 결함을 가지고 있기는 하지만, VB.NET으로 변환하여 얻을 수 있는 모든 혜택에 비해 재개발 측면의의 비용이 너무 높다고 반박했다.

VB.NET을 포함한 공통 중간 언어를 대상으로 한 언어는 기계 코드컴파일 되는 언어에 비해 디컴파일하기 쉽다. 닷넷 리플렉터 같은 도구는 CIL에서 제공하는 메타데이터 양이 많기 때문에 원래 코드에 가까운 결과물을 제공한다.

마이크로소프트는 비주얼 스튜디오 .NET에 자동화된 VB 6.0-VB.NET 변환기를 공급하고있고, 시간이 지나면서 개선되긴 했지만 모든 코드를 변환할 수 없으며 거의 모든 중대한 프로그램들을 컴파일하려면 약간의 수동적인 노력이 필요하다. 대부분은 최적으로 작동하게 되려면 리팩토링이 어느 정도 수준으로 필요하다. 자연적으로 알고리즘적 비주얼 베이직 프로그램은 마이그레이션하는데 몇 가지 어려움이 있다. 데이터베이스 지원, 그래픽, 관리되지 않은 운영 또는 구현 세부 정보에 같은 기능에 크게 의존하는 프로그램들이 더 골칫거리다. 또한 VB.NET 프로그램은 상당히 큰 닷넷 프레임워크의 설치를 요구하는 반면, VB 6.0프로그램에 필요한 런타임 라이브러리가 윈도 98 SE와 그 이상에 제고오딘다. 이 프레임워크는 윈도우7, 윈도우 비스타, 윈도우 XP 미디어 센터 에디션, 윈도우 XP 테블릿 PC 에디션, 윈도우 서버 2008윈도우 서버 2003에 포함되어 있다. 지원되는 다른 운영체제에윈도우 2000 또는 윈도우 XP가 있으며 별도로 설치되어 있어야 한다. 개발자 불만족에 대한 마이크로소프트의 대응은 새로운 개발로 쉽게 이동하고 기존의 코드베이스를 VB 6.0에서 VB.NET으로 변환하도록 하는데 초점을 맞추었다. 그들은 최신 코드 예제와 문서를 VB런 웹사이트에서 제공한다.[2]

각주

  1. 1.0 1.1 Visual Basic .NET〉,《나무모에》
  2. 2.0 2.1 위키백과 비주얼 베이직 닷넷〉《위키백과》
  3. 나무위키 Visual Basic .NET〉,《나무위키》

참고 자료

같이 보기


  검수요청.png검수요청.png 이 비주얼베이직닷넷 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.