Giáo trình Lập trình Visual Basic .NET và Môi trường Microsoft Visual Studio

Tổng quan về giáo trình

Giáo trình Lập trình Visual Basic .NET được biên soạn phục vụ học phần Lập trình trực quan hoặc Lập trình ứng dụng Windows trong chương trình đào tạo trình độ Đại học và Cao đẳng khối ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Thông tin. Tài liệu định vị ngôn ngữ Visual Basic .NET trong hệ sinh thái .NET Framework của Microsoft, xác lập tiến trình chuyển đổi từ mô hình lập trình hướng sự kiện truyền thống sang mô hình lập trình hướng đối tượng hoàn chỉnh.

Mục tiêu học tập của giáo trình bao gồm:

  • Trình bày kiến trúc nền tảng của .NET Framework, vai trò của mã trung gian Microsoft Intermediate Language (MSIL/CIL) và cơ chế biên dịch thời gian thực Just-In-Time (JIT).
  • Sử dụng thành thạo môi trường phát triển tích hợp (IDE) Microsoft Visual Studio 2010 để cấu hình đồ án, thiết kế giao diện đồ họa (Windows Forms) và quản lý tài nguyên qua Solution Explorer.
  • Nắm vững cú pháp nền tảng của ngôn ngữ Visual Basic .NET: hệ thống 11 kiểu dữ liệu nguyên thủy, kỹ thuật cấp phát mảng tĩnh và mảng động, các cấu trúc điều khiển rẽ nhánh, vòng lặp và cơ chế kiểm soát ngoại lệ bằng khối lệnh Try...Catch...Finally.
  • Hiện thực hóa các đặc tính cốt lõi của lập trình hướng đối tượng (Trừu tượng, Đóng gói, Kế thừa, Đa hình) thông qua khai báo lớp (Class), thiết lập tầm vực truy cập và triển khai kiến trúc phần mềm phân tầng (Business Logic Layer, Data Access Layer).
  • Làm việc với các dự án đa Form, khai báo thủ tục/hàm trong Module và thực hiện kết nối, hiển thị, cập nhật dữ liệu từ hệ quản trị cơ sở dữ liệu Microsoft Access thông qua thư viện ADO.NET với OleDbDataAdapter, DataSet và điều khiển DataGrid.

Cấu trúc giáo trình tiếp cận theo mô hình module hóa tuyến tính, đi từ lý thuyết kiến trúc hệ thống, quy tắc cú pháp cơ bản, lập trình hướng đối tượng đến thiết kế giao diện ứng dụng và thao tác cơ sở dữ liệu. Điểm đặc thù của tài liệu là phương pháp trình bày dựa trên dữ liệu kỹ thuật: mọi cấu trúc lệnh đều đi kèm sơ đồ cú pháp, bảng thông số giới hạn bộ nhớ, bảng mã lỗi thực thi và các đoạn mã nguồn minh họa từng bước.


Nội dung kiến thức cốt lõi

Các chương/chủ đề chính

Nội dung giáo trình được triển khai qua các chủ đề chính theo trật tự logic:

  1. Giới thiệu Microsoft Visual Studio .NET: Phân tích lược sử hình thành từ dự án Next Generation Windows Services (NGWS) năm 1998 đến phiên bản Visual Studio .NET 2001, 2003 (trên nền .NET 1.1), 2005 (trên nền .NET 2.0 và Windows Vista API) và Visual Studio 2010. Khảo sát cấu trúc 2 thành phần chính gồm Framework và IDE. Trình bày quy trình biên dịch từ mã nguồn sang MSIL và chuyển đổi thành mã máy thực thi qua trình biên dịch JIT. Hướng dẫn sử dụng các thành phần giao diện IDE: Menu Bar, Toolbar (39 thanh công cụ chuyên dụng), Toolbox (11 tab mặc định), Form Designer, Solution Explorer (tích hợp View Code - phím F7, View Designer - phím Shift+F7), Properties Window (phím tắt Ctrl+W+P). Trình bày cấu trúc ứng dụng và cơ chế tổ chức Không gian tên (Namespace...End Namespace, từ khóa Imports và khai báo bí danh Namespace Alias).

  2. Nền tảng của ngôn ngữ Visual Basic .NET: Hệ thống hóa các kiểu dữ liệu cơ sở; quy tắc khai báo biến đơn và biến khởi tạo giá trị; phân cấp phạm vi biến (biến cục bộ với Dim, biến cấp Module với Private, Friend, Public). Kỹ thuật quản lý mảng cố định và mảng động với câu lệnh ReDim, từ khóa Preserve bảo toàn dữ liệu chiều cuối, các hàm xác định chỉ số biên UBound, LBound. Hệ thống toán tử số học, quan hệ và logic. Cấu trúc rẽ nhánh (If...Then...ElseIf...Else, Select Case với toán tử so sánh Is và toán tử khoảng To). Các cấu trúc lặp không xác định (Do While...Loop, Do...Loop While, Do Until...Loop, Do...Loop Until, While...End While) và lặp xác định (For...To...Step...Next, For Each...In...Next). Cơ chế xử lý lỗi có cấu trúc thông qua Try...Catch...Finally, mệnh đề lọc điều kiện Catch When, xử lý khối Try...Catch lồng nhau, đối tượng Err (Err.Number, Err.Description, Err.Clear, Err.Raise), phát biểu Exit Try và kỹ thuật phòng vệ lỗi tiền kiểm tra qua System.IO.File.Exists.

  3. Lập trình hướng đối tượng trong Visual Basic .NET: Phân tích 4 đặc tính hướng đối tượng (Tính trừu tượng, Tính đóng gói, Tính thừa kế, Tính đa hình). Cú pháp định nghĩa lớp với các chỉ định truy cập (Public, Private, Protected, Friend, Protected Friend) và từ khóa hành vi kế thừa (Inherits, NotInheritable, MustInherit). Phân cấp lớp xuất phát từ gốc System.Object. Cài đặt phương thức, khai báo sự kiện (Event) và sử dụng các từ khóa định danh ngữ cảnh Me, MyBase, MyClass. Xây dựng mô hình kiến trúc đa tầng tách biệt tầng xử lý nghiệp vụ (Business Logic Layer - BLL), tầng truy cập dữ liệu (Data Access Layer - DAL) và các thành phần Data Access Components.

  4. Làm việc với dự án có nhiều Form: Thiết kế hệ thống thực đơn chuẩn bằng điều khiển MenuStrip, tùy biến phím tắt truy cập, sắp xếp thứ tự và viết mã sự kiện menu. Ứng dụng các điều khiển giao diện cơ bản (TextBox, ToolTip, các hộp thoại hệ thống OpenFileDialog, SaveFileDialog, FontDialog, ColorDialog). Quản lý cấu trúc Module chuẩn, thiết lập biến dùng chung phạm vi toàn cục (Public), xây dựng thủ tục Sub và hàm Function với hai phương thức truyền đối số theo tham trị (ByVal) và tham biến (ByRef).

  5. Lập trình cơ sở dữ liệu với ADO.NET: Giới thiệu các khái niệm quản trị dữ liệu, quy trình kết nối tệp tin cơ sở dữ liệu Microsoft Access, thiết lập bộ điều phối dữ liệu OleDbDataAdapter và cấu trúc lưu trữ ngắt kết nối DataSet. Triển khai các điều khiển ràng buộc dữ liệu (Data Binding), kỹ thuật điều hướng bản ghi và trực quan hóa dữ liệu trên điều khiển bảng lưới DataGrid (định dạng ô lưới, cập nhật và đồng bộ dữ liệu ngược về bảng gốc).

Kiến thức nền tảng được xây dựng

Giáo trình thiết lập hệ thống lý thuyết nền tảng phục vụ phát triển phần mềm:

  • Kiến trúc thực thi mã nguồn quản lý (.NET Runtime Environment): Mô hình thực thi mã nguồn độc lập thông qua định dạng mã trung gian MSIL/CIL, được biên dịch sang mã nhị phân tương thích phần cứng bởi JIT Compiler trong quá trình nạp ứng dụng.
  • Hệ thống phân loại kiểu dữ liệu và định vị bộ nhớ: Đặc tả kích thước bộ nhớ và miền giá trị của 11 kiểu dữ liệu cơ bản:
    • Short: 16-bit, miền giá trị từ -32,768 đến 32,767.
    • Integer: 32-bit, miền giá trị từ -2,147,483,648 đến 2,147,483,647.
    • Long: 64-bit, miền giá trị từ -9,233,372,036,854,775,808 đến 9,233,372,036,854,775,807.
    • Single: 32-bit dấu phẩy động, từ -3.402823E38 đến 3.402823E38.
    • Double: 64-bit dấu phẩy động, từ -1.797631348623E308 đến 1.797631348623E308.
    • Decimal: 128-bit, khoảng $\pm 79,228 \times 10^{24}$.
    • Byte: 8-bit, miền giá trị từ 0 đến 255.
    • Char: 16-bit, miền giá trị từ 0 đến 65,536.
    • String: Chuỗi ký tự, dung lượng từ 0 đến 2 tỷ ký tự.
    • Boolean: 16-bit, lưu trữ hai giá trị True hoặc False.
    • Date: 64-bit, biểu diễn thời gian từ 1/1/1 đến 31/12/9999 (ví dụ: Da = #16/07/1984#).
    • Object: 32-bit, chứa tham chiếu tới bất kỳ kiểu đối tượng nào.
  • Nguyên lý bẫy lỗi và kiểm soát ngoại lệ: Cơ chế bắt lỗi theo mã runtime cụ thể thông qua đối tượng Err (như lỗi mã 5: gọi hàm/truyền tham số sai, mã 6: tràn số, mã 7: hết bộ nhớ, mã 9: vượt chỉ số mảng, mã 11: chia cho 0, mã 53: không tìm thấy tệp tin, mã 71: ổ đĩa chưa sẵn sàng), cho phép phân tách logic nghiệp vụ khỏi mã xử lý sự cố.
  • Mô hình lập trình hướng đối tượng và kiến trúc phân tầng: Nguyên lý đóng gói trạng thái và hành vi trong Class, cơ chế dẫn xuất phân cấp từ lớp System.Object, cùng mô hình kiến trúc phân tách độc lập giữa giao diện, tầng logic nghiệp vụ (BLL) và tầng truy cập dữ liệu (DAL).

Kỹ năng phát triển

Người học được rèn luyện các nhóm kỹ năng thực hành:

  • Kỹ năng kỹ thuật: Viết mã nguồn VB.NET theo chuẩn quy ước đặt tên; sử dụng linh hoạt các câu lệnh điều khiển, mảng động (ReDim Preserve) và cấu trúc xử lý ngoại lệ; khai báo và kế thừa lớp với từ khóa Inherits; thiết kế giao diện trực quan trên Windows Forms bằng các điều khiển chuyên dụng và hộp thoại hệ thống.
  • Kỹ năng phân tích logic: Phân tích bài toán để lựa chọn giải pháp điều khiển phù hợp (chuyển đổi cấu trúc đa nhánh If...ElseIf sang bảng lựa chọn Select Case); phân tích các trường hợp phát sinh ngoại lệ runtime để triển khai phương pháp phòng vệ lỗi hoặc bắt ngoại lệ bằng Catch When.
  • Kỹ năng thao tác dữ liệu thực tế: Xây dựng giải pháp kết nối cơ sở dữ liệu Microsoft Access, cấu hình OleDbDataAdapter, xử lý tập dữ liệu DataSet trên bộ nhớ và quản trị hiển thị dữ liệu qua lưới DataGrid.

Phương pháp giảng dạy và học tập

Giáo trình áp dụng phương pháp sư phạm kết hợp giữa thuyết giảng nguyên lý cú pháp và hướng dẫn thực hành trực quan theo từng thao tác cụ thể trên phần mềm:

  • Tiếp cận từng bước (Step-by-step Implementation): Mỗi khái niệm kỹ thuật đều bắt đầu bằng việc phân tích cú pháp trừu tượng, định nghĩa các tham số, sau đó áp dụng vào một kịch bản ứng dụng cụ thể. Ví dụ: quy trình tạo ứng dụng đầu tiên "Cộng hai số" được hướng dẫn tường minh qua 2 bước: thiết lập thuộc tính các điều khiển (Form1, Label, TextBox, Button) trong cửa sổ Properties và viết mã xử lý sự kiện btnTong_Click với thao tác ép kiểu Convert.ToInt32() hoặc Integer.Parse().
  • Hệ thống bài tập thực hành theo cấp độ:
    • Mức độ cơ bản: Mở rộng ứng dụng tính toán số học (cộng, trừ, nhân, chia); ứng dụng ghép chuỗi họ tên bằng toán tử &.
    • Mức độ giải thuật và điều khiển logic: Xây dựng Form giải và biện luận phương trình bậc nhất $Ax + B = 0$; Form kiểm tra số ngày trong tháng cho các năm trong khoảng từ 1900 đến 2099 (ràng buộc giá trị nhập hợp lệ); Form tính tổng lương và lương trung bình của nhân viên sử dụng điều khiển ListBox.
    • Mức độ xử lý sự cố và kiểm soát ngoại lệ: Thực hành tình huống nạp ảnh từ tệp tin 6_82MELINH.ico trên ổ mềm A:\ vào điều khiển PictureBox. Cài đặt các khối lệnh Try...Catch đơn, khối Try...Catch lồng nhau, bắt mã lỗi cụ thể bằng Catch When Err.Number = 53 (tệp không tồn tại) hoặc Err.Number = 7 (tràn bộ nhớ), cấu hình giới hạn số lần thử lại bằng biến đếm dem kết hợp thuộc tính Button1.Enabled = False, và so sánh với phương pháp phòng vệ lỗi dùng System.IO.File.Exists.
  • Phương pháp đánh giá kết quả học tập: Đánh giá dựa trên độ chính xác của giao diện người dùng theo thiết kế Form Designer, khả năng tối ưu cấu trúc mã lệnh, tính toàn vẹn của dữ liệu nhập/xuất và khả năng xử lý triệt để các ngoại lệ runtime có thể phát sinh trong quá trình vận hành ứng dụng.
  • Hướng dẫn tự học: Tài liệu cung cấp danh mục phím tắt chuẩn trên IDE để tối ưu hóa thao tác: tạo đồ án mới (Ctrl+Shift+N), mở Solution Explorer (Ctrl+W+S), mở Properties Window (Ctrl+W+P), mở Toolbox (Ctrl+W+X), chuyển đổi giữa cửa sổ viết mã View Code (F7) và cửa sổ thiết kế View Designer (Shift+F7).

Điểm nổi bật và cập nhật

Nội dung giáo trình phản ánh các mốc tiến hóa kỹ thuật và tiêu chuẩn phát triển phần mềm:

  • Bối cảnh chuyển dịch công nghệ: Phân tích các hạn chế của các công cụ phát triển trước kỷ nguyên .NET:
    • Ngôn ngữ Java có ưu thế độc lập nền tảng nhưng gặp rào cản về tốc độ thực thi ở các giai đoạn đầu.
    • Ngôn ngữ ASP cổ điển sử dụng mã kịch bản VBScript/JavaScript nhúng trong thẻ HTML, khi đóng gói chức năng phải biên dịch thành thành phần ActiveX đưa lên Web Server, gây rủi ro bảo mật và phức tạp trong việc gỡ bỏ/nâng cấp.
    • Ngôn ngữ Visual C++ có hiệu năng cao nhưng cú pháp phức tạp; trong khi Visual Basic truyền thống dễ tiếp cận nhưng không hỗ trợ lập trình hướng đối tượng đầy đủ và hạn chế trong phát triển thuật toán phức tạp.
  • Tiến trình chuẩn hóa môi trường phát triển: Trình bày quá trình Microsoft tái cấu trúc nền tảng: từ ý tưởng NGWS năm 1998, ra mắt Visual Studio .NET 2001, nâng cấp .NET Framework 1.1 trên Windows Server 2003, chuyển giao sang .NET Framework 2.0 trên Visual Studio 2005, và tiến tới tái cấu trúc toàn bộ tầng hàm API lõi của hệ điều hành Windows Vista thành các thư viện hướng đối tượng của .NET.
  • Tính thống nhất của kiến trúc .NET: Mọi mã nguồn viết bằng các ngôn ngữ khác nhau (Visual Basic .NET, C#, C++, J#) đều được dịch về một ngôn ngữ trung gian duy nhất là MSIL/CIL trước khi chuyển đổi sang mã máy bởi trình biên dịch JIT. Mô hình này giúp lập trình ứng dụng Windows (WinForms) và ứng dụng Web (WebForms) có tính tương đồng cao về mặt kiến trúc và phương thức tiếp cận.
  • Hiện thực hóa mô hình hướng đối tượng chuẩn tắc trong VB.NET: Bổ sung đầy đủ các từ khóa điều khiển kế thừa (Inherits, NotInheritable, MustInherit), các từ khóa tham chiếu phạm vi đối tượng (Me, MyBase, MyClass) và các mức độ truy cập chi tiết (Protected Friend), cho phép triển khai kiến trúc phần mềm phân tầng BLL và DAL trong môi trường doanh nghiệp.

Đối tượng sử dụng giáo trình

Giáo trình được thiết kế nhằm đáp ứng yêu cầu đào tạo và nghiên cứu của các nhóm đối tượng:

  • Sinh viên chuyên ngành: Sinh viên năm thứ nhất hoặc năm thứ hai theo học các ngành Công nghệ Thông tin, Kỹ thuật Phần mềm, Khoa học Máy tính, Hệ thống Thông tin Quản lý và Tin học Ứng dụng tại các trường Đại học, Cao đẳng hoặc các cơ sở đào tạo nghề kỹ thuật.
  • Yêu cầu kiến thức tiên quyết: Người học cần nắm vững các khái niệm cơ bản về tin học đại cương, hiểu biết sơ bộ về cấu trúc dữ liệu và giải thuật căn bản. Không bắt buộc phải có kinh nghiệm lập trình hướng đối tượng từ trước, do giáo trình đã xây dựng khái niệm OOP từ nền tảng.
  • Giảng viên và cán bộ giảng dạy: Tài liệu cung cấp khung đề cương chi tiết, hệ thống bảng biểu đặc tả kỹ thuật và mã nguồn mẫu để xây dựng bài giảng lý thuyết, giáo án thực hành phòng máy và ngân hàng đề thi kết thúc học phần cho môn học Lập trình trực quan hoặc Lập trình .NET.
  • Người tự học và lập trình viên chuyển đổi: Phù hợp cho lập trình viên đã có kinh nghiệm với Visual Basic 6.0 hoặc các ngôn ngữ lập trình kịch bản muốn hệ thống hóa lại kiến thức để chuyển sang phát triển ứng dụng trên nền tảng .NET Framework và môi trường Visual Studio 2010.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với ai?

Tài liệu phù hợp cho sinh viên Đại học, Cao đẳng chuyên ngành Công nghệ Thông tin, giảng viên cần tài liệu tham khảo giảng dạy môn Lập trình trực quan, và các lập trình viên muốn tiếp cận kiến trúc .NET Framework cùng ngôn ngữ Visual Basic .NET.

2. Cần kiến thức nền nào để học giáo trình này?

Người học cần có kiến thức cơ bản về tin học đại cương và tư duy giải thuật căn bản. Các nội dung về lập trình hướng đối tượng, cú pháp ngôn ngữ, thiết kế giao diện Windows Forms và kết nối cơ sở dữ liệu đều được hướng dẫn chi tiết từ mức cơ sở trong tài liệu.

3. Điểm khác biệt cốt lõi của Visual Basic .NET so với Visual Basic truyền thống là gì?

Visual Basic truyền thống là ngôn ngữ dựa trên sự kiện và không hỗ trợ hướng đối tượng đầy đủ. Visual Basic .NET trong giáo trình được xây dựng hoàn toàn trên nền tảng .NET Framework, hoạt động hướng đối tượng hoàn chỉnh (hỗ trợ kế thừa qua từ khóa Inherits, đa hình, đóng gói, trừu tượng), mã nguồn được biên dịch ra ngôn ngữ trung gian MSIL và chạy trên môi trường thực thi chung CLR.

4. Làm sao để tự học và thực hành hiệu quả theo giáo trình?

Người học nên cài đặt phần mềm Microsoft Visual Studio 2010, thực hiện tuần tự các bài thực hành mẫu theo đúng các bước thiết lập thuộc tính điều khiển và viết mã sự kiện. Đồng thời, cần hoàn thành các bài tập lập trình ở cuối mỗi bài (giải phương trình, kiểm tra số ngày trong tháng, quản lý lương bằng ListBox, xử lý ngoại lệ với Try...Catch và kết nối cơ sở dữ liệu DataGrid) để củng cố kỹ năng lập trình.

5. Giáo trình cung cấp những cấu trúc mã nguồn mẫu nào kèm theo?

Giáo trình cung cấp các mẫu mã nguồn hoàn chỉnh bao gồm: khai báo không gian tên (Namespace), định nghĩa lớp (Class), bẫy lỗi runtime qua khối Try...Catch...Finally kết hợp đối tượng Err, kỹ thuật phòng vệ lỗi qua thư viện System.IO, thiết kế thực đơn MenuStrip, xây dựng hàm/thủ tục trong Module chuẩn với ByVal/ByRef, và đoạn mã kết nối cơ sở dữ liệu Access bằng OleDbDataAdapterDataSet.


Kết luận

Giáo trình Lập trình Visual Basic .NET cung cấp hệ thống kiến thức hoàn chỉnh về phát triển ứng dụng máy tính trên nền tảng Microsoft .NET Framework 2010. Giá trị học thuật của tài liệu nằm ở cấu trúc trình bày chặt chẽ, kết hợp hài hòa giữa lý thuyết biên dịch hệ thống (MSIL, JIT), cú pháp lập trình hướng đối tượng chuẩn tắc, kỹ thuật kiểm soát lỗi chi tiết và phương pháp xây dựng ứng dụng cơ sở dữ liệu đa tầng bằng ADO.NET.

Lộ trình học tập đề xuất cho người học là tiếp cận tuần tự: làm quen môi trường IDE Visual Studio 2010 -> rèn luyện cú pháp cơ bản và mảng -> nắm vững 4 đặc tính hướng đối tượng và kiến trúc phân tầng -> thiết kế giao diện đa Form và Module -> xây dựng ứng dụng quản trị dữ liệu hoàn chỉnh với Access và ADO.NET. Người học có thể mở rộng kiến thức bằng cách tham khảo thêm tài liệu hướng dẫn của Microsoft về .NET Framework Class Library và các công nghệ phát triển ứng dụng liên quan.