1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx

188 576 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành Lập trình Visual Basic .NET
Trường học Trung Tâm Tin Học – Đại Học Khoa Học Tự Nhiên TP.HCM
Chuyên ngành Kỹ thuật viên ngành Lập trình
Thể loại Tài liệu hướng dẫn giảng dạy
Năm xuất bản 2006
Thành phố Tp.Hồ Chí Minh
Định dạng
Số trang 188
Dung lượng 3,59 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

GIỚI THIỆU Sau khi hoàn thành khóa học này, học viên sẽ có các khả năng: ƒ Lập trình hướng đối tượng với Visual Basic .Net ƒ Lập trình cơ sở dữ liệu với ADO.Net ƒ Xây dựng ứng dụng với V

Trang 1

Tel: 8351056 – Fax 8324466 – Email: ttth@hcmuns.edu.vn

Mã tài liệu: DT_NCM_LT_TLGD_LTN1

TÀI LIỆU HƯỚNG DẪN GIẢNG DẠY

CHƯƠNG TRÌNH KỸ THUẬT

VIÊN NGÀNH LẬP TRÌNH Học phần 3 VISUAL BASIC NET

Trang 2

MỤC LỤC

GIỚI THIỆU 9

GIÁO TRÌNH LÝ THUYẾT 10

TÀI LIỆU THAM KHẢO 10

Bài 1 11

TỔNG QUAN NET FRAMEWORK 11

I Tổng quan về Net Framework 12

II Cấu trúc Net Framework 14

II.1 Hệ điều hành 14

II.2 Cung cấp các chức năng xây dựng ứng dụng 14

II.3 Common Language Runtime 15

II.4 Bộ thư viện các lớp đối tượng 15

II.5 Phân nhóm các lớp đối tượng theo loại 16

III Ứng dụng đầu tiên 17

III.1 Môi trường lập trình VS NET 17

III.2 Tạo mới một project 18

III.3 Ứng dụng Hello 19

III.4 Windows Form Designer 21

III.5 Thử nghiệm 23

III.6 Kỹ thuật lập trình hướng đối tượng 25

III.7 Xây dựng lớp đối tượng 27

III.8 Sử dụng lại thành phần có sẵn 28

III.9 Assembly - một loại DLL mới 32

Bài 2 34

NGÔN NGỮ VISUAL BASIC NET 34

I Các kiểu dữ liệu và đặc điểm 35

I.1 Các kiểu dữ liệu 35

I.2 Đặc điểm của các kiểu dữ liệu 36

Trang 3

II Biến – Tính chất, khai báo và khởi tạo 40

II.1 Tính chất 40

II.2 Khai báo và khởi tạo 41

II.3 Kiểu trị và tham chiếu (Value Type và Reference Type) 42

II.4 Kiểu Enum (Enumeration) 44

III Mảng – Structure 45

III.1 Mảng 45

III.2 Structure 47

IV Các toán tử 47

IV.1 Toán tử toán học 47

IV.2 Toán tử nối chuỗi 48

IV.3 Toán tử gán 48

IV.4 Toán tử so sánh 48

IV.5 Toán tử luận lý và Bitwise 49

V Cấu trúc điều khiển 49

V.1 Cấu trúc chọn 49

V.2 Cấu trúc lặp 51

VI Những thay đổi trong VB.NET 52

VI.1 Thay đổi trong thủ tục và hàm 52

VI.2 Khai báo Option Strict 53

VI.3 Kiểu chuỗi có độ dài cố định 54

VI.4 Chỉ thị #Region … #End Region 54

VI.5 Imports không gian tên (Namespace) 54

VII Xử lý lỗi 55

VII.1 Phân loại lỗi 55

VII.2 Xử lý lỗi 55

Bài 3 59

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG VISUAL BASIC NET 59

I Lập trình hướng đối tượng 60

I.1 Tính trừu tượng 60

I.2 Tính bao bọc 60

Trang 4

I.3 Tính kế thừa 61

I.4 Tính đa hình 61

II Lập trình hướng đối tượng trong VB.NET 62

II.1 Tạo một Class 62

II.2 Tạo một NameSpace mới 63

II.3 Tạo một Class kế thừa 64

II.4 Khai báo phương thức (Method) 64

II.5 Khai báo thuộc tính (Property) 67

II.6 Khai báo sự kiện (Event) 69

II.7 Từ khóa Me, Mybase, MyClass 71

II.8 Khởi tạo thể hiện 73

II.9 Abstract Base Class 73

II.10 Giao tiếp (Interface) 74

II.11 Lớp lồng ghép 75

II.12 Từ khóa Delegate 76

Bài 4 78

TỔNG QUAN VỀ ADO.NET 78

I Tổng quan 79

II Kiến trúc ADO Net 80

III Các đặc điểm của ADO.Net 81

III.1 Interoperability – Tương tác giữa nhiều hệ thống khác nhau 81

III.2 Scalability - Hỗ trợ nhiều người dùng 82

III.3 Productivity - Mở rộng khả năng làm việc với CSDL 82

III.4 Performance - Hiệu quả cao trong xử lý dữ liệu 82

IV Content Component 83

IV.1 DataSet 83

IV.2 DataTable 84

IV.3 DataRelation 84

IV.4 Ràng buộc trên quan hệ 84

IV.5 DataView 85

V Managed Provider Component 85

Trang 5

V.1 Connection 86

V.2 Command 86

V.3 DataReader 86

V.4 DataAdapter 86

Bài 5 88

CONNECTION, COMMAND, DATAADAPTER 88

I Connection 89

I.1 Data Provider 89

I.2 ConnectionString 89

I.3 Các thuộc tính khác của Connection 91

I.4 Các phương thức trên Connection 91

I.5 Minh họa tạo Connection 91

II Command 92

II.1 Tạo Command 92

II.2 Các thuộc tính của Command 92

II.3 Parameter 93

II.4 Thực hiện Command 95

II.5 DataReader 96

III DataAdapter 97

III.1 Tạo DataAdapter 97

III.2 Các thuộc tính chính của DataAdapter 98

III.3 Các chức năng của DataAdapter 99

Bài 6 105

DATASET, DATATABLE, DATARELATION VÀ DATAVIEW 105

I DataSet 106

I.1 Khai báo DataSet 106

I.2 Các thuộc tính của DataSet 106

I.3 Các phương thức của DataSet 106

II DataTable 112

II.1 Các thuộc tính của DataTable 112

II.2 DataColumn 113

Trang 6

II.3 DataRow 115

II.4 Constraint 117

II.5 Tập hợp Columns 119

II.6 Tập hợp Rows 121

II.7 Tập hợp Constraints 124

II.8 Một số phương thức của DataTable 124

II.9 Các sự kiện của DataTable 126

III DataRelation 127

III.1 Khởi tạo 127

III.2 Các thuộc tính của DataRelation 128

III.3 Minh họa thiết lập quan hệ 128

IV DataView 129

IV.1 Khởi tạo 129

IV.2 Các thuộc tính chính của DataView 129

IV.3 Các thao tác chính của DataView 130

IV.4 DataRowView 131

Bài 7 133

XÂY DỰNG CÁC LỚP XỬ LÝ 133

I Mô hình đa tầng (N-tier) 134

II Xây dựng lớp xử lý lưu trữ 134

II.1 Các khai báo 135

II.2 Khai báo các thuộc tính 135

II.3 Khai báo phương thức khởi tạo 137

II.4 Khai báo phương thức xử lý - cung cấp thông tin 137

II.5 Khai báo các phương thức thực hiện lệnh 139

II.6 Nhóm xử lý sự kiện 140

III Xây dựng lớp xử lý nghiệp vụ 140

III.1 Khai báo phương thức khởi tạo 140

III.2 Khai báo phương thức tìm kiếm thông tin 141

Bài 8 142

THIẾT KẾ CÁC MÀN HÌNH 142

Trang 7

I Các điều khiển hiển thị dữ liệu 143

I.1 Thuộc tính liên kết dữ liệu của điều khiển 143

I.2 ComboBox, ListBox, CheckListBox 143

I.3 DataGrid 144

I.4 DataGridTableStyle và TableStyles 146

I.5 DataGridColumnStyle và GridColumnStyles 146

I.6 Thiết kế DataGrid 147

I.7 Hiển thị dữ liệu ra điều khiển 150

II Màn hình đơn 152

II.1 Các khai báo 152

II.2 Các thủ tục nhập xuất 152

II.3 Các hàm kiểm tra 153

II.4 Các xử lý sự kiện 154

III Màn hình một nhiều 157

III.1 Màn hình một-nhiều hai trang 157

III.2 Màn hình một-nhiều ba trang 159

IV Màn hình lọc dữ liệu 160

IV.1 Màn hình lọc một điều kiện 160

IV.2 Màn hình lọc hai điều kiện 161

V Màn hình một-nhiều-nhiều 161

VI Một số kỹ thuật trong hiển thị dữ liệu 161

VI.1 Tạo lớp DataGridColumnStyle chuyển đổi dữ liệu hiển thị 161

VI.2 Tạo lớp DataGridColumnStyle có ComboBox 162

VI.3 Tạo lớp DataGridColumnStyle cho phép định dạng chi tiết 162

VI.4 Minh họa sử dụng 162

Bài 9 166

BÁO BIỂU CRYSTAL REPORT 166

I Giới thiệu Crystal Report 167

II Tạo báo biểu 167

II.1 Nguồn dữ liệu cho báo biểu 169

II.2 Sử dụng Crystal Report Viewer để hiển thị báo biểu 170

Trang 8

II.3 Nguồn dữ liệu cho báo biểu từ DataSet 171

II.4 Định lại dữ liệu cho báo biểu từ nguồn CSDL 173

II.5 Lọc dữ liệu báo biểu 175

II.6 Truyền tham số cho báo biểu 175

II.7 Các loại kết xuất báo biểu 175

ĐỀ THI MẪU CUỐI HỌC PHẦN 177

ĐỀ THI MẪU KIỂM TRA CHUYÊN MÔN GIÁO VIÊN 181

Trang 9

GIỚI THIỆU

Sau khi hoàn thành khóa học này, học viên sẽ có các khả năng:

ƒ Lập trình hướng đối tượng với Visual Basic Net

ƒ Lập trình cơ sở dữ liệu với ADO.Net

ƒ Xây dựng ứng dụng với Visual Basic Net

Với thời lượng là 36 tiết LT và 60 tiết TH được phân bổ như sau:

1 Tổng quan Net Framework, Visual Studio Net 3

5 Đối tượng Connection, Command và DataAdapter 2 5

6 DataSet, DataTable, DataRelation Và DataView 6 5

Tổng số tiết: 36 60

Trang 10

GIÁO TRÌNH LÝ THUYẾT

Sử dụng giáo trình “Visual Basic.Net” tập 2 của Nhóm Chuyên môn Lập trình

TÀI LIỆU THAM KHẢO

Trang 11

HƯỚNG DẪN PHẦN LÝ THUYẾT

Bài 1 TỔNG QUAN NET FRAMEWORK

Tóm tắt

Lý thuyết 3 tiết

Giới thiệu các khái niệm cơ bản và

cấu trúc của Net Framework, đồng

thời thông qua việc trình bày một

ứng dụng để giới thiệu về Visual

Studio Net

1 Tổng quan Net Framework

2 Cấu trúc Net Framework

3 Ứng dụng đầu tiên

Trang 12

I Tổng quan về Net Framework

Ngày 13/02/2002, Microsoft chính thức giới thiệu bộ công cụ lập trình mới của mình – Visual Studio.NET Sau 4 năm không tung ra phiên bản mới cho bộ Visual Studio 98, lần này Microsoft quyết tâm đặt cược vào thắng lợi của công nghệ mới: Microsoft NET

Trong thời đại công nghệ thông tin, dữ liệu trở nên quan trọng đến nỗi người ta mong muốn tất cả mọi thứ như điện thoại di động, máy tính xách tay, các máy PDA (Personal Digital Assistant) đều phải kết nối với nhau để chia sẽ dữ liệu và việc sử dụng các phần mềm để quản lý, sử dụng những dữ liệu đó là

"không biên giới" Ứng dụng phải sẵn sàng để sử dụng từ trên máy tính cũng như trên điện thoại di động 24/24 giờ, ít lỗi, xử lý nhanh và bảo mật chặt chẽ

Các yêu cầu này làm đau đầu những chuyên gia phát triển ứng dụng khi phần mềm chủ yếu viết cho

hệ thống này không chạy trên một hệ thống khác bởi nhiều lý do như khác biệt về hệ điều hành, khác biệt về chuẩn giao tiếp dữ liệu, mạng Thời gian và chi phí càng trở nên quý báu vì bạn không phải là người duy nhất biết lập trình Làm sao sử dụng lại những ứng dụng đã viết để mở rộng thêm nhưng vẫn tương thích với những kỹ thuật mới?

Sun Microsystems đi đầu trong việc cung cấp giải pháp với Java Java chạy ổn định trên các hệ điều hành Unix hay Solaris của Sun từ máy chủ tới các thiết bị cầm tay hay thậm chí trên các hệ điều hành Windows của Microsoft (một ví dụ rõ ràng đó là hầu hết các điện thoại di động thế hệ mới đều có phần mềm viết bằng Java) Kiến trúc lập trình dựa trên Java bytecode và thi hành trên máy ảo Java (JVM – Java Virtual Marchine) cho phép các ứng dụng Java chạy trên bất cứ hệ điều hành nào Mô hình lập trình thuần hướng đối tượng của Java giúp các lập trình viên tùy ý sử dụng lại và mở rộng các đối tượng có sẵn Các nhà cung cấp công cụ lập trình dựa vào đây đểø gắn vào các môi trường phát triển ứng dụng bằng Java của mình đủ các thư viện lập trình nhằm hỗ trợ các lập trình viên

Sức mạnh của Java dường như quá lớn đến nỗi Microsoft từng phải chống trả bằng cách loại bỏ Java Virtual Marchine khỏi các phiên bản hệ điều hành Windows mới của mình như Windows XP Tuy nhiên, Microsoft thừa hiểu rằng dù không cung cấp JVM, Sun cũng có thể tự cung cấp các JVM package cho những người dùng Windows Đó là lý do tại sao nhà khổng lồ quyết định bắt tay xây dựng lại từ đầu một nền tảng phát triển ứng dụng mới: Microsoft.NET Framework

Vì ra đời khá muộn so với Java, Net bị coi là khá giống với bậc "tiền bối" của nó .NET sử dụng kỹ thuật lập trình thuần hướng đối tượng như Java và cũng thi hành trên một máy ảo là CLR (Common Language Runtime)

Bộ thư viện của NET Framework bao gồm hơn 5000 lớp đối tượng đủ sức hỗ trợ hầu hết các yêu cầu

từ phía lập trình viên Công nghệ mã nguồn mở được đưa vào NET thay cho COM và DCOM đang được các lập trình viên của Microsoft sử dụng Với COM, những thành phần (COMponent) đã được xây dựng như các lớp thư viện hay các control chỉ có thể sử dụng lại Bạn không thể mở rộng chúng hay viết lại cho thích hợp với ứng dụng của mình Trong NET, mọi thành phần đều có thể kế thừa và mở rộng, một kỹ thuật mới được đưa ra thay cho COM là Assembly Distributed Component hay DCOM là kỹ thuật dùng để phối hợp các thành phần trên nhiều máy tính giờ đây được thay thế trong NET bởi chuẩn công nghệ mới là SOAP và XML Web Service

Cùng với SOAP (Simple Objects Access Protocol), XML Web Service mở rộng khả năng của DCOM từ chỗ chỉ phối hợp các máy trong Intranet, nằm sau Firewall ra Internet Các công ty com giờ đây mặc sức xây dựng các phần mềm độc lập của mình những vẫn có thể phối hợp với nhau để đem tới khách

Trang 13

hàng các dịch vụ e-commerce đa dạng nhưng thống nhất

XML (eXtended Markup Language) - chuẩn lưu trữ và trao đổi dữ liệu mới nhất, hiệu quả nhất hiện nay cũng được NET hỗ trợ khá đầy đủ Chỉ cần một công cụ chuyển đổi đơn giản mà thậm chí bạn cũng có thể tự viết (đương nhiên khi bạn đã biết về XML), các dữ liệu trước kia của bạn dù ở bất cứ dạng lưu trữ nào cũng có thể chuyển về dạng XML để sử dụng trong các ứng dụng mới hay trao đổi với hệ thống ứng dụng khác .NET giờ đây cũng sử dụng kỹ thuật truy cập cơ sở dữ liệu mới là ADO.NET để bổ sung cho kỹ thuật ADO - trước kia vốn là thành phần mạnh nhất trong MDAC (Microsoft Data Access Component gồm có 3 phần DB-Lib, OLEDB và ADO)- khả năng làm việc với dữ liệu XML Bạn cũng nên biết rằng kể từ SQL Server 2000, XML đã được hỗ trợ trong phần mềm quản trị cơ sở dữ liệu nổi tiếng nhất của Microsoft và phiên bản SQL Server sắp tới chắc chắn không xem nhẹ XML chút nào Cùng với XML, SOAP và Web service đang là những vũ khí mạnh nhất mà Microsoft sử dụng để qua mặt Java Cũng không thể quên CLR, máy ảo của các ứng dụng viết bằng NET Common Language Runtime (CLR) được sử dụng để thực hiện các đoạn chương trình ở dạng mã IL (Immediate Language) Điều này có nghĩa là dầu bạn lập trình bằng ngôn ngữ nào bạn thích, một khi có thể biên dịch sang mã IL, bạn sẽ yên tâm rằng CLR sẽ thi hành nó một cách suôn sẽ Giống như JVM của Java, CLR bao gồm trong nó nhiều thành phần quản lý ứng dụng khi thi hành như JIT (Just In Time compiler) để biên dịch ngay tại thời điểm thi hành những đoạn lệnh IL cần thiết hay Garbage Collector giữ vai trò thu gom

"rác rưởi" mà ứng dụng để sót lại nhằm sử dụng hiệu quả bộ nhớ Ngoài ra, CLR không quên hỗ trợ việc quản lý các ứng dụng trước đây viết trên kỹ thuật COM Nó đảm bảo cho bạn không phải bỏ đi những gì đã "dày công xây đắp" trước đây mà vẫn có thể phối hợp nó với các ứng dụng mới viết trên NET

Một điểm nữa không thể bỏ qua khi giới thiệu về NET Framework, đó là thành phần Common Language Specification Vai trò của thành phần này là đảm bảo sự tương tác giữa các đối tượng bất chấp chúng được xây dựng trong ngôn ngữ nào, miễn là chúng cung cấp được những thành phần chung của các ngôn ngữ muốn tương tác Thành phần Common Language Runtime được xây dựng với mục đích mô tả các yêu cầu cần thiết của một ngôn ngữ để có thể sử dụng trong lập trình và biên dịch thành mã IL Một khi đã ở dạng mã IL, ứng dụng đã có thể chạy trên CLR và như thế bạn đã có khả năng dùng ngôn ngữ lập trình mà mình yêu thích để tận dụng các khả năng mạnh mẽ của NET

Trước đây, các lập trình viên đã quen dùng Visual C++ hay Visual Basic 6 hay Visual InterDEV mỗi khi cần xây dựng một loại ứng dụng khác phải chuyển qua lại giữa các môi trường lập trình khác nhau của Visual Studio 98 và chợt nhận ra rằng VB 6 không có điểm mạnh này của C++ hoặc C++ không làm nhanh được chức năng kia của VB 6,… sẽ cảm thấy nhẹ nhõm vì với NET giờ đây, mọi sức mạnh của các ngôn ngữ lập trình đều như nhau .NET Framework hỗ trợ một bộ thư viện lập trình đồ sộ hơn

5000 lớp đối tượng để bạn đủ khả năng xây dựng các loại ứng dụng từ kiểu console (ứng dụng dòng lệnh), ứng dụng trên Windows cho tới các ứng dụng Web, các service của hệ điều hành và các Web service trên Internet

Trước khi chấm dứt phần giới giới thiệu, cũng cần phải đề cập đến bộ control đồ sộ và mới mẻ của NET Rất nhiều điều khiển mới được thêm vào NET Framework để hỗ trợ cho các ứng dụng có giao diện đồ họa trên Windows và trên Web một "vẻ mặt" mới Những công cụ này không chỉ hỗ trợ chuẩn font chữ Unicode nhưng còn kết hợp với khả năng xây dựng ứng dụng mang tính "quốc tế" khi người lập trình phải đáp ứng nhiều ngôn ngữ, nhiều định dạng ngày giờ hay tiền tệ khác nhau

Microsoft không quên đem lại một môi trường phát triển ứng dụng sử dụng giao diện đồ hoạ, tích hợp nhiều chức năng, tiện ích khác nhau để hỗ trợ tối đa cho các lập trình viên, đó chính là Visual

Trang 14

Studio.NET

.NET Framework là thành phần quan trọng nhất trong kỹ thuật phát triển ứng dụng dựa trên NET Visual Studio sẽ giúp người lập trình nắm bắt và tận dụng tốt hơn những chức năng của NET Framework Phần dưới đây giới thiệu những kiến thức cơ bản nhất về NET Framework trước khi chúng

ta thực sự bắt tay vào làm việc với Visual Studio.NET và VB.NET

II Cấu trúc Net Framework

Trong phần này, chúng ta tìm hiểu các thành phần bên trong NET Framework

II.2 Cung cấp các chức năng xây dựng ứng dụng

Với vai trò quản lý việc xây dựng và thi hành ứng dụng, NET Framework cung cấp các lớp đối tượng (Class) để bạn có thể gọi thi hành các chức năng mà đối tượng đó cung cấp Tuy nhiên, lời kêu gọi của bạn có được "hưởng ứng" hay không còn tùy thuộc vào khả năng của hệ điều hành đang chạy ứng dụng của bạn

Các chức năng đơn giản như hiển thị một hộp thông báo (Messagebox) sẽ được NET Framework sử dụng các hàm API của Windows Chức năng phức tạp hơn như sử dụng các COMponent sẽ yêu cầu Windows phải cài đặt Microsoft Transaction Server (MTS) hay các chức năng trên Web cần Windows phải cài đặt Internet Information Server (IIS)

Như vậy, bạn cần biết rằng lựa chọn một hệ điều hành để cài đặt và sử dụng NET Framework cũng không kém phần quan trọng Cài đặt NET Framework trên các hệ điều hành Windows 2000, 2000

Operating System Common Language Runtime

Trang 15

Server, XP, XP.NET, 2003 Server sẽ đơn giản và tiện dụng hơn trong khi lập trình

II.3 Common Language Runtime

Là thành phần "kết nối" giữa các phần khác trong NET Framework với hệ điều hành Common Language Runtime (CLR) giữ vai trò quản lý việc thi hành các ứng dụng viết bằng NET trên Windows CLR sẽ thông dịch các lời gọi từ chương trình cho Windows thi hành, đảm bảo ứng dụng không chiếm dụng và sử dụng tràn lan tài nguyên của hệ thống Nó cũng không cho phép các lệnh "nguy hiểm" được thi hành Các chức năng này được thực thi bởi các thành phần bên trong CLR như Class loader, Just In Time compiler, Garbage collector, Exception handler, COM marshaller, Security engine,…

Trong các phiên bản hệ điều hành Windows mới như XP.NET và Windows 2003, CLR được gắn kèm với

hệ điều hành Điều này đảm bảo ứng dụng viết ra trên máy tính của chúng ta sẽ chạy trên máy tính khác mà không cần cài đặt, các bước thực hiện chỉ đơn giản là một lệnh copy của DOS!

II.4 Bộ thư viện các lớp đối tượng

Nếu phải giải nghĩa từ "Framework" trong thuật ngữ NET Framework thì đây là lúc thích hợp nhất Framework chính là một tập hợp hay thư viện các lớp đối tượng hỗ trợ người lập trình khi xây dựng ứng dụng Có thể một số người trong chúng ta đã nghe qua về MFC và JFC Microsoft Foundation Class

là bộ thư viện mà lập trình viên Visual C++ sử dụng trong khi Java Foundation Class là bộ thư viện dành cho các lập trình viên Java Giờ đây, có thể coi NET Framework là bộ thư viện dành cho các lập trình viên NET

Với hơn 5000 lớp đối tượng để gọi thực hiện đủ các loại dịch vụ từ hệ điều hành, chúng ta có thể bắt đầu xây dựng ứng dụng bằng Notepad.exe!!!… Nhiều người lầm tưởng rằng các môi trường phát triển phần mềm như Visual Studio 98 hay Visual Studio.NET là tất cả những gì cần để viết chương trình Thực ra, chúng là những phần mềm dùng làm "vỏ bọc" bên ngoài Với chúng, chúng ta sẽ viết được các đoạn lệnh đủ các màu xanh, đỏ; lỗi cú pháp báo ngay khi đang gõ lệnh; thuộc tính của các đối tượng được đặt ngay trên cửa sổ properties, giao diện được thiết kế theo phong cách trực quan… Như vậy, chúng ta có thể hình dung được tầm quan trọng của NET Framework Nếu không có cái cốt lõi NET Framework, Visual Studio.NET cũng chỉ là cái vỏ bọc! Nhưng nếu không có Visual Studio.NET, công việc của lập trình viên NET cũng lắm bước gian nan!

II.4.1 Base class library – thư viện các lớp cơ sở

Đây là thư viện các lớp cơ bản nhất, được dùng trong khi lập trình hay bản thân những người xây dựng NET Framework cũng phải dùng nó để xây dựng các lớp cao hơn Ví dụ các lớp trong thư viện này là String, Integer, Exception,…

II.4.2 ADO.NET và XML

Bộ thư viện này gồm các lớp dùng để xử lý dữ liệu ADO.NET thay thế ADO để trong việc thao tác với các dữ liệu thông thường Các lớp đối tượng XML được cung cấp để bạn xử lý các dữ liệu theo định dạng mới: XML Các ví dụ cho bộ thư viện này là SqlDataAdapter, SqlCommand, DataSet, XMLReader, XMLWriter,…

II.4.3 ASP.NET

Bộ thư viện các lớp đối tượng dùng trong việc xây dựng các ứng dụng Web ASP.NET không phải là phiên bản mới của ASP 3.0 Ứng dụng web xây dựng bằng ASP.NET tận dụng được toàn bộ khả năng

Trang 16

của NET Framework Bên cạnh đó là một "phong cách" lập trình mới mà Microsoft đặt cho nó một tên gọi rất kêu : code behind Đây là cách mà lập trình viên xây dựng các ứng dụng Windows based thường sử dụng – giao diện và lệnh được tách riêng Tuy nhiên, nếu bạn đã từng quen với việc lập trình ứng dụng web, đây đúng là một sự "đổi đời" vì bạn đã được giải phóng khỏi mớ lệnh HTML lộn xộn tới hoa cả mắt

Sự xuất hiện của ASP.NET làm cân xứng giữa quá trình xây dựng ứng dụng trên Windows và Web ASP.NET cung cấp một bộ các Server Control để lập trình viên bắt sự kiện và xử lý dữ liệu của ứng dụng như đang làm việc với ứng dụng Windows Nó cũng cho phép chúng ta chuyển một ứng dụng trước đây viết chỉ để chạy trên Windows thành một ứng dụng Web khá dễ dàng Ví dụ cho các lớp trong thư viện này là WebControl, HTMLControl, …

II.4.4 Web services

Web services có thể hiểu khá sát nghĩa là các dịch vụ được cung cấp qua Web (hay Internet) Dịch vụ được coi là Web service không nhằm vào người dùng mà nhằm vào người xây dựng phần mềm Web service có thể dùng để cung cấp các dữ liệu hay một chức năng tính toán

Ví dụ, công ty du lịch của bạn đang sử dụng một hệ thống phần mềm để ghi nhận thông tin về khách

du lịch đăng ký đi các tour Để thực hiện việc đặt phòng khách sạn tại địa điểm du lịch, công ty cần biết thông tin về phòng trống tại các khách sạn Khách sạn có thể cung cấp một Web service để cho biết thông tin về các phòng trống tại một thời điểm Dựa vào đó, phần mềm của bạn sẽ biết rằng liệu

có đủ chỗ để đặt phòng cho khách du lịch không? Nếu đủ, phần mềm lại có thể dùng một Web service khác cung cấp chức năng đặt phòng để thuê khách sạn Điểm lợi của Web service ở đây là bạn không cần một người làm việc liên lạc với khách sạn để hỏi thông tin phòng, sau đó, với đủ các thông tin về nhiều loại phòng người đó sẽ xác định loại phòng nào cần đặt, số lượng đặt bao nhiêu, đủ hay không

đủ rồi lại liên lạc lại với khách sạn để đặt phòng Đừng quên là khách sạn lúc này cũng cần có người để làm việc với nhân viên của bạn và chưa chắc họ có thể liên lạc thành công

Web service được cung cấp dựa vào ASP.NET và sự hỗ trợ từ phía hệ điều hành của Internet Information Server

II.4.5 Window form

Bộ thư viện về Window form gồm các lớp đối tượng dành cho việc xây dựng các ứng dụng Windows based Việc xây dựng ứng dụng loại này vẫn được hỗ trợ tốt từ trước tới nay bởi các công cụ và ngôn ngữ lập trình của Microsoft Giờ đây, ứng dụng chỉ chạy trên Windows sẽ có thể làm việc với ứng dụng Web dựa vào Web service Ví dụ về các lớp trong thư viện này là: Form, UserControl,…

II.5 Phân nhóm các lớp đối tượng theo loại

Một khái niệm không được thể hiện trong hình vẽ trên nhưng cần đề cập đến là Namespace Đây là tên gọi một nhóm các lớp đối tượng phục vụ cho một mục đích nào đó Chẳng hạn, các lớp đối tượng xử lý

dữ liệu sẽ đặt trong một namespace tên là Data Các lớp đối tượng dành cho việc vẽ hay hiển thị chữ đặt trong namespace tên là Drawing

Một namespace có thể là con của một namespace lớn hơn Namespace lớn nhất trong NET Framework

là System

Lợi điểm của Namespace là phân nhóm các lớp đối tượng, giúp người dùng dễ nhận biết và sử dụng Ngoài ra, Namespace tránh việc các lớp đối tượng có tên trùng với nhau không sử dụng được .NET Framework cho phép chúng ta tạo ra các lớp đối tượng và các Namespace của riêng mình Với hơn

Trang 17

5000 tên có sẵn, việc đặt trùng tên lớp của mình với một lớp đối tượng đã có là điều khó tránh khỏi Namespace cho phép việc này xảy ra bằng cách sử dụng một tên đầy đủ để nói đến một lớp đối tượng

Ví dụ, nếu muốn dùng lớp WebControls, chúng ta có thể dùng tên tắt của nó là WebControls hay tên đầy đủ là System.Web.UI.WebControls

Hệ thống không gian tên (Namespace)

Đặc điểm của bộ thư viện các đối tượng NET Framework là sự trải rộng để hỗ trợ tất cả các ngôn ngữ lập trình NET như chúng ta thấy ở hình vẽ trên Điều này sẽ giúp những người mới bắt đầu ít bận tâm hơn trong việc lựa chọn ngôn ngữ lập trình cho mình vì tất cả các ngôn ngữ đều mạnh ngang nhau Cũng bằng cách sử dụng các lớp đối tượng để xây dựng ứng dụng, NET Framework buộc người lập trình phải sử dụng kỹ thuật lập trình hướng đối tượng (sẽ được nói tới trong các chương sau)

III Ứng dụng đầu tiên

III.1 Môi trường lập trình VS NET

Chúng ta sẽ bắt đầu bằng việc làm quen với môi trường phát triển ứng dụng (IDE) của Visual Studio.NET VS.NET có nhiều thay đổi so với VS 98

Hình dưới là màn hình khởi đầu của VS.NET 2003 Vùng làm việc chính giữa đang hiển thị trang "Start page" với 3 mục chính: Projects, Online Resource và My Profile

My Profile ghi nhớ thông tin về người sử dụng VS.NET Các thông tin chủ yếu liên quan đến cách chúng

ta sẽ sử dụng VS.NET như thế nào Chẳng hạn như cách hiển thị các cửa sổ, các phím tắt, cách VS.NET hiển thị màn hình giúp đỡ,…

Online Resource cần một kết nối với Internet để download các thông tin từ website của Microsoft về máy tính của chúng ta

Projects liệt kê các project mà chúng ta đã làm việc trong thời gian gần đây Trên mục này, chúng ta cũng có thể tạo mới một project bằng cách nhấn vào nút New Project

Các cửa sổ phụ nhìn thấy trên màn hình gồm có:

Sy tem

Sy tem.Web

Glo al z tio Diag ostic

Co fig ratio Col e tio s

UI

HtmlCo trols

We Co trols

Sy tem.Drawin Imagin g

Drawin 2D

Te t Printin g

Sy tem.Win ows.F rms

De ig

Trang 18

Màn hình khởi đầu của VS.NET 2003 với Tab My Profile hiện hành

Solution Explorer quản lý một hay nhiều project được nhóm với nhau để tạo thành một solution (giải pháp hay một hệ thống ứng dụng hoàn chỉnh) Nếu chuyển qua tab Class (Clas…), cửa sổ này liệt kê các lớp đối tượng trong ứng dụng đang làm việc Tab Content (Cont…) sẽ hiện thị mục lục của phần giúp đỡ của VS.NET

Dynamic help là cửa sổ giúp đỡ thông minh mới có trong VS.NET Trong khi lập trình, chúng ta chỉ cần đưa chuột tới một từ khoá như Class, For,… Dynamic help sẽ tự động tìm ra những mục giúp đỡ liên quan đế từ khoá đó Nếu chúng ta đang mở một project, phần cửa sổ dành cho Dynamic help còn dùng để hiển thị cửa số Property giống như của VB 6

Toolbox liệt kê các control dành cho việc thiết kế giao diện Một tiện lợi của VS.NET cho các màn hình

độ phân giải thấp là chúng ta có thể thu gọn các cửa sổ kiểu như Solution Explorer và Dynamic help thành tab nằm dọc theo màn hình như cửa sổ Toolbox chúng ta thấy trong hình Nếu có nhiều tab, biểu tượng của tab đó sẽ được hiển thị Trong hình vẽ một tab khác có tên là Server Explorer được hiển thị với biểu tượng 2 chiếc máy tính phía trên tab Toolbox

III.2 Tạo mới một project

Có 2 cách tạo mới một project: chọn menu File | New | Project hay nhấn nút New Project trên tab Projects của trang khởi động Hình dưới minh họa cửa sổ New Project hiện ra khi bạn chọn chức năng tạo mới

Mục Project Type liệt kê tất cả các loại project có thể tạo bằng VS.NET Máy tính của chúng tôi chỉ cài một ngôn ngữ VB.NET thay vì 4 ngôn ngữ là VB.NET, C#, C++ và J# nên hình dưới chỉ cho thấy loại Visual Basic Project mà không thấy có C# project hay C++ project…

Chỉ riêng với loại VB.Net project, chúng ta đã thấy mục Templates liệt kê rất nhiều kiểu ứng dụng khác nhau Một template là một mẫu ứng dụng cụ thể mà VS.NET sẽ phát sinh trước một số đoạn lệnh nhất

Trang 19

định Ví dụ, loại template Windows Application sẽ được VS.NET tạo sẵn một form và phát sinh lệnh cần thiết để chúng ta có thể chạy ứng dụng ngay sau khi vừa tạo mới!

Hãy bắt đầu bằng ứng dụng phổ biến nhất : Windows Application

Đặt lại tên cho project trong phần Name là “Hello” và định lại đường dẫn cho thư mục lưu trữ ứng dụng trong phần Location (tuỳ ý và nếu cần thiết) Cuối cùng, nhấn OK để VS.NET phát sinh project mới

Cửa sổ tạo một project

III.3 Ứng dụng Hello

Môi trường phát triển ứng dụng VS.Net

Trang 20

Trong ứng dụng này, chúng ta sẽ thực hiện các chức năng sau:

– Thiết kế giao diện để làm quen với control mới và thuộc tính mới của các control

– Thiết kế hệ thống thực đơn (menu)

– Tìm hiểu cấu trúc của một ứng dụng Windows Application về mặt mã lệnh

– Viết lệnh và làm quen với giao diện mới của cửa sổ code editor

– Biên dịch, chạy thử ứng dụng

– Tìm hiểu danh sách các file của project

Trước hết, nhấn đúp trên form để xem cửa sổ code editor với các đoạn lệnh của form Form1

Cửa sổ viết lệnh của Form (Code editor)

Chúng ta sẽ thấy các dòng lệnh nằm trong một mục được khai báo là Class Form1 Class là một lớp đối tượng và điều này cho thấy ngay bản chất lập trình hướng đối tượng (HĐT) của NET Tiếp theo dòng khai báo là đoạn lệnh:

Ví dụ:

Inherits System.Windows.Forms.Form

Inherits có nghĩa là "kế thừa" Trong lập trình HĐT, điều này có nghĩa là Class được khai báo có đặc điểm giống hoàn toàn với class mà nó thừa kế Ở đây, class mà Form1 thừa kế là System.Windows.Forms.Form Như vậy, Form1 sẽ có đặc điểm chung giống với bất kỳ form nào trong các ứng dụng Windows: Một vùng hình chữ nhật, có thanh tiêu đề, các hộp Maximize, Minimize, X; có thể thay đổi kích thước,…

Tạm bỏ qua phần Windows Form designer generated code để xem phần thủ tục Form1_Load:

Ví dụ: Thủ tục Form1_Load

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _

System.EventArgs) Handles MyBase.Load

End Sub

Như đã từng quen với VB 6, chúng ta biết rằng đây chính là thủ tục bẫy sự kiện Load của form xảy ra khi chương trình vừa được thi hành Hãy chú ý đoạn Handles MyBase.Load ở cuối phần khai báo Với mỗi thủ tục xử lý sự kiện, giờ đây, VB.NET dùng từ khoá Handles để mô tả sự kiện sẽ xử lý Viết đoạn lệnh sau đây để hiển thị một hộp thông báo trong thủ tục Form1_Load:

MsgBox("Form load!!!")

Nhấn F5 để chạy thử chương trình, một hộp thông báo hiển thị câu "Form load!!!" trước khi form được hiện ra Bây giờ, chúng ta hãy bỏ phần Handles MyBase.Load và chạy lại : hộp thông báo không còn hiện ra được nữa – nghĩa là không có dòng lệnh nào cho xử lý sự kiện Load của form

Trang 21

III.4 Windows Form Designer

Trên VB 6, các chi tiết thiết kế giao diện trên một form sẽ được dấu đi trong cửa sổ lệnh mặc dù vẫn được ghi vào tập tin frm Trên VB.NET, mọi chi tiết thiết kế giao diện đều sử dụng lệnh Windows Form Designer cho phép chúng ta thiết kế giao diện bình thường và sẽ tự phát sinh những đoạn lệnh này

Hãy thiết kế form để có giao diện như sau:

Một chú ý nhỏ là Label control không còn sử dụng thuộc tính Caption nữa và cả đối tượng form cũng vậy Các đối tượng control trên NET đều thống nhất sử dụng thuộc tính Text

để hiển thị chuỗi ký tự Bây giờ, chúng ta hãy quay trở lại cửa sổ Code editor và nhấn chuột vào dấu + trong phần Windows Form Designer

Chức năng mới của Code editor là thu hẹp các đoạn lệnh thành một dòng ghi chú để toàn bộ phần mã lệnh trở nên ngắn hơn Để làm việc này, bạn sử dụng từ khoá #Region "ghi chú…" và #End Region Các đoạn lệnh nằm giữa #Region và #End Region sẽ được thu lại chỉ còn một dòng với nội dung là phần ghi chú và dấu + ở phía trước Windows Form Designer đã sử dụng chức năng này để phát sinh đoạn lệnh thiết kế giao diện cho form

Giao diện form cần thiết kế

Trang 22

Chúng ta sẽ đi vào xem xét chi tiết đoạn lệnh được phát sinh trên đây để hiểu rõ thêm một vài điểm trong lập trình hướng đối tượng

Trong lập trình HĐT, mỗi một đối tượng (object) đều phải có một lớp đối tượng (class) định nghĩa nó Lớp đối tượng chỉ là một khái niệm chẳng hạn như Máy tính, còn đối tượng là một cái máy tính cụ thể chúng ta đang dùng Một lớp được định nghĩa trong VB.NET bằng từ khoá Class như trong chương trình, chúng ta có một lớp là Form1 Từ đây, chúng ta dùng từ class thay cho cụm từ "lớp đối tượng"

để ngắn gọn hơn

Một class cần định nghĩa cách đối tượng của nó được tạo ra và huỷ đi Điều này giống như việc Toyota tạo ra một model xe hơi mới có tên là VIOS sẽ định nghĩa quy trình sản xuất ra một chiếc VIOS cụ thể như thế nào Thủ tục mô tả cách tạo ra một đối tượng của class phải đặt tên là New Trong đoạn lệnh, bạn thấy class Form1 cũng có một thủ tục New Thủ tục định nghĩa cách huỷ đi một đối tượng gọi là Dispose

Sau khi các chiếc xe VIOS được đưa vào sử dụng, Toyota nhận được phản hồi từ khách hàng và quyết định đưa ra một phiên bản VIOS mới hơn là VIOS Pro VIOS Pro chính là một model mới dựa trên model VIOS trước đó với một số chức năng cải tiến và vài thiết bị gắn thêm Trong lập trình HĐT, ta gọi đây là sự kế thừa Trở lại phần khai báo Class Form1, bạn sẽ thấy phần Inherits System.Windows.Forms.Form Điều này có nghĩa là class Form1 kế thừa đặc điểm của class Form Dĩ nhiên các kỹ sư của Toyota sẽ không bỏ thời gian định nghĩa lại cách tạo ra một chiếc VIOS Pro, thay vào đó họ sẽ mô tả rằng "một chiếc VIOS Pro được tạo ra giống như một chiếc VIOS cộng thêm một số thay đổi …" Lập trình HĐT cũng dùng cách này, chúng ta thấy trong Sub New() có đoạn lệnh MyBase.New() Từ khoá MyBase dùng để nói đến lớp cha của Form1 tức Form Như thế, Form1 sẽ được tạo ra giống như một Form bình thường cộng với một vài thay đổi Những thay đổi này được liệt

kê trong phần InitializeComponent()

Form1 là một Form bình thường mà chúng ta đã gắn thêm một label và một textbox Thủ tục InitializeComponent() mô tả cách chúng ta gắn thêm label và textbox đó

Ví dụ:Nội dung thủ tục InitializeComponent()

Friend WithEvents Label1 As System.Windows.Forms.Label

Friend WithEvents txtTen As System.Windows.Forms.TextBox

<System.Diagnostics.DebuggerStepThrough()> Private Sub

InitializeComponent()

Me.Label1 = New System.Windows.Forms.Label

Me.txtTen = New System.Windows.Forms.TextBox

Trang 23

Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)

Me.ClientSize = New System.Drawing.Size(296,69)

có nghĩa là chúng ta đã có thể sử dụng đối tượng Điều này giống như việc đặt hãng Toyota một chiếc VIOS và phải đợi họ giao hàng trước khi sử dụng Trong lập trình HĐT, biến kiểu đối tượng sau khi khai báo cần được "tạo mới" Đây là lý do có hai dòng lệnh:

Me.Label1 = New System.Windows.Forms.Label

Me.txtTen = New System.Windows.Forms.TextBox

Từ khoá Me cũng như các đoạn lệnh còn lại không xa lạ với chúng ta Ở đây, Designer đang khởi gán các thuộc tính cho Label1 và txtTen Một chú ý nhỏ là để đặt vị trí của Label hay TextBox trên Form1, designer sử dụng một điểm để canh góc trên bên trái Điểm cũng là một đối tượng của class Point và được tạo ra bằng lệnh New System.Drawing.Point(x,y)

Hai dòng lệnh Controls.Add(…) làm công việc "bắt vít" hai điều khiển của chúng ta vào Form1

Me.LinkLbl = New System.Windows.Forms.LinkLabel

Trước mục ghi chú ‘Form1, thêm đoạn lệnh để đặt thuộc tính cho LinkLabel:

Ví dụ: Thủ tục Form1_Load

'LinkLbl

Me.LinkLbl.Location = New System.Drawing.Point(112, 48)

Trang 24

Me.Controls.Add(Me.LinkLbl)

Thêm các điều khiển vào form

Bây giờ, chuyển sang cửa sổ thiết kế giao diện để xem LinkLabel của chúng ta được đặt ở đâu Tiếp tục thiết kế giao diện cho Form1 theo hình dưới đây:

Thực đơn của form

Menu của form là một điều khiển có tên là MainMenu Khi được đưa vào form, điều khiển này sẽ nằm trong phần đáy màn hình như trên hình trên Mục Type Here hiện ra tại vị trí của menu để chúng ta thiết kế các mục trong menu Hãy xem hình để biết cấu trúc của menu cần thiết kế

Thêm các đoạn lệnh xử lý sự kiện sau vào chương trình:

Ví dụ:

Private Sub cmdHello_Click(ByVal sender As System.Object, ByVal e As _

System.EventArgs) Handles cmdHello.Click

Dim ten As String

Trang 25

As System.EventArgs) Handles mnuGioiThieu.Click

MsgBox("Chương trình VB.NET đầu tiên.")

End Sub

Private Sub mnuThoat_Click(ByVal sender As System.Object, ByVal e As _

ta dùng một đối tượng P của class Process Đây là một đối tượng "hệ thống" chưa từng có trong VB 6 Đối tượng này có thể khởi động hay tắt các ứng dụng có trên máy một cách đơn giản như chúng ta được thấy

III.6 Kỹ thuật lập trình hướng đối tượng

Chúng ta sẽ tìm hiểu thêm về cấu trúc của chương trình Hello để nắm vững cách VS.NET tổ chức một project và hiểu thêm về kỹ thuật lập trình HĐT Hãy xem hình cửa ổ Solution Explorer bên dưới Chúng

ta đang ở tab Solution (Soluti…) và VS.NET trình bày cấu trúc của project dạng cây:

Trang 26

Cửa sổ Solution Explorer hiển thị các tham chiếu

Form1.vb là đối tượng đại diện cho Form1 trong chương trình Đây cũng là một file cùng tên lưu trong thư mục của project Hello

Reference là một mục liệt kê tất cả các lớp thư viện mà chương trình của chúng ta đang "tham khảo" Mỗi mục trong Reference là một namespace hay một thư viện nhiều class Trong chương trình, chúng

ta chỉ có quyền khai báo biến đối tượng là một đối tượng của các class có trong namespace đã liệt kê trong phần References

Cửa sổ Class View

Có một số namespace chúng ta không sử dụng tới nhưng mặc định được VS.Net tham khảo tới khi tạo project mới Đó là System.XML Mặc dù đây là namespace rất cơ bản nhưng vì không dùng tới trong Hello, chúng ta có thể bỏ đi Nhắp chuột phải trên namespace và chọn mục Remove để xoá Bây giờ có thể nhấn F5 và chương trình vẫn chạy bình thường!

Trang 27

Kỹ thuật lập trình HĐT bao gồm hai điểm quan trọng: Xây dựng các lớp đối tượng (Component) và sử dụng lại những đối tượng có sẵn Một ứng dụng đơn giản có thể chỉ cần ghép nối những đối tượng có sẵn mà thành như trong ứng dụng Hello Reference chính là nơi khai báo những thành phần cần thiết

để ghép nối thành một ứng dụng và chúng ta không cần phải khai báo những thành phần thừa như System.XML

Với những ứng dụng phức tạp hơn, chúng ta sẽ cần tự mình tạo ra những đối tượng mới Trong ví dụ này, chúng ta sẽ tạo ra lớp đối tượng có tên là SayHi để nói lời chào tuỳ theo buổi sáng, trưa hay tối Trước hết, hãy chuyển qua tab Class trên cửa sổ Solution Explorer để xem cấu trúc của class Form1 (hình trên)

III.7 Xây dựng lớp đối tượng

Bây giờ, chúng ta sẽ bắt tay vào xây dựng lớp đối tượng đầu tiên: SayHi

Chọn menu Projects | Add Class… Cửa sổ Add new item sẽ hiện ra với đối tượng được thêm mới vào là một Class Bạn gõ vào phần Name chuỗi SayHi.vb và VS.NET sẽ tạo ra một class có tên là SayHi

Nội dung của SayHi hiện giờ chỉ là một khung khai báo lớp đối tượng:

Class vừa tạo xuất hiện trên Solution Explorer

Nếu bạn xem trên cửa sổ Solution Explorer thì lúc này sẽ thấy có hai class như hình trên bên trái Bạn hãy viết đoạn lệnh sau cho class SayHi:

Ví dụ:

Public Class SayHi

Dim mTen As String

Sub New(ByVal Ten As String)

Function Say() As String

Dim gio = Date.Now.Hour

Trang 28

If gio >= 5 And gio <= 12 Then

Say = "Good morning, " + mTen

ElseIf gio <= 18 Then

Say = "Good afternoon, " + mTen

Cửa sổ Class viewer có thêm class SayHi và các thành phần của nó

Chúng ta sẽ sửa lại đoạn lệnh trong nút cmdHello để xem cách dùng một đối tượng:

Ví dụ:

Private Sub cmdHello_Click(ByVal sender As System.Object, ByVal e As _

Dim sh As SayHi, LoiChao As String

Chúng ta đã vừa tạo ra một COMponent – class SayHi Một khi đã được tạo ra, component có thể được

sử dụng lại ở bất kỳ đâu Chúng ta sẽ đóng gói SayHi thành một file.DLL để sử dụng trong một project khác

Chọn menu File | Add project | New Project … Trong cửa sổ hiện ra, gõ tên của project là SayHi và chọn nút OK Một project mới được đưa vào Solution cùng với một class có sẵn là Class1

Vì chúng ta dùng project này để đóng gói class SayHi đã tạo trước đó nên hãy xoá bỏ Class1.vb bằng

Trang 29

cách nhắp chuột phải và chọn mục Delete Sau đó, đưa SayHi.vb vào project bằng cách nhắp chuột phải trên project SayHi và chọn mục Add | Add existing item… Tìm SayHi.vb trong thư mục Hello của project Hello và chọn Open

Project SayHi được đưa vào Solution Explorer

Trước khi thực hiện bước đóng gói, kiểm tra lại thuộc tính của project SayHi bằng cách chọn menu Project | Properties …

Cửa sổ Project Property Pages

Trong cửa sổ hiện ra, chúng ta sẽ thấy một số thông tin: Assembly name: SayHi, loại kết xuất (output type): Class library Root namespace: SayHi Phần Information ở dưới ghi tên file kết xuất là SayHi.dll Đóng cửa sổ lại và biên dịch project này bằng cách chọn menu Build | Build SayHi

Lúc này, chúng ta đã có file SayHi.dll và sẵn sàng sử dụng nó trong các ứng dụng khác Hình dưới hiển thị một phần cửa sổ Windows Explorer để xác định vị trí của file SayHi.dll

Kết quả biên dịch được lưu giữ trong thư mục Bin của ứng dụng

Tiếp theo đây, chúng ta sẽ xây dựng một ứng dụng console (giao diện dòng lệnh như của DOS) để sử dụng class SayHi đã tạo ra Chọn mục File | Close Solution để đóng solution hiện có

Trang 30

Tạo ứng dụng console

Chọn File | New project với template là Console Application Gõ tên của project là HelloConsole và click vào OK để tạo mới Một project rất đơn giản được tạo ra với một file là Module1.vb File này có nội dung như sau:

Nếu lúc này chạy thử chương trình, một cửa sổ DOS sẽ nháy lên rồi biến mất Ứng dụng chỉ chạy trong

"nháy mắt"! Chúng ta hãy thêm dòng lệnh sau trước khi nhấn lại phím F5

System.Console.ReadLine()

Khi chương trình chạy, chúng ta thấy một cửa sổ "đen ngòm" của DOS hiện ra với cursor nhấp nháy tại góc trên bên trái Dấu nhắc này có nghĩa ứng dụng đang chờ chúng ta nhấn phím Enter để kết thúc Bây giờ, hãy thực hiện bước "ghép nối" các thành phần có sẵn trong đó, thành phần ghép nối chính là SayHi Trong cửa sổ Solution Explorer, nhắp chuột phải trên mục Reference và chọn mục Add reference Chọn nút Browse và tìm file SayHi.dll Sau khi chọn Open, chúng ta sẽ thấy mục Selected Components liệt kê file SayHi.dll Chọn nút OK để tham chiếu

Trang 31

Chọn tham chiếu cho ứng dụng

Lúc này, trong mục Reference liệt kê namepace SayHi:

Reference sau khi tham chiếu tập tin SayHi.dll

Cuối cùng, chúng ta "bắt vít" cho SayHi vào ứng dụng của mình:

Khi chạy chương trình, bạn sẽ thấy cửa sổ hiện ra như bên dưới:

Cửa sổ chạy của ứng dụng console

Trang 32

III.9 Assembly - một loại DLL mới

DLL (Dynamic Link Library) là một loại file thực thi trên hệ điều hành Windows dùng để chứa các thư viện lớp đối tượng hay nói chung hơn là các Component Một component có thể gồm 1 hay nhiều DLL Trong ví dụ của chúng ta, SayHi chỉ có một file DLL là SayHi.dll mà thôi

Bằng cách tạo các component và đóng gói chúng thành các DLL, lập trình viên có thể tạo ra các thành phần có sẵn và sử dụng lại chúng ở nhiều project khác nhau Đơn cử một thành phần sử dụng lại

"không ai không biết" của Windows là comdlg32.dll Đây chính là thư viện các hộp thoại dùng chung như Open, Save, Print, Color,…

Viễn cảnh lập trình "lắp ráp" các thành phần khá tươi đẹp này có thể sẽ biến các lập trình viên thành các "tay ghiền" đồ chơi của Lego Tuy nhiên sử dụng những "đồ chơi" này chẳng dễ như chúng ta tưởng Vấn để bắt đầu ở chỗ một DLL do ai đó viết ra (chẳng hạn chính Microsoft) được nhiều phần mềm sử dụng Hai phần mềm A, B cài lên máy tính của chúng ta đều sử dụng DLL tên là X Một ngày

nọ, chúng ta không dùng A nữa và gỡ bỏ (Uninstall) nó khỏi máy Đương nhiên khi gỡ bỏ A, phần mềm

sẽ hỏi chúng ta có muốn xoá X khỏi hệ thống hay không Thế nhưng khổ nỗi chúng ta không biết X dùng để làm gì và có phần mềm nào khác dùng X nữa hay không Và nếu như gỡ bỏ X, ứng dụng B cũng hết sử dụng được

Bây giờ giả sử rằng dung lượng ổ cứng rất nhiều và chúng ta không gỡ bỏ các DLL khỏi máy tính làm

gì Nay chúng ta lại muốn cài đặt thêm một ứng dụng C khác nữa vào máy C là một phần mềm mới và

nó lại sử dụng một phiên bản X mới hơn vừa cập nhật Khi cài đặt vào máy, X mới được thay thế cho X

cũ và thế là cả A và B đều chằng hiểu gì về thành phần X mới này nên không chạy được nữa

Câu chuyện trên không phải hiếm hoi, các lập trình viên gọi nó là “DLL Hell” hay “địa ngục DLL” Khi muốn bán phần mềm cho chúng ta, chính họ phải lo giải quyết vấn đề này, không chỉ với riêng những DLL do họ viết ra và nâng cấp mới mà có khi cả những DLL của người khác nữa

Với kỹ thuật NET, giờ đây Microsoft đưa ra một định nghĩa mới cho DLL và cũng thay tên đổi họ cho

nó thành Assembly – thành phần lắp ráp DLL cũ không có khả năng tự mô tả nó với hệ điều hành Điều này dẫn đến việc mỗi phần mềm đều phải cài đặt (install hay setup) vào hệ điều hành Trong quá trình này, hầu hết các DLL sẽ được copy vào thư mục của Windows nên dẫn đến việc cái này ghi đè lên cái kia hay Windows có đủ thứ DLL trong đó Chưa hết, các class trong DLL sẽ phải đăng ký mã số của mình (ClassID) vào một mục để Windows quản lý gọi là Registry Nếu trong registry bị mất một ClassID nào đó thì Windows cũng đành chịu thua, không thể quản lý và thi hành class tương ứng được nữa Các Assembly xây dựng bởi NET cũng có phần mở rộng của tập tin là dll nhưng có khả năng tự mô tả chính bản thân mình thông qua một thành phần chứa ngay trong tập tin dll là Metadata Bao lâu còn tập tin dll trên máy, Windows còn có khả năng đọc Metadata và thi hành các đoạn lệnh trong assembly

Cũng với khả năng tự mô tả chính mình, các assembly không cần phải đăng ký vào hệ thống Điều này nghĩa là chúng không cần phải được cài đặt bằng cách setup hay install và lưu trong thư mục Windows Thay vào đó, mỗi ứng dụng tự quản lý thư mục của riêng mình và lưu tập tin assembly trong đó Việc cài đặt ứng dụng lúc này chẳng qua là lệnh copy thư mục của DOS và nếu bạn muốn xoá ứng dụng chỉ cần xoá thư mục của nó mà thôi

Vì mỗi ứng dụng nằm riêng một chỗ, tự quản lý các assembly của mình nên DLL hell khó lòng xảy ra được nữa

Assembly được chia làm hai loại:

Trang 33

– Private assembly là những assembly như mô tả ở trên nghĩa là của ứng dụng nào thì chỉ ứng dụng

đó dùng được

– Public assembly là những assembly đem dùng chung cho nhiều ứng dụng

Hãy xét tới trường hợp một công ty phần mềm không phải chỉ có một ứng dụng nhưng một họ các ứng dụng cung cấp cho người dùng Nhiều ứng dụng trong đó đều sử dụng chung một assembly Công ty

có thể chọn hai giải pháp: dùng private assembly để mỗi ứng dụng quản lý assembly của riêng mình hoặc, dùng public assembly để nhiều ứng dụng chỉ dùng chung một assembly mà thôi Cách thứ hai sẽ tiện lợi hơn cho người dùng mỗi khi họ muốn nâng cấp lên phiên bản mới của công ty

Các assembly dùng chung được quản lý bởi Global Assembly Cache (GAC) Đây là thư mục nằm trong thư mục Windows\Assembly\GAC GAC quản lý các assembly này thông qua tên gọi riêng là Strong name Strong name được phát sinh thông qua công cụ sn.exe của NET Framework

Trang 34

Bài 2 NGÔN NGỮ VISUAL BASIC NET

Tóm tắt

Lý thuyết 3 tiết - Thực hành 5 tiết

Đưa ra những điểm mới và những

điểm thay đổi (so với VB) trong Visual

Basic Net

1 Các kiểu dữ liệu và đặc điểm

2 Biến – Tính chất, khai báo và khởi tạo

Trang 35

I Các kiểu dữ liệu và đặc điểm

I.1 Các kiểu dữ liệu

Các kiểu dữ liệu của Net được mô tả chi tiết trong một cấu trúc gọi là Common Type System (CTS) CTS định nghĩa các kiểu dữ liệu, cách thức sử dụng, cách thức được quản lý lúc thực thi và cùng với Common Language Specification đóng một vai trò quan trọng trong việc trao đổi giữa các ngôn ngữ lập trình trong Net

Common Type System có chức năng:

– Thiết lập một nền tảng cho phép tương tác giữa các ngôn ngữ lập trình, bảo toàn giá trị của dữ liệu khi có sự trao đổi dữ liệu giữa các ngôn ngữ và bảo đảm việc thực hiện câu lệnh được tối ưu

– Cung cấp một mô hình hướng đối tượng cho các ngôn ngữ lập trình

– Đưa ra những quy tắc để các ngôn ngữ lập trình phải tuân thủ nhằm bảo đảm các thành phần viết trên các ngôn ngữ khác nhau có thể tương tác với nhau

Các kiểu dữ liệu trong VB.NET đã có một số biến đổi cho phù hợp với các quy tắc của CTS Dưới đây là

hệ thống các kiểu dữ liệu chính tương ứng trong Common Language Runtime:

System.Object

System.Array System.String System.ValueType System.Boolean System.Byte System.DateTime System.Decimal System.Char System.Double System.Int16 System.Int32 System.Int64 System.Single System.UInt16 System.UInt32 System.UInt64

Các kiểu dữ liệu nội tại của VB.NET

Kiểu VB.Net Kiểu CLR

System.x

Vùng nhớ (Byte)

Type Code

Miền giá trị

Boolean Boolean 2 3 True hoặc False

DateTime DateTime 8 16 0:00:00 ngày 01 tháng Giêng 0001 đến

23:59:59 ngày 31 tháng Mười Hai 9999

337,593,543,950,335 nếu không có số lẻ;

593543950335 với 28 số lẻ; số nhỏ nhất

Trang 36

khác không là +/- 0.0000000000000000000000000001 (+/-

1E-28)

-4.94065645841246544E -324 đối với số âm; 4.94065645841246544E-324 đến 1.79769313486231570E +308 với số dương

Single Single 4 13 -3.4028235E+38 đến -1.401298E-45 với số

âm; 1.401298E-45 đến 3.4028235E+38 với

số dương

String String

(Class) 8 0 đến khoảng 2 tỷ ký tự Unicode User-Defined

Type (kế thừa từ ValueType) Mỗi thành phần của Structure có miền giá trị theo kiểu dữ liệu của thành phần

Khi khai báo một kiểu dữ liệu cơ bản, không hẳn biến sẽ sử dụng vùng nhớ như yêu cầu lưu trữ Ví

dụ, mảng cần thêm vùng nhớ cho chính bản thân mảng cũng như cho mỗi chiều (dimension) Mỗi biến

Object tham chiếu đến một thành phần hoặc một kiểu hỗn hợp sử dụng 4 byte vùng nhớ ngoài số vùng

nhớ cần dùng cho kiểu dữ liệu chứa trong nó

I.2 Đặc điểm của các kiểu dữ liệu

Các kiểu dữ liệu mặc nhiên phát sinh từ lớp SysTem.Object

Ngoài các phương thức kế thừa từ lớp SysTem.Oject, các biến kiểu dữ liệu còn có các phương thức và

thuộc tính đặc thù

Các phương thức chung kế thừa từ SysTem.Object

– Equals: Hổ trợ việc so sánh giữa hai object

– Finalize: Thực hiện các thao tác xóa bỏ trước khi object được tự động xóa bỏ

– GetHashCode: Phát sinh một số tương ứng với giá trị của object

– GetType: Trả về kiểu của object

– ToString: Tạo ra chuỗi chứa nội dung mô tả một thể hiện của lớp

Dưới đây là các bảng liệt kê những phương thức và thuộc tính đặc thù của các kiểu dữ liệu Do các

phương thức có nhiều cách sử dụng khác nhau, nên trong các phần nói về phương thức chỉ mô tả công

dụng Cần tham khảo thêm trong MSDN để hiểu rõ cách dùng

Trang 37

I.2.1 Kiểu String

Thuộc tính

Chars(i) Trả về ký tự tại vị trí chỉ ra trong biến Thuộc tính có tính chỉ đọc

Length Trả về số ký tự trong biến

Phương thức

Clone Trả về một tham chiếu của biến

Compare Phương thức so sánh hai tham số kiểu String dựa vào thứ tự các ký tự theo ngôn

ngữ qui định trong Regional Settings của từng ký tự và trả về:

– -1 khi chuỗi thứ 1 nhỏ hơn chuỗi thứ 2

– 0 khi chuỗi thứ 1 bằng chuỗi thứ 1

– 1 khi chuỗi thứ 1 lớn hơn chuỗi thứ 2 Ngoài ra có thể có tham số qui định có phân biệt chữ Hoa chữ thường, v.v…

CompareOrdinal So sánh hai tham số kiểu String dựa theo bảng mã các ký tự của các tham số

Hàm trả về hiệu của mã tham số thứ nhất và mã tham số thứ hai

Concat Nối các tham số lại với nhau và trả về chuỗi nối

Copy Tạo một thể hiện mới kiểu String có giá trị như tham số chuỗi truyền vào

CopyTo Sao chép một số ký tự chỉ ra từ một vị trí trên biến vào một vị trí chỉ ra trên mảng

ký tự với số lượng ký tự truyền vào

EndsWith Trả về True/False cho biết các ký tự cuối của biến có khớp với chuỗi chỉ ra không Format Thay thế phần biểu thức định dạng trong chuỗi bằng các các giá trị tương ứng đã

được định dạng theo biểu thức

IndexOf Trả về vị trí đầu tiên tìm thấy chuỗi hoặc ký tự truyền vào trên biến, ; có thể sử

dụng thêm vị trí bắt đầu tìm, trả về vị trí lần tìm thấy thứ mấy

IndexOfAny Trả về vị trí tìm thấy đầu tiên trên biến bất kỳ ký tự nào trong mảng ký tự truyền

vào; có thể sử dụng thêm vị trí bắt đầu tìm, trả về vị trí lần tìm thấy thứ mấy Insert Chèn vào một giá trị String truyền vào tại vị trí chỉ định trên biến

Join Nối các phần tử của mảng String truyền vào thành một chuỗi duy nhất với dấu nối

là chuỗi dấu ngăn cách chỉ ra (separator) LastIndexOf Trả về vị trí tìm thấy cuối cùng trên biến, chuỗi hoặc ký tự truyền vào; có thể sử

dụng thêm vị trí bắt đầu tìm, trả về vị trí lần tìm thấy thứ mấy

LastIndexOfAny Trả về vị trí tìm thấy cuối cùng trên biến bất kỳ ký tự nào trong mảng ký tự truyền

vào; có thể sử dụng thêm vị trí bắt đầu tìm, trả về vị trí lần tìm thấy thứ mấy PadLeft Nối thêm bên trái ký tự truyền vào với số lần sao cho độ dài tổng cộng bằng độ

dài chỉ ra Nếu độ dài tổng cộng chỉ ra nhỏ hơn độ dài của biến, không ký tự nào được thêm vào

PadRight Nối thêm bên phải ký tự truyền vào với số lần sao cho độ dài tổng cộng bằng độ

dài chỉ ra Nếu độ dài tổng cộng chỉ ra nhỏ hơn độ dài của biến, không ký tự nào được thêm vào

Remove Xóa bỏ một số ký tự chỉ ra khỏi biến từ vị trí truyền vào

Trang 38

Replace Thay thế tất cả ký tự hay chuỗi tìm thấy trên biến bằng ký tự hay chuỗi truyền

vào

Split Trả về một mảng String với các phần tử chứa các chuỗi con được ngắt ra từ biến

tùy theo ký tự ngăn cách truyền vào

StartsWith Cho biết trị bắt đầu của biến có khớp với chuỗi truyền vào

Substring Trả về một chuỗi con từ biến

ToLower Trả về bản sao của biến với các ký tự in thường

ToUpper Trả về bản sao của biến với các ký tự in HOA

Trim Trả về biến đã loại bỏ tất cả các ký tự từ đầu đến cuối của biến khớp với mảng ký

MaxValue Hiển thị giá trị lớn nhất của kiểu DateTime (chỉ đọc)

MinValue Hiển thị giá trị nhỏ nhất của kiểu DateTime (chỉ đọc)

Thuộc tính

Date Trả về giá trị ngày tháng năm của biến

Day Trả về giá trị ngày trong tháng của biến

DayOfWeek Trả về giá trị ngày trong tuần của biến, với ngày đầu tiên là Chủ nhật có giá trị là

0

DayOfYear Trả về giá trị ngày trong năm của biến

Hour Trả về giá trị giờ của biến

Millisecond Trả về giá trị phần ngàn giây của biến

Minute Trả về giá trị phút của biến

Month Trả về tháng của biến

Now Trả về giá trị ngày giờ hiện hành của hệ thống

Second Trả về giá trị giây của biến

TimeOfDay Trả về giá trị giờ phút giây của biến

Today Trả về ngày hiện hành

Year Trả về năm của biến

Trang 39

Phương thức

AddDays Thêm số ngày truyền vào cho giá trị của biến

AddHours Thêm số giờ truyền vào cho giá trị của biến

AddMilliseconds Thêm số phần ngàn giây truyền vào cho giá trị của biến

AddMinutes Thêm số phút truyền vào cho giá trị của biến

AddMonths Thêm số tháng truyền vào cho giá trị của biến

AddSeconds Thêm số giây truyền vào cho giá trị của biến

AddYears Thêm số năm truyền vào cho giá trị của biến

Compare So sánh hai biến ngày giờ và cho biết biến nào lớn hơn

CompareTo So sánh biến với một tham số Object

DaysInMonth Cho biết số ngày trong tháng theo tham số tháng, năm truyền vào

IsLeapYear Cho biết giá trị năm truyền vào (dạng yyyy) có phải là năm nhuận hay không Subtract Trừ một giá trị thời gian khỏi biến

ToLongDateString Chuyển giá trị biến ra định dạng Long Date

ToLongTimeString Chuyển giá trị biến ra định dạng Long Time

ToShortDateString Chuyển giá trị biến ra định dạng Short Date

ToShortTimeString Chuyển giá trị biến ra định dạng Short Time

ToString Trả về chuỗi trị của biến theo định dạng truyền vào

I.2.3 Kiểu Number:

Phần này nói chung cho các kiểu số Byte, Short, Integer, Long, Single, Double, Decimal

Field

MaxValue Hiển thị giá trị lớn nhất của kiểu (chỉ đọc)

MinValue Hiển thị giá trị nhỏ nhất của kiểu (chỉ đọc)

Ngoại trừ kiểu String, các kiểu khác khi muốn chuyển sang kiểu chuỗi đều có thể dùng phương thức ToString (kế thừa từ lớp Object) để chuyển đổi và định dạng cùng lúc

c, C Định dạng tiền tệ 12345.67 ToString(“C”) hiển thị $ 12,345.67

e, E Định dạng số khoa học 12345.67 ToString(“E”) hiển thị 1.234567E+0004

f, F Định dạng cố định 12345.67 ToString(“F”) hiển thị 12345.67 (với 2 số lẻ)

Trang 40

g, G Định dạng tổng quát 12345.67 ToString(“G”) hiển thị 12345.67 tùy theo gía trị

có thể hiện thị dưới dạng E hoặc F

n, N Định dạng số 12345.67 ToString(“N”) hiển thị 12,345.67

p, P Định dạng phần trăm 0.45 ToString(“P”) hiển thị 45 %

x, X Định dạng Thập lục phân 250 ToString(“X”) hiển thị FA

Ngoài ra chúng ta cũng có thể sử dụng các ký tự sau đây để lập biểu thức định dạng

Biểu thức định dạng tự định nghĩa

0 Số không giữ chỗ 123 ToString(“0000”) hiển thị 0123

# Số bất kỳ giữ chỗ 123 ToString(“####”) hiển thị 123

Dấu phần lẻ 123 ToString(“####.00”) hiển thị 123.00

, Dấu chia cụm ba số 12345 ToString(“#,###”) hiển thị 12,345

% Dấu phần trăm 0.45 ToString(“# %”) hiển thị 45 %

Biến là một thực thể với 6 tính chất sau:

– Name: Tên của biến

– Address: Địa chỉ vùng nhớ nơi lưu giữ giá trị của biến Trong chu kỳ trình sống, địa chỉ của biến có thể thay đổi

– Type: Kiểu của biến, còn gọi là kiểu dữ liệu

– Value: Giá trị của biến

– Scope: Phạm vi sử dụng của biến

Mỗi biến có một phạm vi sử dụng là phạm vi trong chương trình nơi biến được nhìn nhận đối với câu lệnh

ƒ Phạm vi khối lệnh và phạm vi thủ tục

Khối lệnh là tập hợp các dòng lệnh được kết thúc bằng End, Else, Loop hoặc Next như trong cấu trúc For … Next, If Then Else End If Biến khai báo trong khối lệnh có phạm vi sử dụng chỉ trong khối lệnh

Ví dụ:

If x <> 0 then

Ngày đăng: 02/08/2014, 09:21

HÌNH ẢNH LIÊN QUAN

Hình dưới là màn hình khởi đầu của VS.NET 2003. Vùng làm việc chính giữa đang hiển thị trang &#34;Start  page&#34; với 3 mục chính: Projects, Online Resource và My Profile - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Hình d ưới là màn hình khởi đầu của VS.NET 2003. Vùng làm việc chính giữa đang hiển thị trang &#34;Start page&#34; với 3 mục chính: Projects, Online Resource và My Profile (Trang 17)
Bảng sau đây cho biết kiểu dữ liệu thuộc kiểu trị hay kiểu tham chiếu: - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Bảng sau đây cho biết kiểu dữ liệu thuộc kiểu trị hay kiểu tham chiếu: (Trang 44)
Bảng toán tử toán học - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Bảng to án tử toán học (Trang 47)
Bảng toán tử gán - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Bảng to án tử gán (Trang 48)
Bảng toán tử so sánh - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Bảng to án tử so sánh (Trang 48)
Bảng toán tử gán - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Bảng to án tử gán (Trang 49)
Bảng liệt kê các Exception - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Bảng li ệt kê các Exception (Trang 57)
Hình thức này áp dụng cho lớp Con đối với lớp Cha. Lớp Con được phép có một phương thức cùng tên,  cùng số tham số có kiểu dữ liệu như phương thức của lớp Cha hoặc những lớp trước đó nữa (lớp phát  sinh ra lớp Cha …) với cài đặt khác đi - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Hình th ức này áp dụng cho lớp Con đối với lớp Cha. Lớp Con được phép có một phương thức cùng tên, cùng số tham số có kiểu dữ liệu như phương thức của lớp Cha hoặc những lớp trước đó nữa (lớp phát sinh ra lớp Cha …) với cài đặt khác đi (Trang 62)
Hình dưới  đây cho thấy các đối tượng tương  ứng trong OLEDB và SQL Provider implement hoặc kế  thừa từ interface hay class nào - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Hình d ưới đây cho thấy các đối tượng tương ứng trong OLEDB và SQL Provider implement hoặc kế thừa từ interface hay class nào (Trang 85)
Hình dưới đây mô tả quan hệ giữa các đối tượng thuộc Managed Provider Components. - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Hình d ưới đây mô tả quan hệ giữa các đối tượng thuộc Managed Provider Components (Trang 87)
Hình trên mô tả mô hình phân cấp các class của DataAdapter, cả SQLDataAdapter và  OleDBDataAdapter đều thừa kế từ class DbDataAdapter, DbDataAdapter lại thừa kết từ abstract class  DataAdapter,  đến lượt abstract class này lại implement IDataAdapter inter - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Hình tr ên mô tả mô hình phân cấp các class của DataAdapter, cả SQLDataAdapter và OleDBDataAdapter đều thừa kế từ class DbDataAdapter, DbDataAdapter lại thừa kết từ abstract class DataAdapter, đến lượt abstract class này lại implement IDataAdapter inter (Trang 87)
Bảng dữ liệu phía nhiều phải được khai báo và có thể: - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Bảng d ữ liệu phía nhiều phải được khai báo và có thể: (Trang 157)
Hình 1 – Quan hệ giữa các bảng - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Hình 1 – Quan hệ giữa các bảng (Trang 187)
Hình 4 – Màn hình tính lương - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Hình 4 – Màn hình tính lương (Trang 188)
Hình 5 – Báo biểu của câu 3 - Tài liệu hướng dẫn giảng dạy chương trình kỹ thuật viên ngành lập trình potx
Hình 5 – Báo biểu của câu 3 (Trang 188)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w