Ưu điểm Công nghệ COM
Giảm độ phức tạp của toàn bộ phần mềm.
Cho phép phát triển các module phân tán giữa
nhiều nhóm, phòng ban…
Tăng khả năng bảo trì phần mềm.
COM là công nghệ của Microsoft, nó tạo nên các thành
phần giao tiếp với nhau trong ứng dụng phần mềm.
COM tạo ra những thành phần có thể tái sử dụng,
và liên kết các thành phần với nhau để tạo nên ứng dụng
28 trang |
Chia sẻ: candy98 | Lượt xem: 538 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Lập trình Windows Nâng cao - Buổi 2 - Bùi Công Danh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Thiết kế các Controls dùng công nghệ COM
1. Công nghệ COM (Component Object Model) là gì?
2. Vì sao nên sử dụng COM trong lập trình ứng dụng?
1 29/08/2016 Lập trình windows nâng cao
Ưu điểm Công nghệ COM
Giảm độ phức tạp của toàn bộ phần mềm.
Cho phép phát triển các module phân tán giữa
nhiều nhóm, phòng ban
Tăng khả năng bảo trì phần mềm.
2 29/08/2016 Lập trình windows nâng cao
KHÁI NIỆM
COM là công nghệ của Microsoft, nó tạo nên các thành
phần giao tiếp với nhau trong ứng dụng phần mềm.
COM tạo ra những thành phần có thể tái sử dụng,
và liên kết các thành phần với nhau để tạo nên ứng dụng.
3 29/08/2016 Lập trình windows nâng cao
THÀNH PHẦN CỦA COM
Ứng dụng đơn tầng (Single-tier applications) cung cấp
khả năng tái sử dụng bởi components.
Components là các đoạn mã tái sử dụng đảm nhiệm
chức năng của ứng dụng.
Components được phát triển sử dụng
Component Object Model (COM).
4 29/08/2016 Lập trình windows nâng cao
Components
Khái niệm:
Component là một thành phần khả thi nhị phân xây dựng
từ công cụ .NET, được tái sử dụng trong các ứng dụng khác.
Một thành phần .NET là một assembly với phần mở rộng
.DLL, gồm một hay nhiều lớp được biên dịch.
5 29/08/2016 Lập trình windows nâng cao
Components
Phân loại: Có 2 loại
Thành phần xây dựng sẵn của .NET
Thành phần do người dùng định nghĩa.
6 29/08/2016 Lập trình windows nâng cao
Thành phần xây dựng sẵn
.NET Framework cung cấp nhiều components xây dựng sẵn
Ví dụ: các thành phần hiển thị cửa sổ trợ giúp (HelpProvider),
thông báo lỗi (ErrorProvider), hộp thoại chuẩn (ColorDialog,
FontDialog), ngoài ra còn các thành phần không có biểu
diễn trực quan, và chỉ biểu diễn một tính năng nào đó như:
Timer,
7 29/08/2016 Lập trình windows nâng cao
Thành phần xây dựng sẵn
Tham chiếu đến thành phần xây dựng sẵn:
Thành phần không nhìn thấy trên thanh công cụ:
sử dụng hộp thoại Project/ Add reference .
Thành phần nhìn thấy trên thanh công cụ:kích phải trên tab
trên Toolbox, chọn Choose Items, danh sách các thành phần
hiển thị ở Tab COM Components hay .NET Framework
Components.
8 29/08/2016 Lập trình windows nâng cao
Thành phần xây dựng sẵn
Ví dụ thành phần xây dựng sẵn:
1. Kích phải trên tab trên Toolbox, chọn Choose Items
2. Chọn điểu khiển Browse Button ở tab COM Components
3. Kích nút OK, biểu tượng Browse Button sẽ xuất hiện trên
Toolbox.
4. Kéo rê điều khiển Browse Button vào Winform,
sẽ có 2 assemblies .NET tự động tạo và thêm vào ứng dụng,
xem ở mục References trong cửa sổ Solution Explorer
9 29/08/2016 Lập trình windows nâng cao
Thành phần người dùng định nghĩa
.NET Framework cung cấp 3 kiểu thành phần
người dùng định nghĩa:
1. Controls thừa kế từ Control đã có
2. Custom controls: Có 2 loại
a. Không có giao diện
b. Có giao diện
10 29/08/2016 Lập trình windows nâng cao
1. Controls thừa kế từ control đã có
1. File/ New Project, ClassLibrary
2. Viết mã kế thừa lớp điều khiển đã có:
3. Ví dụ: public class CustomControl1 :
System.Windows.Forms.TextBox
4. Viết mã bổ sung hàm, sự kiện, thuộc tính cho lớp
5. Biên dịch để tạo file DLL trong thư mục
\bin\Debug
11 29/08/2016 Lập trình windows nâng cao
Tạo Control NumericTextBox chỉ chấp nhận
nhập giá trị số
1. File/New Project, Windows Forms Control Library
2. Kích phải trên dự án, chọn Add/ User Control
3. Thay mã thừa kế:
public partial class NumericTextBox : TextBox
4. Thêm mã sau:
12 29/08/2016 Lập trình windows nâng cao
Tạo Control NumericTextBox chỉ chấp nhận
nhập giá trị số
13 29/08/2016 Lập trình windows nâng cao
public partial class NumericTextBox : TextBox
{
public NumericTextBox()
{
InitializeComponent();
}
private void NumericTextBox_KeyPress(object sender,
KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar) &&
!char.IsControl(e.KeyChar))
{
e.Handled = true;
}
}
}
Tạo ứng dụng sử dụng control
1. File/ New Project, Windows Forms Application
2. Kích phải trên All Windows Forms trong Toolbox,
chọn Choose Items, ở tab .NET Framework Components,
chọn Browse để duyệt đến file NumericTextBox.dll, OK
3. Tạo form, đặt điều khiển NumericTextBox vào form
4. Chạy ứng dụng
14 29/08/2016 Lập trình windows nâng cao
Bài tập Controls thừa kế từ control đã có
1. Tạo control Upper TextBox chỉ hiển thị chữ hoa.
2. Tạo control DataGridView có dòng chẵn 1 màu
dòng lẻ 1 màu.
15 29/08/2016 Lập trình windows nâng cao
2. Custom controls
Custom controls có 2 loại:
Có giao diện
Không có giao diện
16 29/08/2016 Lập trình windows nâng cao
Tạo Custom Control
1. File/ New Project, Class Library (Không có giao diện)
2. Kích phải trên Project,
chọn Add/ Class:
public class TenClass
3. Viết mã thuộc tính, phương thức...
4. Biên dịch ứng dụng để tạo file DLL
trong thư mục \bin\Debug
17 29/08/2016 Lập trình windows nâng cao
Tạo Custom Control không giao diện
File/ New Project, Class Library, tạo Project NT_Validator
chứa lớp NTValidator.cs
18 29/08/2016 Lập trình windows nâng cao
public class NTValidator
{
public int Number { get; set; }
public NTValidator(int pNumber)
{
this. Number = pNumber;
}
public bool Validate()
{
// Kiem tra NT
}
}
Sử dụng custom controls không giao diện
1. File/ New/ Project, chọn Windows Forms Application
2. Để thêm một tham chiếu đến lớp HopDen,
kích phải trên mục Reference trong cửa sổ Solution Explorer,
chọn mục Add Reference, chọn Browse để duyệt đến lớp
thư viện HopDen.dll
3. Tạo một sự kiện thực thi lệnh sau:
19 29/08/2016 Lập trình windows nâng cao
Sử dụng custom controls không giao diện
NTValidator Validator = new NTValidator(12);
if (Validator.Validate())
this.lblThongBao.Text = “Nguyen to";
else
{
this.lblThongBao.Text = " Khong Nguyen to";
}
20 29/08/2016 Lập trình windows nâng cao
Bài tập sử dụng custom controls không giao diện
Sử dụng custom controls không giao diện thực hiện các
công việc sau: (A1)
1. Kiểm tra kết nối CSDL.
2. Hỗ trợ mở kết nối.
3. Hỗ trợ đóng kết nối.
21 29/08/2016 Lập trình windows nâng cao
3. Custom controls có giao diện (User Controls)
1. Có thể kết hợp nhiều Control để tạo một Control mới.
Control mới hoạt động như một Control đơn.
2. Tất cả user control thừa kế lớp
System.Windows.Forms.UserControl
22 29/08/2016 Lập trình windows nâng cao
Tạo User Controls
1. File/ New Project, Windows Forms Control Library
2. Thiết kế giao diện người dùng của user control
3. Viết mã để thêm phương thức, property cho control.
4. Biên dịch ứng dụng, sẽ tạo tập tin DLL
trong thư mục \bin\Debug
23 29/08/2016 Lập trình windows nâng cao
Sử dụng user control
1. Tạo Project winform
2. Bổ sung điều khiển vừa tạo vào Toolbox bằng cách
kích phải trên Toolbox, chọn Choose Items,
tab .NET Framework Components. Browse để duyệt đến
DLL của user control, OK
24 29/08/2016 Lập trình windows nâng cao
Ví dụ user control
1. File/ New Project, Windows Form Control Library,
gõ tên Project là Digital_Clock
2. Add/ User Control với tên DigitalClock,
thiết kế User Control như sau:
Bổ sung điều khiển Label
Bổ sung điều khiển Timer với thuộc tính:
Interval: 1000
Enabled: True
3. Kích đúp vào điều khiển Timer để mở hàm sự kiện Tick,
bổ sung mã sau:
25 29/08/2016 Lập trình windows nâng cao
Ví dụ user control
label1.Text = DateTime.Now.ToString();
4. Biên dịch ứng dụng: Build/Build Solution
26 29/08/2016 Lập trình windows nâng cao
Ví dụ sử dụng User Controls (Composite controls)
1. File/ New Project, Windows Forms Application
2. Kích phải trên tab All Windows Forms trên Toolbox,
Choose Items, tab .NET Framework Components, Browse,
duyệt đến DigitalClock.dll
3. Tạo form, bổ sung Control DigitalClock vào form
4. Chạy ứng dụng
27 29/08/2016 Lập trình windows nâng cao
BÀI TẬP User control
28 29/08/2016 Lập trình windows nâng cao
Tạo User control có giao diện như sau:
Yêu cầu:
Kết hợp bài tập A1,A2 thực hiện công việc đăng
nhập vào CSDL khi có table NguoiDung(user,pass)
tương ứng.