Professional Documents
Culture Documents
2 Windows Forms
2 Windows Forms
2 Windows Forms
cs
Tab Order :
● Trong C#, "Tab Order" là một tính năng quản lý thứ tự mà các control (điều khiển)
trên một form được chọn khi người dùng nhấn phím Tab. Mục đích của việc này là
để tạo ra một trải nghiệm người dùng mượt mà và logic khi đi qua các phần khác
nhau của giao diện người dùng.
● Khi bạn thiết kế một form, bạn có thể muốn người dùng có thể di chuyển một cách
dễ dàng và trực quan từ một control này sang control khác bằng phím Tab. Để làm
điều này, bạn cần chỉ định thứ tự tab - đó là số thứ tự mà bạn muốn control được
chọn. Control có thứ tự tab thấp nhất sẽ được chọn đầu tiên, và sau đó là control tiếp
theo có thứ tự cao hơn, và cứ thế cho đến khi tất cả các control trên form đều được
truy cập.
● Bạn có thể thiết lập thứ tự tab bằng cách sử dụng thuộc tính TabIndex của mỗi
control hoặc sử dụng chức năng "Tab Order" từ menu của Visual Studio để kéo và
thả các control vào vị trí mong muốn trong danh sách thứ tự tab.
KIẾN TRÚC 3 LỚP
1. KIẾN TRÚC 3 LỚP": Kiến trúc ba lớp. Đây là mô hình thiết kế
phần mềm chia ứng dụng thành ba thành phần lô-gíc chính: lớp
giao diện người dùng (UI), lớp ứng dụng (logic nghiệp vụ), và lớp
dữ liệu (lưu trữ dữ liệu).
2. "3-LAYER TÁCH RIÊNG CÁC THÀNH PHẦN UI VÀ DATA":
Trong kiến trúc ba lớp, các thành phần giao diện người dùng và
dữ liệu được tách biệt. Điều này nâng cao tính module, cho phép
phát triển, bảo trì, và mở rộng độc lập.
3. "UI: -> HIỂN THỊ! VÀ QUẢN LÍ SỰ KIỆN, TRIỆU GỌI DATA TỪ
ĐÂU ĐÓ": Lớp giao diện người dùng có trách nhiệm hiển thị thông
tin cho người dùng và quản lý sự kiện (như nhấn nút), và nó gọi
dữ liệu từ một nơi nào đó, có thể là lớp dữ liệu hoặc dịch vụ.
4. "DATA: -> CUNG CẤP DATA CHO UI, NHẬN YÊU CẦU XỬ LÍ
DATA TỪ UI: lấy hết data, search ai đó, update 1 ai đó, xóa 1 ai
đó...": Lớp dữ liệu cung cấp dữ liệu cho giao diện người dùng và
xử lý các yêu cầu từ giao diện người dùng, chẳng hạn như truy
xuất toàn bộ dữ liệu, tìm kiếm một người, cập nhật thông tin của
một người, hoặc xóa một người.
a. "- CUNG CẤP DATA CHO NHIỀU UI KHÁC: WEB,
FORMS, MOBILE": Lớp dữ liệu cũng phục vụ nhiều giao
diện người dùng khác nhau, có thể là một phần của ứng
dụng web, forms, hoặc ứng dụng di động.
b. ">>>>> RE-USE MỨC CAO": Đề cập đến khả năng tái sử
dụng cao, có nghĩa là các thành phần hoặc dịch vụ nên
được thiết kế để có thể tái sử dụng trong các phần khác
nhau của ứng dụng hoặc thậm chí là giữa các ứng dụng
khác nhau.
c. ">>>>> VIẾT THEO STYLE THƯ VIỆN - LIBRARY -
DEPENDENCY - .DLL TÁCH RỜI CHO NHIỀU NƠI
REFERENCE VÀO": Nói về việc viết mã theo phong cách
thư viện, với các phụ thuộc như file DLL (Dynamic Link
Libraries) trong C#, có thể được tham chiếu và sử dụng ở
nhiều nơi trong ứng dụng.
d. ">>>>> TÁCH PROJECT, THÊM MỚI PROJECT": Khuyến
nghị tách biệt các dự án và thêm mới dự án, có lẽ đề cập
đến việc tổ chức mã nguồn thành các dự án khác nhau để
dễ quản lý và mở rộng hơn.
"BAO NHIÊU PROJECT BẤY NHIỀU .DLL (.JAR CỦA BÊN JAVA)": Mỗi
dự án sẽ có một file DLL tương ứng, tương tự như file JAR trong Java.
Mỗi dự án biên dịch thành một thư viện riêng có thể được sử dụng bởi
các dự án khác.
Class Library
Đổi tên :
⇒ Một khi đã là thư viện thì nó phải là Public , nếu internal thì
project kia ko thể lấy project này .
====================================================================
TƯ DUY THIẾT KẾ CODE-CẤU TRÚC CODE CỦA BÀI TRÊN
⇒ CHỈ CẦN THÊM 1 CLASS Ở VÙNG PHỤC VỤ DATA CHO
FORM, FORM KHÔNG CẦN ĐỔI ,NHỜ BẠN CODE .
Tạo StudentsRepositoryMySQL
Và thằng bạn phải sửa code vì tên hàm thằng bạn khác mình
GHI NHỚ:INTERFACE
⇒ Để tránh sửa nhiều như vậy: → Interface (thêm,xóa,sửa)-->
bắt buộc implement
Đổi Lại là public :
⇒ DI : Dependency Injection
Tiếp theo mình tạo class MySQL