Các lớp .NET Framework
Có lẽ một trong những lợi ích lớn nhất của viết mã có quản, ít nhất là đối với một nhà
phát triển, đó là bạn có thể sử dụng thư viện lớp cơ sở của .NET.
Thư viện lớp cơ sở của .NET là một tập hợp lớn các lớp mã có quản được viết bởi
Microsoft, những lớp này cho phép bạn thao tác rất nhiều các tác vụ
sẵn có trong
Windows. Bạn có thể tạo các lớp của mình từ các lớp có sẵn trong thư viện lớp cơ sở của
.NET dựa trên cơ chế thừa kế đơn.
Thư viện lớp cơ sở của .NET rất trực quan và rất dễ sử dụng. Ví dụ, để tạo một tiến trình
mới, bạn đơn giản gọi phương thức Start() của lớp Thread. Để disable m
ột TextBox, bạn
đặt thuộc tính Enabled của đối tượng TextBox là false. Thư viện này được thiết kế để dễ
xài như là Visual Basic và Java. Tất nhiên là nó dễ sử dụng hơn các lớp của C++: các vỏ
bọc ngoài các hàm API thô như GetDIBits(), RegisterWndClassEx(), và IsEqualIID().
Mặt khác, những nhà phát triển C++ luôn dễ dàng truy cập đến các API, ngược lại những
nhà phát triển Visual Basic và Java đã bị giới hạn trong những thao tác hệ thống cơ bản
mà ngôn ngữ đã từng ngôn ngữ
đã cung cấp sẵn. Cái mới của thư viện lớp cơ sở .NET là
kết hợp tính đơn giản của các thư viện Visual Basic và Java với hầu hết các đặc tính trong
các hàm Windows API. Có nhiều đặc tính của Windows không sẵn có trong các lớp của
thư viện .NET, trong trường hợp đó bạn cần phải gọi các hàm API, những đặc tính này
thường là các đặc tính lạ, ít sử dụng. Những đặc tính thông dụng đều đã
được hỗ trợ đầy
đủ trong thư viện lớp của .NET. Và nếu bạn muốn gọi một hàm API, .NET gọi là
"platform-invoke", cơ chế này luôn bảo đảm tính đúng đắn của kiểu dữ liệu, vì vậy thao
tác này không khó hơn việc gọi trực tiếp từ mã C++, nó được hỗ trợ cho cả C#, C++, và
VB.NET.
WinCV, một tiện ích Windows-based, bạn có thể dùng để tham khảo các lớp, cấu trúc,
giao diện, kiểu liệt kê trong thư vi
ện .NET base class. Chúng ta sẽ tìm hiểu WinCV trong
chương 6.
Dù rằng chủ đề của chương 5 bàn về các lớp cơ sở, nhưng thực tế, chúng tôi chỉ nói về
các cú pháp của ngôn ngữ C#, chủ yếu quyển sách này chỉ cho các bạn về cách dùng các
lớp khác nhau trong thư viện .NET base class. Một cách tổng quát .NET base classes bao
gồm các vấn đề:
• Các đặc tính lõi cung cấp bởi IL (chủ yếu là về các kiểu dữ liệu trong CTS,
Chương 5)
• Hỗ trợ Windows GUI và controls (Chương 7)
• Web Forms (ASP.NET, 16)
• Data Access (ADO.NET, 10)
• Directory Access (Chương 13)
• File system và registry access (Chương 12)
• Networking và web browsing (Chương 20)
• .NET attributes và reflection (Chương 5)
• Truy xuất vào hệ điều hành Windows (các biến môi trường vv , Chương 23)
• COM interoperability (18)
Một cách tình cờ, hầu hết các thư viện lớp cơ sở của .NET được viết bằng C#!
Các Namespace
Namespace là cách mà .NET dùng để chống lại sự xung đột tên giữa các lớp. Chẳng hạn
như trường hợp bạn có một lớp mô tả khách hàng gọi là lớp Customer, và sau đó một
người khác cũng có một lớp giống như vậy.
Một namespace không chỉ là một nhóm các kiểu dữ liệu, mà nó làm cho tên củ
a tất cả các
kiểu dữ liệu trong cùng một không gian tên sẽ có tiếp đầu ngữ là tên của namespace đó.
Nó cũng cho phép một không gian tên nằm trong một không gian tên khác. Ví dụ, hầu hết
các hỗ trợ chung của các thư viện lớp cơ sở .NET đều nằm trong một không gian tên gọi
là System. Lớp cơ sở Array nằm trong không gian tên này có tên đầy đủ là System.Array.
.NET yêu cầu tất cả các kiểu đều phải được định nghĩa trong một không gian tên, ví dụ
bạn có thể đặt lớp Customer của bạn trong một không gian tên gọi là
YourCompanyName. Lớp này sẽ có tên đầy đủ là YourCompanyName.Customer.
Nều một namespace không được khai báo rõ ràng, các kiểu sẽ được đặt vào một
namespace toàn cục không tên.
Microsoft khuyên rằng các hỗ trợ của bạn nên đặt vào một namespace ít nhất là 2 cấp,
cấp một là tên của công ty của bạn, cấp hai là tên của công nghệ hoặc là phần mềm của
gói sản phẩm đó, chẳng h
ạn như YourCompanyName.SalesServices.Customer. Làm như
vậy trong hầu hết các trường hợp đảm bảo rằng, các lớp trong ứng dụng của bạn không
xung đột tên với các lớp của các tổ chức khác.
Chúng ta sẽ xem xét thêm về namespace ở chương 2.
. cả C#, C++, và
VB .NET.
WinCV, một tiện ích Windows-based, bạn có thể dùng để tham khảo các lớp, cấu trúc,
giao diện, kiểu liệt kê trong thư vi
ện .NET. Windows GUI và controls (Chương 7)
• Web Forms (ASP .NET, 16)
• Data Access (ADO .NET, 10)
• Directory Access (Chương 13)
• File system và registry access