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

Giáo trình Lập trình Visual Basic .NET trên nền tảng Microsoft .NET Framework là tài liệu học thuật được thiết kế cho các học phần Lập trình ứng dụng, Lập trình trực quan hoặc Công nghệ phần mềm thuộc chương trình đào tạo trình độ đại học và cao học ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Thông tin. Vị trí của môn học đóng vai trò cầu nối giữa khối kiến thức lập trình cơ sở (cấu trúc dữ liệu, giải thuật, nhập môn lập trình) với giai đoạn phát triển phần mềm ứng dụng hoàn chỉnh trên môi trường doanh nghiệp.

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

  1. Kiến thức: Hệ thống hóa cấu trúc hạ tầng Microsoft .NET Framework, cơ chế thực thi của Common Language Runtime (CLR), thư viện lớp FCL (Framework Class Library), định dạng mã trung gian Microsoft Intermediate Language (MSIL/IL), Metadata và hệ thống kiểu dữ liệu chung (Common Type System - CTS).
  2. Kỹ năng cú pháp và tư duy OOP: Làm chủ cú pháp ngôn ngữ Visual Basic .NET, vận dụng các nguyên lý lập trình hướng đối tượng (đóng gói, kế thừa, đa hình qua nạp chồng phương thức, quản lý vòng đời đối tượng với Sub New và Dispose).
  3. Phát triển ứng dụng thực tế: Thiết kế giao diện đồ họa người dùng bằng Windows Forms Designer, xử lý các điều khiển chuẩn và nâng cao, thao tác cơ sở dữ liệu qua kiến trúc ADO.NET (SQL Server, Access), kết xuất báo cáo với Crystal Reports và đóng gói triển khai ứng dụng bằng Setup Wizard.

Cấu trúc giáo trình tiếp cận theo mô hình tuyến tính: đi từ tầng kiến trúc hạ tầng biên dịch, đến ngôn ngữ lập trình cơ sở, phương pháp hướng đối tượng, kỹ thuật xử lý giao diện/dữ liệu và hoàn tất ở khâu đóng gói triển khai. Điểm đặc sắc của tài liệu là phân tích đối sánh chi tiết sự thay đổi bản chất giữa Visual Basic 6.0 truyền thống và Visual Basic .NET, làm rõ cách thức mã nguồn được chuyển đổi sang mã IL độc lập phần cứng và chạy dưới sự kiểm soát của CLR.


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

                             KIẾN TRÚC TỔNG THỂ GIÁO TRÌNH

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

  1. Môi trường .NET và Visual Studio .NET: Giới thiệu hạ tầng Next Generation Windows Services (khởi xướng từ năm 1998), kiến trúc hai thành phần chính của .NET Framework gồm CLR và FCL. Phân tích vai trò Metadata tự mô tả của đối tượng, mã trung gian IL và công cụ kiểm tra ILDASM.EXE. Tổ chức thư viện đối tượng thông qua hệ thống không gian tên phân cấp (System.Data, System.Windows.Forms, System.IO, System.Collections, System.XML). Giới thiệu giao diện IDE: Solution Explorer, Toolbox, Properties Window và Windows Forms Designer thông qua dự án mẫu Quanlythuvien.vbproj.
  2. Cơ sở lập trình trong Visual Basic .NET: Hệ thống kiểu dữ liệu cơ sở (Boolean, Byte, Char, Decimal, Double, Integer, Long, Short, Single) đều kế thừa từ lớp Object. Quy tắc khai báo biến (Dim), hằng (Public Const), các toán tử số học, toán tử so sánh (Like, =, <>), toán tử gán mở rộng (+=, -=, *=, /=, \=). Thư viện hàm chuẩn: các phương thức tĩnh của lớp Math (Abs, Sin, Sqrt, Ceiling, Floor, Log10), các hàm thời gian (Day, Month, Year, Now, Weekday), các hàm chuyển đổi (ToInt32, ToString, ToDouble) và hàm kiểm tra (IsNumeric, IsDate, IsArray). Cấu trúc điều khiển (If...Then...Else, Select Case), vòng lặp (For...Next, For Each, While...End While, Do...Loop While). Nhập xuất màn hình Console (Console.Read, Console.ReadLine, Console.Write, Console.WriteLine với định dạng hiển thị C, D, E, F, N, P, X).
  3. Chương trình con, Cấu trúc dữ liệu và Ngoại lệ: Phân định thủ tục (Sub) và hàm (Function), cơ chế truyền tham số mặc định theo tham trị (ByVal) và tham biến (ByRef), tham số tùy chọn (Optional). Phạm vi hoạt động của biến (cục bộ, toàn cục, Form Module, Bas Module). Kiểu mảng có chỉ số cố định từ 0, tái định kích thước mảng bảo toàn dữ liệu bằng ReDim Preserve. Định nghĩa kiểu dữ liệu có cấu trúc với khối Structure...End Structure. Bẫy lỗi và kiểm soát ngoại lệ bằng khối Try...Catch...Finally...End Try, lọc lỗi với mệnh đề When (Catch When Err.Number = 5) hoặc chụp đối tượng ngoại lệ qua Catch e As Exception.
  4. Lập trình hướng đối tượng (OOP): Khai báo lớp (Class) và không gian tên lồng nhau (Namespace). Phân định phạm vi truy cập: Private, Friend, Public, Protected, Protected Friend. Thiết lập thuộc tính qua cặp phương thức Get/Set, thuộc tính chỉ đọc (ReadOnly), chỉ ghi (WriteOnly), và quy định thuộc tính ngầm định (Default Property) phải là thuộc tính dạng mảng chỉ mục (Property array). Cơ chế nạp chồng phương thức (Overloading method) và nạp chồng hàm tạo Sub New(). Vòng đời đối tượng, thu hồi tài nguyên thông qua giao diện IDisposable với phương thức Dispose(), xóa tham chiếu qua từ khóa Nothing để trình thu gom rác (Garbage Collector) xử lý. Nguyên lý kế thừa với từ khóa Inherits, mô hình quan hệ "is-a" qua ví dụ lớp cơ sở LineItem và hai lớp dẫn xuất ProductLine, ServiceLine. Khai báo thành phần dùng chung: phương thức tĩnh Shared Function và biến dùng chung Shared Variable thông qua ví dụ lớp đếm thực thể MyCounter.
  5. Thiết kế giao diện người dùng Windows Forms: Thao tác đặt điều khiển, quản lý thứ tự phím Tab (Tab Order), khóa điều khiển (Locked), mảng điều khiển (Arrays Control). Sử dụng các điều khiển tương tác: TextBox, Button, CheckBox, RadioButton, DateTimePicker. Tùy biến biểu mẫu khởi động (Startup Form), kiểu viền (FormBorderStyle), xuất thông điệp qua MessageBox. Tích hợp các hộp thoại chuẩn: OpenFileDialog, SaveFileDialog, FontDialog, ColorDialog. Bổ sung các điều khiển chuyên dụng: Splitter, HelpProvider, ToolTip, ErrorProvider.
  6. Cơ sở dữ liệu và ADO.NET: Thiết kế bảng dữ liệu, thiết lập khóa và quan hệ trên Microsoft Access và Microsoft SQL Server (sử dụng SQL Server Management Studio). Tạo thủ tục lưu trữ (Stored Procedure), Trigger và phân quyền bảo mật. Kiến trúc kết nối dữ liệu ADO.NET: khởi tạo kết nối qua SqlConnection, thực thi câu lệnh với SqlCommand, truyền tham số an toàn với SqlParameter, đọc dòng dữ liệu một chiều qua SqlDataReader, trao đổi dữ liệu ngắt kết nối với SqlDataAdapter và kỹ thuật ràng buộc dữ liệu (Data Binding) lên các điều khiển giao diện.
  7. Báo cáo và Đóng gói triển khai ứng dụng: Thiết kế báo cáo trực quan với Crystal Reports: thao tác các đối tượng báo cáo, định dạng chuỗi, sử dụng trình soạn thảo công thức Formula Editor, sắp xếp (sorting), phân nhóm (grouping), tạo báo cáo phân cấp và tổng hợp dữ liệu với tham số. Lập kế hoạch phân phối phần mềm: tạo dự án đóng gói (Deployment Project) bằng Setup Wizard, thiết lập tên công ty, phiên bản phần mềm, cấu hình shortcut, biên dịch ra bộ cài đặt .EXE/.MSI và quy trình tháo gỡ (Uninstall) chương trình.

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

  • Lý thuyết nền tảng thực thi: Cơ chế hoạt động của máy ảo .NET, chuyển đổi mã nguồn thành mã trung gian MSIL, biên dịch Just-In-Time (JIT) sang chỉ thị CPU thực tế, vai trò của thư viện thực thi ngôn ngữ chung CLR trong việc quản lý tiến trình, tiểu trình (Threading) và an toàn bộ nhớ.
  • Nguyên lý cấu trúc và hướng đối tượng: Phân rã bài toán theo nguyên tắc "chia để trị" (lập trình cấu trúc), mô hình hóa thực thể dựa trên 4 trụ cột OOP, phân biệt quan hệ "is-a" (kế thừa) và "has-a" (chứa gộp), thiết kế không gian tên để chống xung đột định danh trong các dự án phần mềm quy mô lớn.
  • Khung kiến trúc truy xuất dữ liệu: Mô hình kiến trúc ngắt kết nối (Disconnected Architecture) của ADO.NET, cơ chế kết nối qua các Data Provider chuyên biệt (System.Data.SqlClient), nguyên tắc tham số hóa truy vấn để đảm bảo toàn vẹn dữ liệu.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Viết mã nguồn VB.NET chuẩn cú pháp, cấu hình không gian tên, biên dịch và dịch ngược mã bằng ILDASM.EXE, thiết kế giao diện Windows Forms trực quan, lập trình thủ tục T-SQL / Stored Procedure trên SQL Server Management Studio.
  • Kỹ năng phân tích (Analytical skills): Phân tích và thiết kế mô hình phân cấp lớp, lựa chọn kiểu dữ liệu tối ưu kích thước bộ nhớ, xác định phạm vi hoạt động của biến và phương thức, xử lý ngoại lệ có điều kiện dựa trên mã lỗi hệ thống.
  • Năng lực thực hành ứng dụng (Practical competencies): Xây dựng hoàn chỉnh một ứng dụng quản lý máy trạm (Desktop Application) có kết nối cơ sở dữ liệu, hiển thị dữ liệu lưới, in ấn xuất báo cáo thống kê đa cấp và tạo bộ cài đặt triển khai độc lập.

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 tích hợp lý thuyết kiến trúc song hành với thực hành mã nguồn mẫu. Mỗi khái niệm lý thuyết (như CLR, Overloading, Inheritance, ADO.NET) đều được minh họa bằng các đoạn mã nguồn ngắn gọn, kèm giải thích cơ chế thực thi bên dưới tầng bộ nhớ và trình biên dịch.

                  TIẾN TRÌNH DẠY - HỌC TRÊN MỖI CHỦ ĐỀ
  1. Phân tích ca thực hành cụ thể (Code Studies):

    • Minh họa bẫy lỗi chia cho 0 bằng khối Try...Catch...Finally, xuất kết quả ra cửa sổ Output bằng Console.WriteLine().
    • Minh họa giải thuật truyền tham số thông qua hai thủ tục hoán vị Swap1 (dùng ByRef) và Swap2 (dùng ByVal).
    • Minh họa cấu trúc kế thừa qua bài toán thực tế: Xây dựng lớp gốc LineItem với các thuộc tính ID, Item, Price, Quantity và phương thức tính tiền Amount(), sau đó định nghĩa hai lớp con ProductLine (bổ sung Description) và ServiceLine (bổ sung thuộc tính thời gian DateProvided).
    • Minh họa cơ chế khởi tạo và nạp chồng constructor qua lớp BanhBongLan với các phương thức Sub New(), Sub New(ByVal LoaiTrung As String), phân tích sự khác biệt với Sub Class_Initialize trong VB 6.0.
    • Minh họa biến dùng chung và theo dõi số lượng phiên bản đối tượng qua lớp MyCounter sử dụng Private Shared mintCount As Integer.
  2. Bài tập thực hành và Đồ án:

    • Bài tập lập trình Console rèn luyện cú pháp: Tính giai thừa (Giaithua), in dãy số Fibonacci, duyệt mảng tệp tin hệ thống bằng For Each Filename In Files.
    • Dự án ứng dụng biểu mẫu Windows Forms: Khởi tạo và liên kết các form, thiết lập Startup Form, định cấu hình hộp thoại chọn tệp (OpenFileDialog), gán tooltip và kiểm tra dữ liệu đầu vào với ErrorProvider.
    • Đồ án quản lý tích hợp: Triển khai dự án mẫu Quanlythuvien.vbproj, thực thi truy vấn dữ liệu từ SQL Server thông qua SqlCommand, nạp dữ liệu vào bảng và trình bày báo cáo phân cấp trên Crystal Reports.
  3. Phương pháp đánh giá (Assessment methods):

    • Đánh giá quá trình: Kiểm tra khả năng nắm bắt cú pháp, kỹ thuật gỡ lỗi (Debugging), viết đúng cấu trúc lớp và xử lý ngoại lệ qua các bài thực hành trên máy.
    • Đánh giá định kỳ/kết thúc học phần: Xây dựng một đồ án phần mềm hoàn chỉnh bao gồm mã nguồn hướng đối tượng, cơ sở dữ liệu quan hệ có Stored Procedure, giao diện Windows Forms chuẩn hóa và gói cài đặt Setup.exe.
  4. Hướng dẫn tự học:

    • Khai thác không gian tên trong thư viện lớp FCL bằng cách sử dụng câu lệnh Imports (ví dụ Imports System.Console, Imports System.Data.SqlClient).
    • Sử dụng công cụ ILDASM.EXE từ dòng lệnh (C:\ildasm <tên_chương_trình>) để đọc và hiểu cách mã nguồn VB.NET chuyển dịch sang các chỉ thị trung gian IL.

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

Nội dung giáo trình phản ánh giai đoạn chuyển đổi công nghệ then chốt từ kỷ nguyên lập trình hướng thành phần (COM-based) của Visual Basic 6.0 sang nền tảng hướng đối tượng hoàn toàn trên Microsoft .NET Framework.

Đặc tính kỹ thuật Visual Basic 6.0 Visual Basic .NET (Trong giáo trình)
Kiểu dữ liệu cơ sở Các kiểu nguyên thủy đứng riêng lẻ; biến không gán kiểu nhận Variant. Toàn bộ kiểu dữ liệu kế thừa từ lớp Object. Khai báo Dim i, j, k As Integer đều có kiểu Integer.
Khởi tạo biến Khai báo và gán giá trị tách biệt trên 2 dòng. Cho phép khởi gán trực tiếp: Dim X As Integer = 12.
Cơ chế truyền tham số Mặc định là ByRef (truyền tham biến). Mặc định là ByVal (truyền tham trị) để bảo vệ dữ liệu.
Chỉ số mảng Hỗ trợ lệnh Option Base để cấu hình chỉ số bắt đầu từ 0 hoặc 1. Không còn Option Base, tất cả mảng cố định bắt đầu từ chỉ số 0.
Thuộc tính ngầm định Cho phép gán trực tiếp cho đối tượng (ví dụ TextBox1 = "..."). Bắt buộc Default Property phải là dạng mảng chỉ mục (Indexed Property). Gán chuỗi phải chỉ rõ: TextBox1.Text = "...".
Khởi tạo đối tượng Dùng Sub Class_Initialize(), không nhận tham số đầu vào. Dùng Sub New(), hỗ trợ nạp chồng và nhận nhiều bộ tham số khác nhau.
Thu hồi tài nguyên Phụ thuộc hoàn toàn vào cơ chế đếm tham chiếu COM. Sử dụng giao diện IDisposable với phương thức Dispose(), kết hợp trình dọn rác tự động Garbage Collector.
Đa hình & Nạp chồng Hạn chế, không hỗ trợ nạp chồng phương thức cùng tên. Hỗ trợ nạp chồng toàn diện (Overloading) cho cả hàm thường, hàm khởi tạo và phương thức dùng chung (Shared).
Xử lý lỗi Cấu trúc rẽ nhánh On Error GoTo. Cấu trúc xử lý ngoại lệ hiện đại Try...Catch...Finally...End Try.
Đa ngôn ngữ Mã nhị phân biên dịch riêng lẻ, khó kế thừa chéo ngôn ngữ. Biên dịch sang mã chung MSIL/CTS; VB.NET có thể kế thừa trực tiếp các lớp viết bằng C# và ngược lại.

Giáo trình tích hợp các công cụ chuyên dụng trong quy trình phát triển phần mềm doanh nghiệp:

  • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server Management Studio (quản lý bảng, khóa ngoại, thủ tục lưu trữ Stored Procedure, Trigger) và Microsoft Access.
  • Công cụ báo cáo chuyên nghiệp: Crystal Reports với trình biên soạn công thức Formula Editor và tính năng tạo báo cáo tổng hợp phân cấp.
  • Công cụ đóng gói hệ thống: Microsoft Setup Wizard giúp tạo gói cài đặt Windows Installer tiêu chuẩn, tự động quản lý các phụ thuộc assembly trong thư mục hệ thống C:\WinNT\Assembly.

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

  1. Sinh viên đại học và cao đẳng:

    • Sinh viên năm thứ 2 hoặc năm thứ 3 thuộc các khối 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.
    • Học viên các chương trình đào tạo nghề lập trình viên hoặc văn bằng hai ngành CNTT cần tiếp cận kỹ thuật xây dựng phần mềm Desktop trên môi trường Windows.
  2. Yêu cầu kiến thức tiên quyết (Prerequisites):

    • Kiến thức cơ bản về cấu trúc máy tính, hệ điều hành Windows và khái niệm tập tin/thư mục.
    • Đã hoàn thành học phần Nhập môn lập trình hoặc Kỹ thuật lập trình (nắm vững tư duy giải thuật, biến, biểu thức điều kiện và vòng lặp).
    • Đã học hoặc đang học song hành học phần Cơ sở dữ liệu (hiểu cấu trúc bảng, khóa chính, khóa ngoại và các câu lệnh truy vấn SQL cơ bản).
  3. Giảng viên chuyên ngành:

    • Sử dụng làm khung giáo trình chuẩn để biên soạn đề cương chi tiết, bài giảng lý thuyết và hệ thống bài tập thực hành phòng máy cho học phần Lập trình trực quan / Lập trình .NET.
    • Khai thác các ví dụ mẫu có sẵn trong giáo trình (hệ thống lớp LineItem, dự án Quanlythuvien) làm đề tài thảo luận nhóm hoặc đồ án môn học.
  4. Người tự học và Lập trình viên chuyển đổi:

    • Lập trình viên có nền tảng Visual Basic 6.0 cần tài liệu chuẩn để chuyển dịch tư duy và cú pháp sang mô hình .NET Framework hướng đối tượng.
    • Kỹ sư phát triển phần mềm cần tài liệu tra cứu có hệ thống về kiến trúc ADO.NET, Crystal Reports và quy trình đóng gói phần mềm bằng công cụ chuẩn của Microsoft.

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

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

Giáo trình được biên soạn chuyên biệt cho sinh viên đại học, cao đẳng chuyên ngành Công nghệ Thông tin, học viên chuyên ngành kỹ thuật phần mềm và lập trình viên cần nắm vững kỹ thuật phát triển ứng dụng Windows Forms với ngôn ngữ Visual Basic .NET trên môi trường Microsoft .NET Framework.

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 nắm vững kiến thức cơ sở lập trình đại cương (các khái niệm về biến, giải thuật, rẽ nhánh, vòng lặp) và kiến thức nền tảng về cơ sở dữ liệu quan hệ (bảng dữ liệu, khóa chính, cú pháp truy vấn SQL cơ bản) trước khi bắt đầu các nội dung nâng cao về ADO.NET và Crystal Reports.

3. Điểm khác biệt cốt lõi giữa Visual Basic .NET trong giáo trình này so với Visual Basic 6.0 là gì?

Visual Basic .NET là ngôn ngữ hướng đối tượng hoàn toàn chạy trên nền tảng trung gian CLR của .NET Framework. Toàn bộ các kiểu dữ liệu đều kế thừa từ lớp Object, hỗ trợ đầy đủ tính kế thừa (Inherits), nạp chồng (Overloading), xử lý ngoại lệ theo khối Try...Catch...Finally, cơ chế thu hồi bộ nhớ bằng Garbage Collection và phương thức khởi tạo có tham số Sub New().

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

Người học nên cài đặt bộ công cụ Visual Studio .NET và hệ quản trị SQL Server, sau đó gõ và chạy trực tiếp từng đoạn mã nguồn mẫu trong giáo trình (từ các bài tập Console, xây dựng lớp đối tượng đến thiết kế giao diện Windows Forms). Đồng thời, nên sử dụng công cụ ILDASM.EXE để quan sát mã trung gian IL nhằm hiểu sâu cơ chế biên dịch của .NET.

5. Có những công cụ và hệ thống phần mềm bổ trợ nào được đề cập trong giáo trình?

Giáo trình đề cập trực tiếp và hướng dẫn tương tác với các công cụ: môi trường tích hợp Visual Studio .NET (với bộ thiết kế Windows Forms Designer và Solution Explorer), công cụ dịch ngược ILDASM.EXE, hệ quản trị cơ sở dữ liệu Microsoft Access, Microsoft SQL Server Management Studio, bộ thiết kế báo cáo Crystal Reports và trình đóng gói ứng dụng Setup Wizard.


Kết luận

Giáo trình Lập trình Visual Basic .NET trên nền tảng Microsoft .NET Framework cung cấp một hệ thống tri thức hoàn chỉnh từ tầng hạ tầng máy ảo (CLR, FCL, IL, Metadata), cú pháp ngôn ngữ VB.NET, tư duy lập trình hướng đối tượng, đến các kỹ thuật thực thi nghiệp vụ dữ liệu với ADO.NET và triển khai phần mềm.

Lộ trình học tập đề xuất:

  1. Nắm vững cấu trúc kiến trúc .NET Framework, hệ thống kiểu dữ liệu và cú pháp cơ bản của VB.NET.
  2. Làm chủ tư duy hướng đối tượng thông qua thực hành xây dựng lớp, phương thức nạp chồng, hàm tạo Sub New, giải phóng tài nguyên với Dispose và kế thừa lớp.
  3. Thiết kế giao diện đồ họa với Windows Forms và tích hợp các điều khiển tương tác.
  4. Lập trình kết nối, truy xuất và ràng buộc dữ liệu cơ sở dữ liệu thông qua kiến trúc ADO.NET kết hợp hệ quản trị SQL Server.
  5. Thiết kế báo cáo tổng hợp bằng Crystal Reports và đóng gói sản phẩm hoàn chỉnh bằng Setup Wizard.

Hệ thống tài nguyên bổ trợ được giáo trình quy định bao gồm môi trường phát triển Microsoft Visual Studio .NET, Microsoft SQL Server Management Studio, công cụ dòng lệnh ILDASM.EXE và thư viện lớp nền tảng Microsoft .NET Framework Class Library.