๋ถ๋ฅ:ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
1. ๊ฐ์[ํธ์ง]
Module Hello Sub Main() Console.WriteLine("Hello, World!") End Sub End Module
๋ง์ดํฌ๋ก์ํํธ๊ฐ C#๊ณผ ํจ๊ป ์ถ์ํ .NET Framework ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด. Visual Basic 6.0์์ ํ์๋์์ง๋ง ์ฐจ์ด์ ๋ ๋ง๋ค. ๋๋ฌธ์ Visual Basic 6.0์ ์ฐ๋ ์ ์ ๋ค์ด ์๋ก์ด ๊ธฐ๋ฐ์ ์ธ์ด๋ก ๋์ด๊ฐ๊ธฐ์ ๊ฑฐ๋ถ๊ฐ์ด ๋ง์ ์ฌ์ฉ์๊ฐ ๋ง์ง ์์๋ค. ๋ํ ๊ฐ์ฒด ์งํฅ ์ธ์ด๋ผ์ ์ ์ฐจ ์งํฅ์ธ VB 6.0 ์์ค ์ฝ๋๊ฐ VB.NET๊ณผ ํธํ๋์ง ์์ ์์ ์ฒ์๋ถํฐ ์ฝ๋ฉํด์ผ ํ๋ค. ๋ง์ดํฌ๋ก์ํํธ๋ ์ด ๋ฌธ์ ๋ฅผ ๋ชฐ๋๋ ๊ฑด ์๋์๊ธฐ์ Visual Studio 2008๊น์ง๋ VB 6.0 ๋ณํ๊ธฐ๋ฅผ ํฌํจํ์ผ๋ ์์ ํ 1:1๋ก ๋ณํํ ์ ์๋ ๊ฒ๋ ์๋์๊ณ , Visual Studio 2010๋ถํฐ๋ ๋ณํ๊ธฐ๊ฐ ์ญ์ ๋์๋ค. ๊ทธ๋ฌ๋ VB 6.0 ์ง์์ด ์ค๋จ๋๊ณ ์ต์ ์ด์์ฒด์ ๋ก ๊ฐ๋ฉด์ ๋์ํ์ง ์๋ ๊ธฐ๋ฅ์ด ๋ง์์ง๊ณ , ๊ฐ๋ ฅํด์ง ์๋ก์ด ํ์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ๊ธฐ๋ณธ ์ปจํธ๋กค๋ ๊ฐ์ ๋๋ ๋ฑ ์๋นํ ๋ฐ์ ์ ๋ณด์ฌ ๋ง์ ์ฌ์ฉ์๋ค์ด VB.NET์ผ๋ก ๋์ด์ค๊ฒ ๋์๋ค.[1]
๋น์ฃผ์ผ ์คํ๋์ค๋ ๋ท๋ท ๊ฐ๋ฐ ํ๊ฒฝ ๋๋ ๋ชจ๋ ธ ์ปดํ์ผ๋ฌ๋ฅผ ํตํด ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ๋ค. ๋๋ ๋์ ์ปดํ์ผ๋ฌ๋ก ์คํ๋๋ฒจ๋กญ ๊ฐ์ ๊ฒ๋ ์๋ค.
.NET Framework ๊ธฐ๋ฐ์ด์ง๋ง C#์ด๋ผ๋ ๊ทธ์ผ๋ง๋ก .NET Framework๋ฅผ ์ํ์ฌ ์๋กญ๊ฒ ๋ง๋ค์ด์ง ์ธ์ด๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ C#์ ๋นํด ์ธ์ง๋๋ ๋จ์ด์ง๋ํธ์ด๋ค. ๊ทธ๋ฆฌ๊ณ VB.NET๊ณผ C#์ ๊ฐ์ .NET Framework ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฌ์ค์ ๋ฌธ๋ฒ๊ณผ ์ผ๋ถ ๋ฐํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ธํ๋ฉด ๊ธฐ๋ฅ์ ์ผ๋ก๋ ํฐ ์ฐจ์ด๊ฐ ์๊ธฐ๋ ํ๋ค.
2. ํน์ง[ํธ์ง]
2.1. My Namespace(๋ค์์คํ์ด์ค)[ํธ์ง]
My Namespace๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ผ๊ณฑ ๊ฐ์ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. (C#์์๋ ์ง์ํ์ง๋ง ์ ์ด์ VB.NET์ ๋ง๊ฒ ๊ฐ๋ฐ๋์ด ์๋ค.)
์ค๋ธ์ ํธ๋ช
| ๋ชฉ์ |
My.Computer | ๋น์ ์ ์ปดํจํฐ์ ๋ํ ์ด๋ฆ, ๋ฉ๋ชจ๋ฆฌ, ์๊ฐ, ๋คํธ์ํฌ ๋ฑ์ ์ ๋ณด๋ฅผ ์ ๊ณตํจ. |
My.Application | ํ์ฌ ์์ฉํ๋ก๊ทธ๋จ์ ์คํ๊ฒฝ๋ก, ์ด์
๋ธ๋ฆฌ ์ ๋ณด (์ด๋ฆ์ด๋ ๋ฒ์ ๊ฐ์ ๊ฒ) ๊ทธ๋ฆฌ๊ณ ํ๊ฒฝ ๋ณ์๋ค์ ์ ๊ณตํจ. |
My.User | ์๋์ฐ์ ํด๋น๋์ด ์๋ ์ด๋ฆ ๊ฐ์ ๊ฒ์ ๊ฐ์ ธ์ด. ๋, ์ฌ์ฉ์๊ฐ ํน์ ์ญํ ์ ์ํ๋์ง๋ ํ์ธ ๊ฐ๋ฅํจ. |
My.Forms | ํ๋ก์ ํธ์ ์๋ ๋ชจ๋ ํผ์ ์ฐธ์กฐ๋ฅผ ์ ๊ณตํจ. |
My.WebServices | ์น ์๋น์ค์์ ์ฌ์ฉ๋๋ ํ๋ก์ ์๋ฒ์ ๋ํ ์ ๊ทผ ๊ถํ์ ์ค. |
My.Settings | ์ฝ๊ฑฐ๋ ์ ์ฅํ๋ ์์ฉ ํ๋ก๊ทธ๋จ ๊ตฌ์ฑ ์ค์ ์ด ๊ฐ๋ฅ |
My.Resources | ํ์ฌ ์์ฉํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ์ค์ธ ๋ฆฌ์์ค ์ ๋ณด๋ฅผ ์ฝ์ ์ ์์ |
2.2. 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๋ฌธ ์ฒ๋ฆฌ
๋ ๊ฐ์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ ๊ฐ๋ค.
2.3. WithEvent ์ ์ธ์[ํธ์ง]
- WithEvents๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด AddHandler๋ฅผ ์ฌ์ฉํด์ผ ํ์ง๋ง WithEvents๋ฅผ ์ฌ์ฉ ์ Handles ๋ค์ (๋ณ์์ด๋ฆ).(์ด๋ฒคํธ๋ช ) ํ์์ผ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค
2.4. WPF์ ์ง์[ํธ์ง]
- C#๊ณผ ๋์ผํ๊ฒ WPF ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ ์ ์๋ค.
3. Visual Basic 6.0์์ ์ฐจ์ด์ [ํธ์ง]
3.1. ๋ฉ์๋ ๊ดํธ์ ์ฐจ์ด[ํธ์ง]
Visual Basic 6.0์์๋ ๋ฉ์๋๋ฅผ ๊ดํธ๋ ์ด๋์ ๋์
ํ ๋ ๋ฑ์๋ง ์ฌ์ฉํ๋ค. ์คํ๋ ค ํธ์ถํ ์ ๊ดํธ๋ฅผ ์ธ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ๋ค๋ง ์๋ ๊ฒฝ์ฐ๋ ๊ฐ๋ ์๋ค.[2] ๊ทธ๋ฌ๋ VB.NET๋ถํฐ๋ ํญ์ ๋ฉ์๋๋ ๊ดํธ๋ก ๋ฌถ๊ฒ ๋์ด ์๋ค. Python 2์์ print ๋ฌธ์ ์ธ ๋ ํ
์คํธ๋ฅผ ๊ดํธ๋ก ๋ฌถ์ง ์์๋ ๋์ง๋ง Python 3์์๋ ๊ดํธ๋ก ๋ฌถ์ด์ผ ํ๊ฒ ๋ ๊ฒ๊ณผ ๋น์ทํ ๊ฒฝ์ฐ.
๋จ์ ์ธ ์๋ก Visual Basic 6.0์์ MsgBox๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋ค.
VB.NET์ ๊ฒฝ์ฐ๋
์ ๊ฐ์ด ์ฌ์ฉํ๋ค. ๊ดํธ๋ฅผ ๋ฃ์ง ์์ ์์ ๋ฉ์๋๋ ๊ดํธ๋ก ๋ฌถ์ด์ผ ํฉ๋๋ค. ๋ผ๋ ์ค๋ฅ๊ฐ ๋จ๋ฉฐ ๋งค๊ฐ ๋ณ์๋ฅผ(์์์ "Hello World!") ์ ๋ฌํ์ง ์์ ๋์๋ ๊ดํธ๋ฅผ ๋ฐ๋์ ๋ฃ์ด์ผ ํ๋ค. ์๋ฅผ ๋ค์ด
๋ค๋ง Visual Studio 2017 ๋ฒ์ ๊ธฐ์ค์ผ๋ก๋ ์๋์ผ๋ก ๊ดํธ๋ฅผ ์ฝ์ ํ๋ฏ๋ก ํฐ ๋ฌธ์ ๋ ์๋ค. 2008 ๊ธฐ์ค 6.0 ๋ชจ์์ผ๋ก ์ ๋ ฅ ์ Enter ํค๋ฅผ ๋๋ฅด๋ฉด ์๋์ผ๋ก ๊ดํธ๊ฐ ๋ค์ด๊ฐ์ง๋ค.
๋จ์ ์ธ ์๋ก Visual Basic 6.0์์ MsgBox๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋ค.
MsgBox "Hello World!"
VB.NET์ ๊ฒฝ์ฐ๋
MsgBox("Hello World!")
์ ๊ฐ์ด ์ฌ์ฉํ๋ค. ๊ดํธ๋ฅผ ๋ฃ์ง ์์ ์์ ๋ฉ์๋๋ ๊ดํธ๋ก ๋ฌถ์ด์ผ ํฉ๋๋ค. ๋ผ๋ ์ค๋ฅ๊ฐ ๋จ๋ฉฐ ๋งค๊ฐ ๋ณ์๋ฅผ(์์์ "Hello World!") ์ ๋ฌํ์ง ์์ ๋์๋ ๊ดํธ๋ฅผ ๋ฐ๋์ ๋ฃ์ด์ผ ํ๋ค. ์๋ฅผ ๋ค์ด
Randomize()๊ฐ ์๋ค.๋ค๋ง Visual Studio 2017 ๋ฒ์ ๊ธฐ์ค์ผ๋ก๋ ์๋์ผ๋ก ๊ดํธ๋ฅผ ์ฝ์ ํ๋ฏ๋ก ํฐ ๋ฌธ์ ๋ ์๋ค. 2008 ๊ธฐ์ค 6.0 ๋ชจ์์ผ๋ก ์ ๋ ฅ ์ Enter ํค๋ฅผ ๋๋ฅด๋ฉด ์๋์ผ๋ก ๊ดํธ๊ฐ ๋ค์ด๊ฐ์ง๋ค.
3.2. For๋ฌธ ๋ฌธ๋ฒ ์ฐจ์ด[ํธ์ง]
๋์งธ๋ก๋ For๋ฌธ์ ์ฐจ์ด์ด๋ค. Visual Basic 6.0์์์ For๋ฌธ์๋ For๋ฌธ ๋ด์์ ํ์์ ์ง์ ํ๋ฉฐ ์ ์ธ์ด ๋ถ๊ฐ๋ฅํ๋ค.
๊ทธ๋ฌ๋ VB.NET์์๋ ํ์์ ์ง์ ํ๋ฉฐ ์ ์ธ์ด ๊ฐ๋ฅํ๋ค.
๋ฌผ๋ก ๊ทธ ์ญ์ผ๋ก VB.NET์์ Visual Basic 6.0๊ณผ ๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก For ๋ฌธ์ ์ ์ํ ์ ์๋ค.
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.NET์์ Visual Basic 6.0๊ณผ ๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก For ๋ฌธ์ ์ ์ํ ์ ์๋ค.
3.3. ๋์์ธ์์์ ์ปจํธ๋กค ๋ฐฐ์ด ๋ฏธ์ง์[ํธ์ง]
๊ธฐ์กด Visual Basic 6.0์์๋ ์ปจํธ๋กค ๋ฐฐ์ด์ด๋ผ๋ ๊ฒ์ ์ฌ์ฉํด์ ํผ์ ์ปจํธ๋กค์ ๊ด๋ฆฌํ ์ ์์๋ค. ์ปจํธ๋กค ๋ฐฐ์ด๋ก ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ธฐ ๊ณต์ , ์ปจํธ๋กค ๊ทธ๋ฃน ๋ฐ๋ณต ๋ฐ ๋ฐํ์์ ์ปจํธ๋กค ์ถ๊ฐ์ ๋ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์๋๋ฐ VB.NET๋ถํฐ๋ ์ง์ํ์ง ์๋๋ค. ๋์ Handles ๋ค์ , (์ฝค๋ง/์ผํ)๋ฅผ ์ด์ฉํด์ ์ฌ๋ฌ ๊ฐ์ ์ปจํธ๋กค์ ์ด๋ฒคํธ ์ฒ๋ฆฌ ๋ฉ์๋๋ฅผ ๊ณต์ ํ ์ ์๊ฒ ๋์๋ค.
VB.NET์์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋ค.
VB.NET์์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋ค.
Private Sub MixedControls_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, CheckBox1.Click
4. VB.NET๊ณผ C#์ ์ ์ฌ์ [ํธ์ง]
4.1. ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ[ํธ์ง]
Visual Basic.NET์์ Hello World๋ฅผ ๋์ฐ๋ ๋ฐฉ๋ฒ
C#์์ Hello World๋ฅผ ๋์ฐ๋ ๋ฐฉ๋ฒ
Module Hello Sub Main() Console.WriteLine("Hello, World!") End Sub End Module
C#์์ Hello World๋ฅผ ๋์ฐ๋ ๋ฐฉ๋ฒ
using System;
public class Hello2
{
public static void Main()
{
Console.WriteLine("Hello, World!");
}
}4.2. VB.NET โ C# ๋ณํ[ํธ์ง]
VB.NET๊ณผ C#์ ๋ ๋ค ๊ฐ์ .NET ํ๋ ์์ํฌ ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ๊ฑฐ์ ์๋ฒฝํ๊ฒ C#๊ณผ VB.NET ์ฝ๋๋ฅผ ๋ณํํ ์ ์๋ค. ์ค์ ๋ก http://converter.telerik.com/์์ ๋ ์ธ์ด๊ฐ ์ฝ๋๋ฅผ ๋ณํํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค.
[1] ๋ค๋ง VB 6.0์ด ์์ ํ ์์ด์ง๊ฒ์ ์๋๋ฉฐ, Microsoft Office์ ๋ด์ฅ๋์ด ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ VB 6.0์ ๊ธฐ๋ฐ์ผ๋ก ํ VBA์ด๋ค. ๋น์ฐํ VB.NET์ ํธํ์ด ๋์ง ์๋๋ค.
[2] Shell ํจ์๋ ํธ์ถํ ๋ ๊ดํธ๋ฅผ ์ฐ๊ฑฐ๋ ๋ง๊ฑฐ๋ ์๋ํ๋ค.