비주얼 베이직 닷넷
|
|
이 문서는 기계 번역 프로그램으로 작성되었다는 의심을 받고 있습니다. 자연스럽지 않은 문장을 한국어 어법에 맞게 다듬어 주세요. 또한 원문이 자유 저작물이 아닌 경우에는 저작권 침해로 삭제될 수 있으니 유의해 주시기 바랍니다. |
| 64px | |
| 패러다임 | 구조적, 명령적, 객체 지향적과 선언적 |
|---|---|
| 발표년도 | 2001년 |
| 설계자 | 마이크로소프트 |
| 개발자 | 마이크로소프트 |
| 최근 버전 | 2012 (11.0.0.0) |
| 주요 구현체 | 마이크로소프트 비주얼 스튜디오, 마이크로소프트 비주얼 스튜디오 익스프레스, 닷넷 프레임워크 SDK와 모노 |
| 영향을 받은 언어 | 닷넷 프레임워크 |
| 운영 체제 | 주로 마이크로소프트 윈도 또한 안드로이드, BSD, iOS, 리눅스, 맥 OS X, 솔라리스 및 유닉스 |
| 웹사이트 | msdn.microsoft.com/vbasic |
비주얼 베이직 닷넷 (Visual Basic .NET, VB.NET)은 닷넷 프레임워크에서 구현된 고전적인 비주얼 베이직 (VB)의 진화로 볼 수 있는 객체 지향 컴퓨터 프로그래밍 언어이다. 마이크로소프트는 현재 비주얼 베이직의 두 가지 주요 구현을 제공한다: 마이크로소프트 비주얼 스튜디오는, 상용 소프트웨어이고 마이크로소프트 비주얼 스튜디오 익스프레스는, 무료이다. 비주얼 베이직 닷넷의 마이크로소프트 구현은 "마이크로소프트 비주얼 베이직" 이라고 불린다.
목차 |
체제 및 하드웨어 요구사항 [편집]
- 운영 체제
- 윈도 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 이상의 하드 디스크
버전 [편집]
| 이 부분은 오래된 정보가 있어 최신 정보로 교체하여야 합니다. 검토하시고 최신 사건이 반영되도록 문서를 수정해 주세요. |
비주얼 베이직 닷넷은 비주얼 베이직 팀에 의해 구현된 네 버전과 다섯 출시가 있다.
비주얼 베이직 닷넷 2003 (VB 7.1) [편집]
비주얼 베이직 닷넷 2003은 닷넷 프레임워크 버전 1.1과 함께 출시되었다. 새로운 특징은 닷넷 컴팩트 프레임워크에 대한 지원과 더 나은 비주얼 베이직 업그레이드 마법사가 포함되었다는 것이다. 진보는 또한 성능과 신뢰성 있는 닷넷 IDE와 (특별한 배경 컴파일러) 런타임을 만들었다. 게다가, 비주얼 베이직 닷넷 2003은 비주얼 스튜디오 닷넷 대학 버전(VS03AE)에서 사용할 수 있었다. VS03AE는 비용없이 각 나라에서 학자의 특정 번호로 배포되었다.
비주얼 베이직 2005 (VB 8.0) [편집]
비주얼 베이직 2005는 비주얼 베이직 닷넷을 참조하는 데 사용되는 이름이었고, 마이크로소프트는 제목에 닷넷 부분을 놓기로 결정했다.
이 출시에서, 마이크로소프트는 많은 특징을 추가하였고, 포함한다:
- 편집 및 계속하기
- 디자인-타임 표현식 평가.
- 나의 가상 네임스페이스(개요, 세부 사항)는, 제공한다:
- 접근하는 중요한 코드가 필요하지 않은 닷넷 프레임워크의 특정 지역으로의 쉬운 접근
- 동적으로 생성된 클래스 (특히 My.Forms)
- VB-VB.NET 변환기가 개선됨[1]
- 키워드를 사용하여, 자유로운 리소스를 처분하는 패턴에 필요한 개체 사용의 단순화
- 내 코드 판단, 디버깅을 숨길 때 (단계 동안) 비주얼 스튜디오 닷넷 IDE와 시스템 라이브러리 코드가 작성한 상용구 코드
- 데이터 소스 묶기, 쉬운 데이터베이스 서버/클라이언트 개발
위의 함수들은 (특히 내)는 비주얼 베이직 닷넷을 초점으로 고속 응용 프로그램 개발 플랫폼과 더 나아가 C#와의 차별화를 강화하려는 의도이다.
비주얼 베이직 2005는 그 자체와 다른 "더 강력한" 닷넷 언어 사이의 모자란 부분을 채우기 위한 기능을 소개하였고, 추가했다:
- .NET 2.0 언어 특징은 다음과 같다:
- 부호없는 정수 데이터 형식에 대한 지원은 일반적으로 다른 언어에서 사용된다
'IsNot' 연산자 특허 응용 [편집]
비주얼 베이직 2005의 또 한가지 특징은 'If Not X is Y'와 동일한 'If X IsNot Y'를 만드는 IsNot 연산자이고, 이것은 마이크로소프트 특허 응용의 주제로 세워졌을 때 악평[4]을 얻었다.[5][6]
비주얼 베이직 2008 (VB 9.0) [편집]
비주얼 베이직 9.0 은 2007년 11월 19일에 마이크로소프트 닷넷 프레임워크 3.5와 함께 출시되었다 .
이 버전에서, 마이크로소프트는 많은 특징을 추가하고, 포함하였다:
- 참인 조건 연산자, "If(논리값, 참부분, 거짓부분과 같은 조건)"을, "IIf" 함수로 변경한다.
- 익명 자료형
- LINQ를 위한 지원
- 람다 표현식
- XML 문자
- 자료형 추론
- 확장 방법
비주얼 베이직 2010 (VB 10.0) [편집]
2010년 4월, 마이크로소프트는 비주얼 베이직 2010을 출시하였다. 마이크로소프트는 이번 출시[7]에 동적 언어 런타임 (DLR)을 사용하기로 결정했지만 비주얼 베이직과 자매 언어 C# 두 언어 사이의 동등성을 서로 가까이 가져오기 위해 공동 진화 전략으로 옮겨졌다. CLR과 COM 개체와 동적 상호 작용에 대한 비주얼 베이직의 타고난 능력은 IronPython과 IronRuby 같은 DLR 건설을 동적 언어에서 작동하도록 향상되었다.[8] 비주얼 베이직 컴파일러는 일반적인 문맥의 세트에서 행 연속 추정으로 개선되었고, 대부분의 경우 "_"줄 연속 문자에 대한 필요성을 제거한다. 또한, 인라인 함수의 현재 지원은 두 하위 기능과 람다의 여러-줄 버전뿐만 아니라 인라인 하위 기능에 대한 지원을 구비하였다.[9] 또 다른 새로운 것은, 이전 버전과는 달리, 디버그 모드에서 응용을 일시 중지하면 소스 코드를 더 이상 편집할 수 없다.[출처 필요]
비주얼 베이직 이전 버전(VB6과 그 이전)과의 관계 [편집]
비주얼 베이직 .NET은 비주얼 베이직 또는 완전히 다른 언어의 또 다른 버전으로 고려되어야 하는지 여부의 논쟁 주제이다. 이것은 명확하지 않고, 한때의 방법이 그 주변으로 이동되고 자동으로 변환이 설명될 수 있으며, 언어의 기본 구문론은 수많은 "파괴적" 변화를 보지 못했고, 단지 추가로 구조적 예외 처리와 단기-순환 표현 같은 새로운 기능을 지원한다. 두 가지 중요한 데이터 형식 변경은 VB.NET로 이동하면서 발생하였다. VB6에 비해, Integer 자료형은 16비트에서 32비트로 길이가 두 배로 되었고, Long 자료형은 32 비트에서 64 비트로 길이가 두 배로 되었다. 이것은 VB.NET의 모든 버전에 대한 사실이다. VB.NET의 모든 버전에서 16비트 정수는 이제 Short로 알려져 있다. 마찬가지로, 윈도 폼 GUI 편집기는 스타일과 기능에서 비주얼 베이직 양식 편집기와 매우 비슷하다.
새로운 비주얼 베이직 (7, 7.1, 8, 9, ...)에 사용되는 버전 번호는 이전 비주얼 베이직에서 여전히 본질적으로 마이크로소프트의 동일 제품으로 분명히 한다는 것을 의미한다고 볼 수 있다.
크게 변경되는 것들의 의미론—결정론에서 실행되는 객체 기반 프로그래밍 언어들로부터, COM을 기반으로 한 참조횟수 계산의 닷넷 프레임워크에서 지원하는 완벽한 객체 지향 언어, 공용 언어 런타임(가상 머신의 JIT 컴파일 엔진에서 세대 쓰레기 수집을 사용)과 훨씬 더 큰 라이브러리의 조합으로 구성된다. 폭넓은 후자의 증가는 또한 VB 개발자가 언어에 접근할 때 감당해내야 하는 문제를, 비주얼 스튜디오 2005의 나의 기능에 의해 어느 정도 해결된다.
변경 사항은 성능 및 유지와 관련하여 할 수 있는 "권리"에 대한 일에 대해 많은 기본적인 가정을 변경했다. 일부 기능과 라이브러리는 더 이상 존재하지 않는다; 다른 사람은 사용할 수 있지만, "네이티브" 닷넷의 대안만큼 효율적이지 않다. 그들은 컴파일하더라도, 대부분의 변환된 VB6 응용은 새로운 언어를 최대한 활용하기 위해 어느 정도의 리팩토링이 필요하다. 문서화는 배포 및 용어, 응용 디버깅, 문법의 변화를 충당하기 위해 사용할 수 있다. [10]
비교적 샘플 [편집]
다음의 간단한 예제는 VB 및 VB.NET 사이의 구문에서 유사성을 보여준다. 두 예제는 OK 버튼과 함께 "Hello, World"라는 메시지 상자가 나타난다.
Private Sub Command1_Click() MsgBox "Hello, World" End Sub
비주얼베이직 닷넷 예제에서, MsgBox 또는 MessageBox 클래스는 이렇게 쓰일 수 있다.
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Msgbox("Hello, World") End Sub End Class
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MessageBox.Show("Hello, World") End Sub End Class
- 해당 버튼이 디자인 보기에서 클릭되면 비주얼 베이직 6 과 비주얼 베이직 닷넷이 자동으로
Sub와End Sub문장을 생성한다. 비주얼 베이직 닷넷은 또한 필요한Class와End Class문장을 생성한다. 개발자는 "Hello, World" 메시지 상자를 표시하기 위해 문장을 추가한다. - 모든 프로시저 호출은 함수(괄호가 필요하다) 및 하위 기능(
Call키워드를 사용하여 호출되지 않는 한 괄호는 허용된다)에 대해 다른 규약들이 있는 VB6에서 반면에, VB.NET에서 괄호로 만들어져야 한다. - 또한
Command1과Button1이라는 이름은 필수 사항이 아니다. 그러나, 이들은 VB6과 VB.NET 각각의 명령 버튼에 대한 기본 이름이다. - VB.NET에서는,
Handles키워드는Button1객체의Click이벤트에 대한Button1_Click처리기의 하위 기능을 만드는 데 사용된다. VB6에서는, 이벤트 처리기 하위 기능은 개체의 이름으로 구성된 구체적인 이름 ("Command1"), 밑줄("_"), 그리고 이벤트 이름 ("Click", 그러므로 "Command1_Click")이 있어야 한다. - VB6에서 해당 함수와 비슷하게 사용할 수 있는
Microsoft.VisualBasic네임스페이스에MsgBox라는 함수가 있다. 최고의 방법으로 사용하는 함수에 대한 논란이 있다(메시지 상자 표시 제한 뿐만 아니라Microsoft.VisualBasic네임스페이스의 다른 기능에 관한 것). 일부 프로그래머는 "닷넷 방식"의 일을 하는 것을 선호하며, 프레임워크 클래스는 더 많은 기능을 갖고 있기 때문에 덜 구체적인 언어다. 다른 사람들은 구체적인 언어 기능을 사용하여 코드를 읽기 쉽게 만들자고 주장한다. (예를 들어,System.Int32대신int(C#) 또는Integer(VB.NET)를 사용). - VB 2008에서,
ByVal sender as Object, ByVal e as EventArgs의 포함은 선택 사항이 되었다.
다음의 예제는 VB6과 VB.NET 사이의 차이점을 보여준다.두 예제들은 활성 창을 닫는다.
고전적 VB 예제:
Sub cmdClose_Click() Unload Me End Sub
VB.NET 예제:
Sub btnClose_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnClose.Click Me.Close() End Sub
'cmd' 접두사는 'btn'접두사로 교체되고, 이전에 언급한 새로운 협약에 부합한다.
비주얼 베이직 6은 일반적인 연산자 단축키을 제공하지 않는다. 다음은 동일하다:
VB6 예제:
Sub Timer1_Timer() Me.Height = Me.Height - 1 End Sub
VB.NET 예제:
Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick Me.Height -= 1 End Sub
비평 [편집]
초기 버전은 VB6(더 이상 마이크로소프트에서 판매되지 않는다)에 있는 언어의 많은 구조와 사용자 인터페이스 기능의 때문에 비주얼 베이직 사용자는 오랫동안 비주얼 베이직 .NET에 대해 불평했고, 남은 것들의 의미를 변경했다; 예를 들어, VB.NET 매개 변수는(기본적으로) 참조가 아닌 값에 의해 전달된다. 험담을 퍼뜨리는 사람들은 비주얼 프레드 또는 DOTNOT[11]처럼 VB.NET을 경멸적으로 부른다. 2005년 3월 8일, 청원[12]은 VB6에 대한 주요 지원[13]을 확장하는 마이크로소프트의 거절에 대한 응답으로 설립되었다.
VB.NET의 지지자는 새로운 언어가 원래보다 더 강력하게 가장 존중받고, 좀 더 자연스럽게 현대적인 객체 지향 프로그래밍 패러다임을 통합하는, 보다 일관되고 완전한 방식으로 이전 버전이 가능했다. 상대는 VB6은 자신의 개체 모델에서 결함을 가지고 있지만, VB.NET로 변환하여 얻을 수 있는 모든 혜택이 재개발 노력의 측면에서 비용이 너무 높다고 반응하는 경향이 있다.[출처 필요]
VB.NET을 포함한 공통 중간 언어(CIL)의 대상 언어는, 기계 코드로 컴파일되는 언어에 비해 디컴파일하기 쉽다. .NET 리플렉터와 같은 도구는 CIL에서 제공하는 메타데이터의 양이 많기 때문에 원래 코드에 근접하는 것을 제공할 수 있다.[출처 필요]
마이크로소프트는 자동화된 VB6 에서 VB.NET 변환기를 공급하고 있고, 비주얼 스튜디오 .NET에서 시간이 지나면서 개선되었지만, 모든 코드를 변환할 수 없고, 거의 모든 비 사소한 프로그램을 컴파일하려면 약간의 수동적인 노력이 필요하다. 대부분은 최적으로 작동하도록 리팩토링의 상당 수준이 필요하다. 비주얼 베이직 프로그램은 주로 자연적인 알고리즘의 몇 가지 어려움으로 마이그레이션이 될 수 있는 데이터베이스 지원, 그래픽, 관리되지 않는 운영 또는 구현 세부 정보에 이러한 기능에 크게 의존하는 사람이 더 골칫거리다.[출처 필요]
또한, VB.NET 프로그램은 상당히 큰 닷넷 프레임워크의 설치를 요구하는 동안 VB6 프로그램에 필요한 런타임 라이브러리가 윈도 98 SE와 그 이상에 제공된다. 이 프레임워크는 윈도 7, 윈도 비스타, 윈도 XP 미디어 센터 에디션, 윈도 XP 태블릿 PC 에디션, 윈도 서버 2008과 윈도 서버 2003에 포함되었다. 지원되는 다른 운영체제는 윈도 2000 또는 윈도 XP (홈 또는 프로페셔널 에디션)이며, 별도로 설치되어 있어야 한다.
개발자 불만족에 대한 마이크로소프트의 대응은 새로운 개발이 쉽게 이동하는 주변에 초점을 맞추었고 VB6에서 VB.NET으로 기존의 코드 베이스가 바꿔 준다. 그들은 최신의 코드 예제와 기사를 VB런타임 웹사이트에서 제공한다:
- 인쇄 미리보기를 만드는 것과 같이, 일반적으로 VB6은 VB.NET이 작업을 완료하는 데 사용
- VB6과 VB.NET 솔루션 통합(VB 융합으로 불림)
크로스 플랫폼 및 오픈-소스 개발 [편집]
VB.NET 개발을 위한 오픈-소스 도구의 생성은 C#에 비해 느리지만, 모노 개발 플랫폼은 윈도 폼 GUI 라이브러리와 같은 표준 프레임워크 라이브러리뿐만 아니라, VB.NET-구체적 라이브러리 및 VB.NET에서 작성된 VB.NET 8.0 호환 컴파일러의 구현[14]을 제공한다.
예제 [편집]
다음은 매우 간단한 VB.NET 프로그램, 고전적인 버전의 "Hello world" 예제를 콘솔 응용으로 만들었다.
Module Module1 Sub Main() Console.WriteLine("Hello, world!") End Sub End Module
이 효과는 명령 행에 Hello, world!를 작성하는 것이다. 다음과 같이, 각 행은 특정한 목적을 제공한다:
Module Module1
이것은 모듈 정의이고, 클래스와 유사한 분류의 코드이지만, 모듈은 클래스를 포함할 수 있다. 모듈은 프로그램의 다른 부분에서 참조할 수 있는 코드의 컨테이너 역할을 한다.[15]
그것은 모듈과 코드 파일에 대한 일반적인 관행이고, 그것을 포함하여, 같은 이름을 가진다; 그러나, 이것은 필요하지 않고, 단일 코드 파일은 하나 이상의 모듈 및/또는 클래스 정의를 포함할 수 있다.
Sub Main()
이것은 프로그램이 실행을 시작하는 진입점이다.[16] Sub는 "서브루틴"의 약어이다.
Console.WriteLine("Hello, world!")
이 줄은 출력을 쓰기의 실제 작업을 수행한다. Console은 시스템 개체이고, 명령줄 인터페이스를 대표하고 표준 스트림 운영 체제의 프로그래밍 방식으로 접근 권한을 부여한다. 이 프로그램은 Console 메서드 WriteLine을 호출하고, 전달되는 원인 문자열을 콘솔에 표시한다. 또 다른 일반적인 방법은 MsgBox(Message Box)를 사용하는 것이다.[17]
이 코드의 조각은 플로이드의 삼각형의 해답이다.
Imports System.Console Module Program Sub Main() Dim rows As Integer ' 유효성 검사를 입력한다. Do Until Integer.TryParse(ReadLine("얼마나 많은 행을 표시할 것인지에 대한 값을 입력하시오: "), rows) AndAlso rows >= 1 WriteLine("허용된 범위는 1과 {0}이다", Integer.MaxValue) Loop ' 플로이드의 삼각형의 출력 Dim current = 1 For row = 1 To rows For column = 1 To row Write("{0,-2} ", current) current += 1 Next WriteLine() Next End Sub ''' <요약> ''' 프롬프트 문자열이 사용하는 Console.ReadLine 및 버전을 보호한다. ''' </요약> Function ReadLine(Optional prompt As String = Nothing) As String If prompt IsNot Nothing Then Write(prompt) End If Return Console.ReadLine() End Function End Module
같이 보기 [편집]
참조 [편집]
- ↑ 비주얼 베이직 2005에서 비주얼 베이직 업그레이드 마법사의 새로운 기능
- ↑ 비주얼 베이직 2005에서 제네릭스 정의 및 사용
- ↑ 비주얼 베이직 2005에서 연산자 오버로드
- ↑ Sherriff, Lucy (2005년 2월 22일). 진짜 소프트웨어는 MS IsNot 특허 응용을 혹평한다. The Register. 2009년 4월 9일에 확인.
- ↑ Taft, Darryl K. (2005년 2월 21일). 진짜 소프트웨어는 마이크로소프트의 특허 노력을 혹평한다. eWeek. 2009년 4월 6일에 확인.
- ↑ Vick, Paul A. Jr.; Barsan, Costica Corneliu; Silver, Amanda K. (2003년 5월 14일). 미국 특허 신청서: 20040230959. 《IS NOT 연산자》. 미국 특허 및 상표 사무소. 2009년 4월 6일에 확인.
- ↑ 도대체 "VBx"라는 것은 무엇인가? (2007년 5월 1일). 2009년 8월 12일에 확인. “새로운 DLR으로, 우리는 IronPython, IronRuby, 자바스크립트, 그리고 새로운 동적 VBx 컴파일을 위해 지원한다”
- ↑ 비주얼 베이직 2010에서 새로워진 기능. 마이크로소프트 (2009년). 12 August 2009에 확인. “비주얼 베이직은 IronPython 및 IronRuby와 같은 동적 언어로부터 개체를 묶는다”
- ↑ 비주얼 베이직 2010에서 새로워진 기능. 마이크로소프트 (2010년). 2010년 8월 1일에 확인.
- ↑ 마이그레이션 - 비주얼 베이직 6.0으로부터 업그레이드 MSDN ? 개발자 센터 ? 비주얼 베이직 6.0 자원 센터 ? 이주 ?
- ↑ Karl E. Peterson. 마이크로소프트 베이직: 1976-2001,R.I.P.. 《http://vb.mvps.org》.  2009년 5월 7일에 확인.
- ↑ 마이크로소프트에 청원
- ↑ 비주얼 베이직 6.0을 위한 제품군 주기 안내서
- ↑ 모노 프로젝트: 비주얼베이직닷넷 지원
- ↑ 모듈 정책. MSDN - 개발자 센터. 2010년 1월 20일에 확인.
- ↑ 비주얼 베이직에서 주요한 절차. MSDN - 개발자 센터. 2010년 1월 20일에 확인.
- ↑ 비주얼 베이직 버전의 Hello, world. MSDN - 개발자 센터. 2010년 1월 20일에 확인.
추가 읽기 [편집]
- 비주얼 베이직 언어 사양 8.0. 마이크로소프트 회사 (2005년 11월 15일). 2010년 12월 10일에 확인.
외부 연결 [편집]
| 위키책에 이 문서와 관련된 문서가 있습니다. |
|
닷넷 프레임워크 |
|
|---|---|
| 구조 | |
| 공통 언어 기반 | |
| CLI 언어 | |
| 구성 요소 | |
| 기타 도구 | |
| 비교 | |
| 개발 중 | |
|
마이크로소프트 개발 도구 |
|||||||
|---|---|---|---|---|---|---|---|
| 개발 환경 |
|||||||
| 언어 및 컴파일러 |
|||||||
| 주요 API 및 프레임워크 |
|||||||
| 데이터베이스 도구 및 언어 |
|
||||||
| 소스 제어 | |||||||
| 드라이버 개발 | |||||||
|
베이직 프로그래밍 언어 |
|
|---|---|
| 고전적 |
알테어 베이직 · 애플소프트 베이직 · 아타리 베이직 · 아타리 ST 베이직 · 베이직 프로그래밍 · 컬러 베이직 · 커머도르 베이직 · 다트머스 베이직 · 패밀리 베이직 · G-베이직 · GFA 베이직 · GW-베이직 · 오픈VMS를 위한 HP 베이직 · IBM 베이지카 · IBM 카세트 베이직 · IBM 디스크 베이직 · 인티저 베이직 · 로코모티브 베이직 · 말라드 베이직 · 마이크로소프트 베이직 · MSX 베이직 · 스크립트베이직 · 싱클레어 베이직 · 사우스햄턴 베이직 시스템 · STOS 베이직 · TI 베이직 (TI 99/4A) · TI-베이직 (계산기) · 티니 베이직 · 터보-베이직 XL · U베이직 · 빌니우스 베이직 · 비주얼 베이직
|
| 절차 지향 | |
| 개체 확장자 포함 | |
| 휴대 장치 용도 | |