Tải bản đầy đủ (.pdf) (218 trang)

Tìm hiểu microsoft visual basic net và ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.66 MB, 218 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

KHOA CÔNG NGHỆ THÔNG TIN

!

ĐỒ ÁN TỐT NGHIỆP KHOA CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH : CÔNG NGHỆ PHẦN MỀM

Đề tài:

TÌM HIỂU MICROSOFT VISUAL BASIC.NET
VÀ ỨNG DỤNG

GVHD:
SVTH :

NGUYỄN TẤN TRẦN MINH KHANG
VÕ HOÀNG ANH
MSSV: 9800503
TRẦN TRUNG HIẾU MSSV: 9800552

Tp. HCM – 7/2002


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang


Lời Cảm Ơn
"!#

Chúng em xin chân thành cảm ơn thầy Nguyễn Tấn Trần Minh
Khang, người đã hướng dẫn chúng em rất nhiệt tình trong quá trình thực
hiện đề tài.
Xin cảm ơn tất cả các thầy cô khoa CNTT, anh chò sinh viên đi
trước, các bạn sinh viên cùng khóa đã tận tình giúp đỡ, giới thiệu tài
liệu, sách vở cho chúng em trong 4 năm học qua.
Mặc dù đã cố gắng và nỗ lực trong việc tìm hiểu, nghiên cứu và
thực hiện đề tài, nhưng do thời gian có phần hạn chế, nội dung đề tài
khá mới nên việc thực hiện Đồ n sẽ không tránh khỏi thiếu sót. Rất
mong nhận được sự đóng góp ý kiến của tất cả thầy cô, anh chò và các
bạn để tạo điều kiện cho việc thực hiện Đồ Án Tốt Nghiệp ngày càng
hoàn chỉnh hơn. Xin chân thành cảm ơn !.
Tháng 7 năm 2002
Nhóm sinh viên thực hiện đề tài
Võ Hoàng Anh
Trần Trung Hiếu

SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang


Lời Giới Thiệu
$%&

Trong vài thập niên trở lại đây, công nghệ thông tin phát triển một cách
mạnh mẽ. Máy tính đã trở nên phổ biến, nó trở thành một công cụ trợ giúp đắc
lực cho con người. Hầu hết, mọi công việc văn phòng đều đã sử dụng máy tính,
phần mềm máy tính. Song song bên cạnh đó, các ngôn ngữ lập trình để tạo ra các
phần mềm cũng ngày càng phát triển phong phú : ngôn ngữ lập trình hướng cấu
trúc, ngôn ngữ lập trình hướng đối tượng , đặc biệt là lập trình Web, công nghệ
Internet…
Visual Basic.NET là một trong số các công cụ để viết chương trình phần
mềm. Ngay từ lúc sơ khai, ngôn ngữ lập trình Visual Basic(tiền Visual Basic.NET )
đã được Microsoft xây dựng dựa trên cơ sở của một ngôn ngữ lập trình đa chức
năng dễ sử dụng và được rất nhiều lập trình viên chọn làm ngôn ngữ chính cho
mình…và nay Visual Basic.NET lại được Microsoft tung ra với nhiều tính năng
mới nhằm đáp ứng những phần mà Visual Basic 6.0 chưa hổ trợ được hay chưa
thoả mãn những người lập trình trên thế giới. Vì vậy với những cái mới của Visual
Basic.NET (ví dụ như: hướng đối tượng, lập trình Web, đồ hoạ,… ) sẽ dẫn những
nhà lập trình đến với những hứa hẹn mới .

------oOo------

SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552



Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

MỤC LỤC

Phần 1..........................................................................................................................7
TÌM HIỂU VISUAL STUDIO.NET ......................................................................7
Chương 1 .....................................................................................................................8
GIỚI THIỆU VISUAL STUDIO.NET.......................................................................8
1.1.
Các khối kiến tạo của .NET(CLR,CTS và CLS) ..........................................8
1.2.
Các thư viện cơ sỡ .NET (Base class library) ...............................................9
1.3.
Nhò phân.NET (NET assembly).....................................................................9
1.4.
Vùng dữ liệu Mêta (MetaData)....................................................................9
1.5.
Quá trình thự hiện luồng công việc của .NET ............................................10
1.6.
Các không gian tên (Namespace) của .NET...............................................10
1.7.
Visual Studio.NET........................................................................................12
Chương 2 ...................................................................................................................18
NGÔN NGỮ VISUAL BASIC.NET........................................................................18
2.1.
Giới thiệu :....................................................................................................18
2.2.
Namespaces..................................................................................................18

2.3.
Kiểu dữ liệu ..................................................................................................23
2.3.1. Hằng (Constants) ........................................................................................24
2.3.2Các Toán Tử và Phép Toán.........................................................................24
2.3.3Cấu trúc.........................................................................................................26
2.3.4Lệnh rẽ nhánh. .............................................................................................26
2.3.4.1 Lệnh IF…THEN… ELSE ................................................................26
2.3.4.2 Lệnh Switch Case.............................................................................27
2.3.5Lệnh Lặp.......................................................................................................28
2.3.5.1 Lệnh While Loops ............................................................................28
2.3.5.2 Lệnh For Loops ................................................................................29
2.3.6Mảng .............................................................................................................30
2.3.7Hàm ...............................................................................................................32
Chương 3 ...................................................................................................................36
HƯỚNG ĐỐI TƯNG MỚI TRONG VB.NET(OOP)...........................................36
3.1.
Vấn đề khái quát của hướng đối tượng .......................................................36
3.1.1.Classes và Objects, nguyên tắc Abstraction ..............................................36
3.2.
Fields, Properties, Methods và Events, nguyên tắc Encapsulation............37
3.2.1.
Inheritance (Thừa Kế)......................................................................39
3.2.2.
Polymorphism (Đa dạng) .................................................................41
3.3.
Dùng hướng đối tượng trong VB.NET.........................................................42
3.3.1.Tạo một Class mới ......................................................................................42
3.3.1.1.
Class Keyword..............................................................................43
SVTH:Võ Hoàng Anh

Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

1


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

3.3.1.2.
Classes và Namespaces ...............................................................43
3.3.1.3.
Tạo ra Methods.............................................................................44
3.3.1.4.
Tạo ra Properties ..........................................................................45
3.3.1.5.
ReadOnly và WriteOnly property ...............................................45
3.3.1.6.
Default Properties ........................................................................45
3.3.2.Overloading methods(phương thức quá tải) ...............................................47
3.3.3.Object Lifecycle (cuộc đời của đối tượng).................................................47
3.3.3.1.
New method(tạo phương thức mới) .............................................47
3.3.3.2.
Termination(sự hoàn thành, kết thúc) .........................................49
3.3.3.3.
Dùng Dispose Method..................................................................50

3.3.4.Thừa kế ........................................................................................................51
3.3.5.Ngăn cản Thừa kế .......................................................................................54
3.3.6.Thừa kế và Phạm vi hoạt động...................................................................54
3.3.7.Protected Methods.......................................................................................56
3.3.8.Overriding Methods.....................................................................................56
3.3.8.1.
Virtual Methods............................................................................57
3.3.8.2.
Keyword Me.................................................................................58
3.3.8.3.
Keyword MyBase.........................................................................59
3.3.8.4.
Keyword MyClass ........................................................................60
3.3.9.Overridding Method New ...........................................................................62
3.3.10.Tạo BaseClasses và Abstract Methods ....................................................62
3.3.10.1.
Keyword MustInherit (Phải được Thừa Kế) ...............................62
3.3.10.2.
Keyword MustOverride (Phải bò Lấn Quyền) ............................63
3.3.10.3.
Abstract Base Classes ..................................................................63
3.3.11.Shared class members ( Các thành viên để dùng chung của class) ........64
3.3.11.1.
Shared Methods............................................................................64
3.3.11.2.
Shared Variables ..........................................................................65
3.3.11.3.
Global values................................................................................66
3.3.12.Events (Sự kiện) ........................................................................................67
3.3.12.1.

Raising Event để xử lý trong một Project khác ..........................67
3.3.12.2.
Shared Events ...............................................................................70
3.3.13.Early Binding hay Late Binding (Hiệu lực Sớm hay Trể) .......................71
3.3.13.1.
Dùng Object Type ........................................................................72
3.3.13.2.
Late Binding và Reflection..........................................................72
3.3.13.3.
Dùng Function CType ..................................................................73
3.3.14.Thừa kế từ một ngôn ngữ khác .................................................................74
3.3.14.1.
Tạo một VB.NET BaseClass .......................................................74
3.3.14.2.
Tạo một C# SubClass...................................................................74
3.3.14.3.
Tạo một program Client...............................................................76
SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

2


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang


Chương 4 ...................................................................................................................78
LÀM VIỆC VỚI ĐỐI TƯNG ĐỒ HỌA(GDI+) ..................................................78
4.1.
So sánh giữa đồ hoạ của VB.NET và VB 6.0 .............................................78
4.2.
Khảo sát Không gian Đồ họa GDI+ ............................................................78
4.3.
Khái quát về Không gian tên System.Drawing ..........................................79
4.4.
Xây dựng một không gian làm việc với GDI+............................................81
4.4.1Các kiểu tiện ích của Sytem.Drawing.........................................................82
4.4.1.1 Kiểu Point(F) ....................................................................................82
4.4.1.2 Kiểu Rectangle(F)............................................................................83
4.4.1.3 Kiểu Size(F) và Region ...................................................................83
4.4.1.4 Lớp Region .......................................................................................83
4.4.2Trình điều khiển Paint() ...............................................................................84
4.4.3Lớp Graphics.................................................................................................87
4.5.
Tìm hiểu về màu (color) ..............................................................................88
4.6.
Làm việc với Phông chữ ..............................................................................90
4.7.
Không gian tên System.Drawing.Drawing2D............................................91
4.8.
Chuyển đạt các ảnh......................................................................................93
Chương 5 ...................................................................................................................94
NHẬP, XUẤT và Namespace SYSTEM.IO...........................................................94
5.1.
Kiểu Directory(Info) ....................................................................................94
5.2.

Kiểu FileInfo ................................................................................................95
5.3.
Xem xét phương pháp FileInfo.Open() .......................................................96
5.4.
Kiểu FileStream ...........................................................................................97
5.5.
Kiểu Streamwriter & StreamReader ...........................................................97
Chương 6 ...................................................................................................................99
GIỚI THIỆU WINDOWS FORMS .........................................................................99
6.1.
Hai không gian tên GUI ...............................................................................99
6.2.
Khái quát về Windows.Forms......................................................................99
6.3.
Tạo một Form ...............................................................................................99
6.3.1.Tạo form với VB.NET...............................................................................100
6.3.2.Làm việc nhiều form trong một Project với VB.NET .............................104
6.4.
Thêm một sự kiện điều khiển vào Form(Event Handler) ........................106
6.4.1.Làm việc với các sự kiện chuột:...............................................................106
6.4.2.Làm việc với các sự kiện bàn phím..........................................................109
6.5.
Xây dựng một ứng dụng MDI (Multiple document interface) ...............111
6.5.1.Xây dựng Form Cha(MDI parent ) và form con (MDI children).............111
6.6.
Tạo thực đơn cửa sổ( Windows Menu).....................................................112
6.7.1.Kiểu Menu$MenuItemCollection.............................................................114
6.7.2.Thêm hệ thống menu vào trong Form(adding menus to a form) ............115
SVTH:Võ Hoàng Anh
Trần Trung Hiếu


MSSV:9800503
MSSV:9800552

3


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

6.7.3.Dùng PopUp Menu vào trong Form .........................................................117
6.7.4.Dùng ContextMenu vào trong Form.........................................................117
6.7.
Tìm hiểu về thanh tình trạng(status bar) ...................................................118
6.8.
Thêm Toolbar vào form ............................................................................119
Chương 7 .................................................................................................................121
LẬP TRÌNH VỚI CÁC WINDOWS FORMS CONTROL TRONG VB.NET ....121
7.1.
Hệ phân cấp Windows Forms ....................................................................121
7.2.
Các control trong WindowsForms: ............................................................123
7.2.1.TextBox control .........................................................................................123
7.2.2.RichTextBox control .................................................................................124
7.2.3.Label control..............................................................................................124
7.2.4.Button control ............................................................................................124
7.2.5.RadioButton và GroopBox control ...........................................................125
7.2.6.ListBox control ..........................................................................................125
7.2.7.ComboBox control.....................................................................................126

7.2.8.TrackBar control........................................................................................127
7.2.9.MonthCalender Control.............................................................................128
7.2.10.Các điều khiển con chạy : DomainUpDown và NumericUpDown ......130
7.2.11.Làm việc với các Điều khiển Panel .......................................................132
7.2.12.Làm việc với ToolTips – Gán các ToolTips cho các control ................133
7.2.13.Anchoring (bỏ neo)..................................................................................134
7.2.14.Docking (gắn vào) ...................................................................................136
7.2.15.Control Splitter ........................................................................................138
Chương 8 .................................................................................................................142
ADO.NET ...............................................................................................................142
8.1.
ADO.NET là gì ? .......................................................................................142
8.1.1.Sự khác nhau giữa ADO.NET và ADO cổ điển: .....................................142
8.1.2.Hoạt động toàn cảnh của ADO.NET........................................................143
8.1.3.Phương thức kết nối dữ liệu của ADO.NET.............................................144
8.2.
Mô hình hoạt động của ADO.NET............................................................145
8.3.
Kiến trúc của ADO.NET............................................................................146
8.4.
Các kiểu của không gian (Namespace) System.Data...............................146
8.4.1.Kiểu DataSet .............................................................................................147
8.4.1.1 Vai trò của DataSet........................................................................147
8.4.1.2 Các tính chất của DataSet..............................................................149
8.4.1.3 Các phương thức của DataSet........................................................150
8.4.2.DataTable ..................................................................................................151
8.4.2.1.Vai trò của DataTable............................................................................151
8.4.2.2.Tính chất của DataTable........................................................................151
SVTH:Võ Hoàng Anh
Trần Trung Hiếu


MSSV:9800503
MSSV:9800552

4


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

8.4.2.3.Xây dựng và thao tác DataTable...........................................................152
8.4.3.DataColumn...............................................................................................153
8.4.4.DataRow ....................................................................................................154
8.5.
Các kiểu của không gian (Namespace) System.Data.OleDb...................155
8.5.1.OleDbConnection ......................................................................................156
8.5.2.OleDbCommand........................................................................................157
8.5.3.OleDbDataReader.....................................................................................157
8.5.4.OleDbParameter........................................................................................158
8.5.5.OleDbDataAdapter....................................................................................160
8.6.
Các kiểu của không gian (Namespace) System.Data.SqlClient ..............161
8.7.
Vận dụng Wizards và dùng DataGrid ......................................................162
Chương 9 .................................................................................................................167
GIỚI THIỆU ASP.NET (ASP+) ............................................................................167
9.1
Giới thiệu ASP.NET..................................................................................167
9.2

Tìm hiểu bộ khung web nền thế hệ kế tiếp NGWSF(Next Generation
Web Service Framework). .....................................................................................167
9.2.1.Giới thiệu :.................................................................................................167
9.2.2.Tìm hiểu khung nền NGWSF ...................................................................168
9.2.3.Ngôn ngữ trung gian phổ dụng (common intermediate)..........................169
9.3
Cơ sở hạ tầng của các ứng dụng Web .......................................................170
9.4
Những khác biệt giữa ASP.NET và ASP .................................................171
9.5
ASP.NET và dòch vụ Web..........................................................................173
9.6
ASP.NET cấu hình và phân phối ứng dụng. .............................................173
9.6.1.Tập tin web.config.....................................................................................173
9.6.2.Tập tin global.aspx. ...................................................................................174
9.7
Trạng thái của biến Session và Application trong ASP.NET...................174
9.8
Xử lý lỗi trong ASP.NET. ..........................................................................175
9.9
Kết chương..................................................................................................176
Chương 10 ...............................................................................................................177
CÁCH TẠO TRANG ASP.NET ............................................................................177
10.1.
Giới thiệu Web Forms............................................................................177
10.2.
So sánh sự khác biệt giữa Web forms và Windows forms ...................177
10.3.
Sau đây chúng ta sẽ xem cách tạo một Web forms đơn giản. .............178
10.4.

Cách đưa một controls vào Web Forms ................................................180
10.5.
Các thành phần điểu khiển trong ASP.NET .........................................184
10.5.1.Điều khiển nội tại (intrinsic control) ......................................................185
10.5.2.Điểu khiển danh sách (Listcontrol) ........................................................186
10.5.3.Điều khiển đa năng (rich control)...........................................................187
10.5.4.Điều khiển kiểm tra (Validate control) ..................................................187
SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

5


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

Chương 11 ...............................................................................................................188
XÂY DỰNG TRANG ASP.NET NÂNG CAO .....................................................188
11.1.
Lập trình với mã ẩn. ...............................................................................188
11.2.
Tạo các mẫu trang có khả năng dùng lại (Pagelets). ...........................190
11.2.1.Xây dựng các mẩu Pagelet .....................................................................191
11.2.2.Ví dụ về sữ dụng Pagelet........................................................................192
11.2.3.Đònh nghóa thuộc tính và phương thức cho Pagelets. .............................193
11.3.

Sử dụng vùng đệm Cache của ASP.NET..............................................194
11.3.1.Lập vùng đệm cho dữ liệu kết xuất. .....................................................194
11.3.2.Sử dụng cache để lưu trữ biến môi trường .............................................196
11.3.2.1
Tạo và truy xuất các biến của đối tượng cache ........................196
11.3.2.2
Sử dụng cache trong ASP.NET..................................................197
11.4.
Kết chương..............................................................................................198
Chương 12 ...............................................................................................................199
NÂNG CẤP CÁC ĐỀ ÁN VB 6.0 LÊN .NET......................................................199
(Upgrading VB to .NET) ........................................................................................199
12.1.
Những điều lưu ý (considerations) trước khi nâng cấp lên .NET.........199
12.2.
Các bước tiến hành Nâng cấp (Upgrade)..............................................200
12.3.
Có nên nâng cấp không ?.......................................................................202
PHẦN 2...................................................................................................................203
BÀI ỨNG DỤNG ...............................................................................................203
Đề tài ......................................................................................................................204
Xây dựng Trang Web Dạy Học VB.NET.............................................................204
1. Hiện Trạng......................................................................................................204
2. Yêu cầu ...........................................................................................................204
3. Phân Tích ........................................................................................................204
•Sơ đồ lớp ...........................................................................................................204
•Reletionships.....................................................................................................204
•Mô tả dữ liệu các bảng ....................................................................................205
4. Cài đặt .............................................................................................................206
5. Giao diện.........................................................................................................207

•Sơ đồ giao diện .................................................................................................207
•Các trang chính .................................................................................................208
TÀI LIỆU THAM KHẢO ......................................................................................215

SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

6


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

Phần 1

Tìm Hiểu Visual Studio.NET

SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

7



Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

Chương 1

GIỚI THIỆU VISUAL STUDIO.NET
Hiện nay trên thế giới

Ngôn ngữ VisualBasic được nhiều nhà lập trình chọn
là một ngôn ngữ chính cho việc thiết kế,lập trình những ứng dụng, đặc biệt là ứng
dụng quản lý cơ sỡ dữ liệu ,… Nhưng đối với ngôn ngữ VB thì không làm họ vừa
lòng rất nhiều vấn đề như : hổ trợ lập trình hướng đối tượng, đồ họa , đặc biệt là
lập trình về các ứng dụng Web ….nay VisualStudio.NET ra đời đã đáp ứng được
một phần nào mong chờ của những người lập trình.
Nền tảng .NET của Microsoft biểu thò một phong cách hoàn toàn mới lạ để
xây dựng các ứng dụng có phân phối , ứng dụng Desktop, và di động. Và cũng
dính dáng gì với COM cổ điển, VB 6.0, ...hoặc bất kỳ cơ cấu tiền .NET nào. Vì
rằng .NET là sự chuyển hướng triệt để để rời xa lối làm việc hiện hành của tiến
trình phát triển Win32, Microsoft cũng đã cho xuất xưởng một đợt cấp nhật mới
tinh của ngôn ngữ lập trình VisualBasic vốn dó phổ dụng, có tên là VB.NET,
cũng đã được hướng cụ thể về phía các ứng dụng .NET . Khi tìm hiểu qua
VB.NET bạn sẽ thấy VB.NET không đơn thuần là bản nâng cấp của VB 6.0.
Thay vì thế, tốt nhất ta nên VB.NET như là một ngôn ngữ lập trình mới đơn giản
tình cờ có vẽ ta ngờ ngợi như là lặp lại trước đây của một ngôn ngữ.
Để tìm hiểu VB.NET ta phải tìm hiểu sơ lược về cơ chế hoạt động cũng như
cách thức tổ chức của hướng tiếp cận mới của .NET
1.1. Các khối kiến tạo của .NET(CLR,CTS và CLS)
Trên quan điểm của lập trình viên.NET có thể được hiểu như một môi trường
thời gian chạy mới và một thư viện lớp cơ sỡ chung. Tầng thời gian chạy được

gọi là Common Language Runtime(CLR). Vai trò chính của CLR là đònh vò, và
quản lý các kiểu .NET đònh danh. CLR quan tâm đến một số chi tiết cấp thấp
chẳng hạn như quản lý bộ nhớ tự động, tích hợp ngôn ngữ, và triển khai giản lược
(và đònh phiên bản) các thư viện mã nhò phân.
Khối kiến tạo khác của của .NET đó là Common Type System (CTS). CTS
mô tả đầy đủ tất cả các kiểu dữ liệu khả dó mà thời gian chạy hổ trợ, chỉ đònh
cách tượng tác của các kiểu đó với nhau và nêu chi tiết cách biểu thò chúng theo
dạng thức dữ liệu Mata.NET.
Commom Language Specification (CLS) là một loạt các quy tắc đònh nghóa
cho một tập con các kiểu chung bảo đảm các file nhò phân .NET có thể được
dùng một cách thông suốt qua tất cả các ngôn ngữ nhắm đến nền tảng .NET. Các
kiểu dữ liệu nội tại của CLS như bảng sau sau :
SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

8


Đề tài:Tìm hiểu VB.NET và ứng dụng

Lớp cơ sỡ .NET
System.Byte
System.Int16
System.Int32
System.Int64
System.Single
System.Double

System.Object
System.Char
System.String
System.Decimal
System.Boolean

GVHD:Nguyễn Tấn Trần Minh Khang

Phần biểu thò VB.NET
Byte
Short
Integer
Long
Single
Double
Object
Char
String
Decimal
Boolean

Phần biểu thò C#
Byte
Short
Int
long
float
double
object
char

string
decimal
bool

1.2.

Các thư viện cơ sỡ .NET (Base class library)
Ngoài các đònh chuẩn CLR , CTS và CLS, nền tảng .NET còn cung cấp một
số thư viện lớp cơ sỡ sẵn có cho tất cả các ngôn ngữ lập trình .NET. Không
những thư viện lớp cơ sỡ này gói riêng nhiều kiểu nguyên thủy khác nhau (ví dụ
IO tập tin, chuyển đạt đồ họa, và khả năng tương tác với các thiết bò phần cứng
bên ngoài ) mà còn cung cấp phần hổ trợ cho một số dòch vụ mà hầu hết các ứng
dụng đời thực yêu cầu (ví dụ : điều tác Data Base, Tích hợp XML,…)
1.3. Nhò phân.NET (NET assembly)
Ứng dụng .NET xây dựng từ các assemblies. Mỗi assembly phải có một
manifest(bản kê). Có thể nó nằm riêng trong một file hay nằm bên trong một
module. Manifest chứa những metadata sau đây:
• Tên và Version number của assembly
• Những assembly khác (kể cả version number của assembly) mà assembly
nầy tùy thuộc vào để chạy
• Types (classes và members) mà assembly nầy cho xuất khẩu
• Assembly nầy đòi hỏi điều kiện an ninh nào (security permissions)
Manifest cho phép ta dùng hơn một version của assembly (tương đương với
DLL trước đây) cùng một lúc. Từ đây không còn register DLL nữa. Thay vào đó,
ta chỉ cần copy các assembly vào một subfolder /bin của chương trình chính.
1.4. Vùng dữ liệu Mêta (MetaData)
Metadata là các dữ kiện cắt nghóa(mô tả) cho ta biết về dữ kiện như lớp,
cấu trúc , kiểu điểm danh,vv.. Ví dụ IDL [interface Definition Language] là một
ngôn ngữ Meta dùng để mô tả các kiểu hàm bên trong mộ hệ phục vụ COM đã
SVTH:Võ Hoàng Anh

Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

9


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

cho Thí dụ XML Schema của một XML file là metadata cắt nghóa về data
structure của data trong file XML. Chính cái XML Schema cũng là một file XML.
Các ứng dụng .NET components, gọi là Assembly, chứa rất nhiều metadata để
cắt nghóa về chính nó (self describing). Tìm biết về một ứng dụng .NET để có thể
làm việc với nó thì gọi là Reflection.
1.5. Quá trình thự hiện luồng công việc của .NET
Mã nguồn .NET của
VB.NET, C#,C++.NET,…

Vài trình biên dòch
.NET

Hợp tập DLL/EXE (IL và
dữ liệu meta)

Thi hành ứng dụng

1.6.


Các không gian tên (Namespace) của .NET
Trong .NET thì Namespace(tìm hiểu rõ ở chương sau) quan trọng nhất mà ta
chú ý đó là tên “System”. Không gian tên này cung cấp một thân lõi mà các
kiểu mà ta cần huy động nhiều với tư cách là một nhà phát triển. Namespace
“System” cung cấp nhiều không gian tên .NET được thể hiện ở bảng như sau :
Các Namespace của .NET
Các Namespace.NET
Ý nghóa
System
Bên trong System có nhiều lớp cấp thấp ứng
phó với với các kiểu nguyên thủy, các phép
SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

10


Đề tài:Tìm hiểu VB.NET và ứng dụng

System.Collections

System.Data
System.Data.Commom
System.Data.OleDb
System.Data.SqlClient
System.Diagnostics


GVHD:Nguyễn Tấn Trần Minh Khang

toán học, gom rác ,v.v.v
Namspace này đònh nghóa một số đối tượng
thùng chứa lưu trữ ví dụ : Array
Ust,Queue,Sortadlist
Các NameSpace này được dùng cho thao tác
Cơ sỡ dữ liệu.

Namespace này chúng ta gặp nhiều kiểu có thể
được các ngôn ngự .NET sử dụng đễ gởi rối và
theo dõi thi hành của mã nguồn.
System.Drawing
Namespace này cung cấp đồ họa GDI+ ví dụ
System.Drawing.Drawing2D như Bitmap, ….
System.Drawing.Printing
System.IO
Namespace này gồm đầy đủ các điểu tác xuất
nhập bao gồm xuất nhập tập tin , vùng đệm
v.vv
System.NET
Namespace này chứa các kiểu liên quan đến
lập trình mạng.(yêu cầu, đáp ứng , nối,…)
System.Reflection
Đònh nghóa các mục hổ trợ tính năng khám phá
System.Reflection.Emit
kiểu vào thời gian chạy, tạo động và triệu gọi
các kiểu tùy biến.
System.Runtime.InteropServ Cung cấp các đặc cụ để tương tác với “mã

ices
không quản”[unmanaged code]
System.Runtime.Remoting
System.Security
Bảo mật là một khía tích hợp của vũ trụ .NET.
Ở đậy gặp nhiều ứng phó với các mật mã hóa
quyền,v.v.
System.Threading
Namespace này ứng phó với các vấn đề lập
sâu. Ở đây gặp nhiều kiểu Mutex, Thread va
Times out
System.Web
Namespace này được ứng dụng cho việc lập
trình web.
System.Windows.Forms
Cung cấp các control cho người dùng thiết kế
giao diện một cách trực quan.
System.Xml
Chứa nhiều biểu thò cho XML lõi, các căn tốt
[primitives]và các kiểu điều tác với dữ liệu
Xml.
SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

11



Đề tài:Tìm hiểu VB.NET và ứng dụng

1.7.
sau:

GVHD:Nguyễn Tấn Trần Minh Khang

Visual Studio.NET
Để chạy Visual Studio.NET ta phải tham khảo và tiến hành theo như bước

Có hai cách để bắt đầu một project mới trong VS.NET. Hoặc Click New
Project trong trang Web StartPage như dưới đây:

Hoặc dùng Menu command File | New | Project giống như trong VB6 IDE:

Khi Add New Project, Name sẽ là subfolder name của New Project. Bạn có thể
SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

12


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

chọn VB.NET, C# hay VC++.NET project. Trong tương lai chúng ta sẽ chỉ nhắm

vào VB.NET và C# thôi. Ngoài ra SetUp and Deployment bây giờ là một loại
project nằm trong IDE của Visual Studio.NET, ta không cần phải chạy riêng
chương trình Package and Deployment bên ngoài VB6 IDE như trước đây.
Solution trong VS.NET có thể chứa hơn một Project và bao gồm tất cả
những files bạn liệt ra là cần thiết cho Solution. Nếu một trong những files ấy bò
thay đổi bên ngoài VS.NET, khi VS.NET khám phá ra nó sẽ load vào trong
VS.NET cho bạn nếu bạn đồng ý.

Để mở một Solution/Project có sẵn, bạn có thể click link của tên project trên
trang StartPage, hay dùng Menu command File | Open | Project , hay Menu
Command File | Recent Projects.
• Visual Studio.NET IDE

SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

13


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

Giao diện của VS.NET có những đặc điểm giống như Delphi và Visual InterDev
ở chỗ code được phát sinh tự động, Windows nằm chung thành Tab set hay float
khắp nơi, và hổ trợ Solution rất thích hợp cho việc triển khai của cả đội.
Toolbox bên trái chứa Controls cho Windows Forms, Web Forms, General

Components, Data Components, HTML tags, XML Schema tools v.v... Khi
một Form đang hiển thò, click lên một button trong Toolbox để chọn Tool Set bạn
cần. Toolbox ở trạng thái Fixed displayed (như trong hình trên) khi cây ghim phía
trên đâm xuống. Bạn có thể click cây ghim cho nó nằm ngang và vertical
Toolbox tab hiện ra bên trái. Lúc ấy, Toolbox ở trong trạng thái Auto Hide (hiện
ra/rút vào) như dưới đây:

Bạn có thể gọi hầu hết các Windows hiển thò bằng cách dùng Menu commands
View, View | Other Windows và Debug | Windows:

SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

14


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

Các Windows bên phải có thể nổi, nằm chồng lên nhau thành những Tabs trong
một tập Window hay nằm cạnh nhau vertically tiled. Nắm Tittle bar để dời
nguyên một tập Window đi. Nắm Window Tab của một tập Window để kéo chỉ
một Window ra. Bạn có thể để chồng hai Windows lại với nhau bằng cách nắm
Tittle bar của một Window để chồng lên một Window khác. Thử nhích đi, nhích
lại, trước khi buông Window ra để làm quen với kết quả.
Phía dưới có Task List Window để bạn giữ sổ sách về diễn tiến của dự án và

quản lý cả đội. Khi bạn dùng menu command Build | Build để compile program,
nếu có errors chúng sẽ được hiển thò trong Task List Window. Double click lên
một hàng error để mang cursor đến chỗ gây ra error ấy trong code window.
Trong hình dưới đây, ta cố ý comment out hàng Dim sw As StreamWriter:

SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

15


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

Ngoài ra, để Debug bây giờ bạn có Output Window để in ra các messages mà
trong VB6 bạn dùng Immediate Window. Thí dụ trong VB6 bạn viết:
Debug.Print "Count=" & CStr(Count)
để in ra trong Immediate Window, thì trong VB.NET bạn có thể viết:
Console.WriteLine("Count= {0}", Count)
để in ra trong Output Window.
Dó nhiên bạn vẫn có thể tiếp tục dùng Immediate Window trong công tác Debug
như trước đây trong VB6.
Chưa hết, VS.NET còn cho bạn Command Window để ta có thể enter những
VS.NET commands để manipulate IDE, xử lý macros, .v.v
Để hiển thò Window nầy bạn dùng menu command View | Other Windows |
Command Window. Để tiện hơn, bạn drag title bar của nó để chồng lên tab bar

của Task List và Output windows.

SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

16


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

Nếu ta enter một command như:
File.AddNewProject
IDE sẽ hiển thò Add New Project dialog.
VS.NET hổ trợ Macro để bạn có thể record và playback một chuỗi công tác.
Phương tiện Integrated Debugging cho ta Debug Menu, Call Stack Window,
Breakpoints Window và Watch and Value Display Windows.
Thường thường bạn sẽ Add Reference các .NET components. Nhưng bạn cũng có
thể dùng ActiveX (có sẵn trong VB6) trong .NET application bằng cách Add
Reference COM (click Tab COM trên Add Reference Dialog). .NET sẽ gói
ActiveX thành một NET component (click Yes trả lời câu hỏi "Would you like to
have a wrapper generated for you?"). Ngoài ra dùng Add Reference Projects để
refer đến DLL của các User developed DLL.

SVTH:Võ Hoàng Anh
Trần Trung Hiếu


MSSV:9800503
MSSV:9800552

17


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

Chương 2

NGÔN NGỮ VISUAL BASIC.NET
2.1.

Giới thiệu :

VB.NET, còn gọi là VB7, chẳng qua là C# viết theo lối Visual Basic. Nay

VB7 đã hoàn toàn là Object Oriented, tức là cho ta dùng lại (reuse)
classes/forms theo cách thừa kế thật thoải mái, nên nó khác VB6 nhiều lắm.
Dầu vậy, đối với VB6 programmers học VB.NET không khó. Lý do là
VB.NET không cho thêm nhiều từ mới (reserved words). Nói chung các ý niệm
mới trong VB.NET đều dễ lónh hội, nhất là khi đem ra áp dụng cách thực tế. Đó
là nhờ Microsoft vẫn giữ nguyên tắc dấu và làm sẵn (của VB6) những gì rắc rối
phía sau sân khấu, để ta có thể tập trung vào việc tìm kiếm một giải pháp, thay vì
quá bận tâm vào cách thức làm một việc gì. Chính nguyên tắc ấy đã giúp
Microsoft chiêu mộ được 3 triệu VB6 programmers trên khắp thế giới. VB.NET
cống hiến cho VB programmers một công cụ rất hữu hiệu để dùng cho mọi hoàn

cảnh, từ database, desktop, distributed, Internet cho đến real-time hay mobile
(pocket PC).
Những ưu điểm (features) của VB.NET đến từ chức năng của .NET
Framework. Nó mang đến phương tiện lập trình cho mạng cách Object Oriented
như XML, Remoting, Streaming, Serialisation, Threading .v.v... Những thứ nầy
tuy lạ nhưng không khó học, ngược lại sẽ tiết kiệm rất nhiều thì giờ.
Mặc dầu VB6 là một ngôn ngữ lập trình trưởng thành và hiệu năng, chắc chắn
hãy còn tồn tại trong nhiều năm nữa, nhưng học thêm VB.NET là một đầu tư
tương đối ít tốn kém và đảm bảo huê lợi gấp bao nhiêu lần trong hàng thập niên
tới.
2.2. Namespaces
Namespaces là một cách đặt tên để giúp sắp đặt các Classes ta dùng trong
program một cách thứ tự hầu dễ tìm kiếm chúng. Tất cả code trong .NET, viết
bằng VB.NET, C# hay ngôn ngữ nào khác, đều được chứa trong một namespace.
Điểm nầy cũng áp dụng cho code trong .NET system class libraries. Chẳng
hạn, các classes của WinForms đều nằm trong System.Windows.Forms
namespace. Và các classes dùng cho collections như Queue, Stack, Hashtable
.v.v.. đều nằm trong System.Collections namespace.
Tất cả code ta viết trong program của mình cũng đều nằm trong các
namespaces.
Trước đây trong VB6, mỗi khi nhắc đến một Class trong một COM tên
SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

18



Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

CompName ta viết CompName.Classname (còn gọi là PROGID) , tức là cũng
dùng một dạng namespace.
Tuy nhiên phương pháp nầy có một vài giới hạn:
• Đòa chỉ của class bò buộc cứng vào component đang chứa nó.
• Những classes không nằm trong một COM component thì không có
"namespace".
• Cách gọi tên PROGID chỉ có một bậc thôi, không có bậc con, bậc cháu.
• Tên của Component luôn luôn có hiệu lực trên khắp cả computer.
Namespaces trong .NET khắc phục được mọi giới hạn nói trên trong VB6.
Nhiều assemblies có thể nằm trong cùng một namespace, nghóa là classes
tuyên bố trong các components khác nhau có thể có chung một namespace. Điều
nầy cũng áp dụng xuyên qua các ngôn ngữ, giúp cho một class viết trong
VB.NET có thể nằm trong cùng một namespace với một class viết trong C#,
chẳng hạn.
Hơn nữa, trong một assembly có thể có nhiều namespaces, dù rằng thông
thường ta chỉ dùng một namespace duy nhất cho tất cả các classes trong ấy.
Nhớ là một assembly trong .NET thì đại khái tương đương với một COM
component.
Tất cả code trong .NET đều nằm trong những assemblies.
By default, tên của project được dùng làm namespace. Nếu bạn right click lên
project name NETListbox trong Solution Explorer của program Demo, rồi chọn
Properties trong popup menu, IDE sẽ hiển thò Property Pages dialog như dưới
đây:

Bạn thấy Root namespace của project là NETListbox. Bạn có thể thay đổi
tên namespace ấy nếu bạn muốn.

SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

19


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

Namespaces có thể được phân chia thứ bậc giống như Folders trong một File
Directory. Nó sẽ giúp user sắp đặt các classes theo đúng nhóm cho trong sáng và
dễ đọc. Thí dụ bạn đang viết một program cho một hảng sản xuất, bạn sẽ dùng
namespace NhàSảnXuất ở root level. Bên trong namespace ấy bạn sẽ tạo thêm
các nhánh của chương trình như:
1.NhàSảnXuất.TồnKho
2.NhàSảnXuất.SảnPhẩm
3.NhàSảnXuất.KếToán.ChiPhí
4.NhàSảnXuất.KếToán.ThuNhập
Như thế ta đã đònh nghóa một base namespace tên NhàSảnXuất, với những
namespaces con, cháu bên trong, mỗi namespace có chứa classes, modules,
enums, structures và các namespaces khác.
Mỗi namespace chứa những phần của code thích hợp cho nó trong program
nói chung. Trong File Directory, ta có thể có hai files dù mang cùng tên nhưng
nằm trong hai folders khác nhau. Giống như vậy, trong .NET ta có thể có hai
classes có cùng một tên nhưng nằm trong hai namespaces khác nhau. Đó là vì khi
ta viết tên của một class với cả namespace của nó thì có thể phân biệt với một

class khác với cùng tên.
• Local và Global Namespaces
Khác với COM components với "namespace" của chúng áp dụng cho khắp cả
computer, namespaces của .NET thông thường là Local, chỉ có application
program của nó thấy mà thôi. .NET cũng hổ trợ Global namespace, nhưng phải
được ký tên (digitally signed) và đăng ký với.NET runtime để chứa nó trong
global assembly cache.
Công việc làm một namespace Global rắc rối như thế để giảm thiểu trường
hợp ta trở về tình trạng DLL hell trước đây.
• Dùng Namespaces
Ta có thể dùng namespaces bằng cách nói thẳng ra (explicitly) với nguyên tên
(Direct Addressing) hay hàm ý (implicitly) với Import keyword. Nhưng điều tiên
quyết là ta phải reference cái assembly chứa namespace mà ta muốn dùng. Ta
thực hiện việc ấy với Menu command Project | Add References. Khi Add
References dialog hiện ra, chọn Tab .NET cho standard .NET components hay
Tab Projects cho DLL của một .NET project khác , highlight DLL bạn muốn rồi
click Select button, đoạn click OK.

SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

20


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang


Chẳng hạn ta muốn read và write từ studio (cái console input/output stream).
Cái namespace ta cần sẽ là System.Console. Trong cách Direct Addressing ta
sẽ code như sau để viết hàng chữ "Chào thế giới":
System.Console.WriteLine ("Hello world!")
Nếu ta dùng Import keyword bằng cách nhét vào câu Imports
System.Console ở đầu code module, ta có thể code gọn hơn:
WriteLine ("Hello world!")
Dưới đây là một số namespaces thông dụng:
Namespace

Chức năng

System.IO

Đọc/Viết files và
FileStream, Path, StreamReader,
các data streams
StreamWriter
khác

System.Drawing

Đồ họa

SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552


Classes điển hình

Bitmap, Brush, Pen Color, Font,
Graphics

21


Đề tài:Tìm hiểu VB.NET và ứng dụng

GVHD:Nguyễn Tấn Trần Minh Khang

DataSet, DataTable, DataRow,
SQLConnection,
ADOConnection

System.Data

Quản lý data

System.Collection

Tạo và quản lý các ArrayList, BitArray,
loại collections
Stack, HashTable

System.Math

Tính toán


Sqrt, Cos, Log, Min

System.Diagnostics

Debug

Debug, Trace

System.XML

Làm việc với XML,
XMLDocument, XMLElement,
Document Object
XMLReader, XMLWriter
Model

System.Security

Cho phép kiểm soát Cryptography,
an ninh
Policy

Queue,

Permission,

• Aliasing Namespaces (dùng bí danh)
Khi hai namespaces trùng tên, ta phải dùng nguyên tên (kể cả gốc tích) để
phân biệt chúng. Điển hình là khi ta dùng những namespaces liên hệ đến VB6

như Microsoft.Visualbasic. Thay vì code:
Microsoft.Visualbasic.Left ( InputString,6)
ta tuyên bố:
Imports VB6= Microsoft.Visualbasic
Sau đó ta có thể code:
VB6.Left ( InputString,6)
• Dùng Namespaces keyword
Trong thí dụ về program có Root Namespace là NhàSảnXuất như nói trên,
nếu ta muốn đặt ra một namespace con là TồnKho, ta phải dùng NameSpace
keyword trong code như sau:
' Root Namespace là NhàSảnXuất
Namespace TồnKho
Class PhòngLạnh
' Code cho Phòng Lạnh
End Class
End Namespace
Bây giờ muốn nói đến class PhòngLạnh bên trong namespace TồnKho ta sẽ code
như sau:
NhàSảnXuất.TồnKho.PhòngLạnh
SVTH:Võ Hoàng Anh
Trần Trung Hiếu

MSSV:9800503
MSSV:9800552

22


×