Tải bản đầy đủ (.pdf) (706 trang)

Các giải pháp lập trình C#

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.02 MB, 706 trang )

1


2

tổng hợp và biên dịch

Nguyễn Ngọc Bình Phương - Thái Thanh Phong
cùng sự cộng tác của
Nguyễn Thanh Nhân - Trần Lê Vĩnh Phong
Nguyễn Quang Nam - Đinh Phan Chí Tâm
Bùi Minh Khoa - Lê Ngọc Sơn
Thái Kim Phụng - Lê Trần Nhật Quỳnh

Chịu trách nhiệm xuất bản: TS. Nguyễn Xuân Thủy
Biên tập: Hồ Nguyễn Thị Thanh Thúy
Trình bày bìa: Nguyễn Thị Thanh Thủy
Chế bản & Sửa bản in: Nguyễn Ngọc Bình Phương

Nhà sách Đất Việt
Địa chỉ: 225 Nguyễn Tri Phương, Q.5, TP. Hồ Chí Minh
Điện thoại: (08) 2 652 039
E-mail:


3

Website: www.dvpub.com.vn


4





Nguyễn Ngọc Bình Phương - Thái
Thanh Phong
tổng hợp & biên dịch
/>

5

NHÀ XUẤT BẢN GIAO THÔNG VẬN TẢI


6


7

LỜI NĨI ĐẦU

LỜI NĨI ĐẦU

C

ác giải pháp lập trình C# khảo sát chiều rộng của thư viện lớp
.NET Framework và cung cấp giải pháp cụ thể cho các vấn đề
thường gặp. Mỗi giải pháp được trình bày theo dạng “vấn đề/giải
pháp” một cách ngắn gọn và kèm theo là các ví dụ mẫu.

Các giải pháp lập trình C# khơng nhằm mục đích hướng dẫn bạn cách lập

trình C#. Tuy vậy, ngay cả khi mới làm quen với lập trình ứng dụng được
xây dựng trên .NET Framework với C#, bạn cũng sẽ nhận thấy quyển sách
này là một tài nguyên vô giá.
Ở mức lý tưởng, khi bạn đối mặt với một vấn đề, quyển sách này sẽ cung cấp
một giải pháp—hay ít nhất nó sẽ gợi cho bạn hướng đi đúng. Ngay cả nếu
bạn chỉ muốn mở rộng kiến thức của mình về thư viện lớp .NET, Các giải
pháp lập trình C# cũng là một tài liệu rất hữu ích.
Bạn khơng thể trở nên thành thạo C# và các lớp trong thư viện lớp .NET nếu
chỉ đơn thuần đọc về chúng, bạn phải sử dụng và thử nghiệm chúng bằng
cách viết thật nhiều chương trình. Cấu trúc và nội dung của quyển sách này
cũng như tính khả thi trong thế giới thực của các giải pháp được đưa ra sẽ
cung cấp điểm khởi đầu hồn hảo, để từ đó làm bàn đạp cho việc thử nghiệm
của chính bạn.
Phần mã lệnh trong quyển sách này đã được viết và chạy thử nghiệm trên
phiên bản 1.1 của .NET Framework. Trong nhiều trường hợp, bạn sẽ nhận
thấy ví dụ mẫu này cũng sẽ chạy trên phiên bản 1.0 hay 2.0 của .NET
Framework, tuy nhiên điều này chưa được thử nghiệm.
Chúng tôi xin chân thành cảm ơn các bạn Nguyễn Thanh Nhân, Trần Lê
Vĩnh Phong, Nguyễn Quang Nam, Đinh Phan Chí Tâm, Bùi Minh Khoa, Lê
Ngọc Sơn, Thái Kim Phụng, và Lê Trần Nhật Quỳnh đã có những đóng góp


8

quý báu cho quyển sách; cảm ơn Nhà xuất bản Giao thông Vận tải và Nhà
sách Đất Việt đã tạo điều kiện cho quyển sách này đến với bạn đọc.
Do lần đầu tiên xuất bản nên quyển sách này khó tránh khỏi những thiếu sót.
Rất mong nhận được ý kiến đóng góp và nhận xét của các bạn để lần tái bản
sau được hoàn thiện hơn.
Trân trọng cảm ơn



9


10

CẤU TRÚC CỦA SÁCH

CẤU TRÚC CỦA SÁCH

Quyển sách này được chia thành 17 chương, mỗi chương tập trung vào một
chủ đề cụ thể trong quá trình tạo các giải pháp C#.

Chương 1: PHÁT TRIỂN ỨNG DỤNG
Chương 2: THAO TÁC DỮ LIỆU
Chương 3: MIỀN ỨNG DỤNG, CƠ CHẾ PHẢN CHIẾU,
VÀ SIÊU DỮ LIỆU
Chương 4: TIỂU TRÌNH, TIẾN TRÌNH, VÀ SỰ ĐỒNG BỘ
Chương 5: XML
Chương 6: WINDOWS FORM
Chương 7: ASP.NET VÀ WEB FORM
Chương 8: ĐỒ HỌA, ĐA PHƯƠNG TIỆN, VÀ IN ẤN
Chương 9: FILE, THƯ MỤC, VÀ I/O
Chương 10: CƠ SỞ DỮ LIỆU
Chương 11: LẬP TRÌNH MẠNG
Chương 12: DỊCH VỤ WEB XML VÀ REMOTING
Chương 13: BẢO MẬT
Chương 14: MẬT MÃ
Chương 15: KHẢ NĂNG LIÊN TÁC

KHÔNG-ĐƯỢC-QUẢN-LÝ

MÃ LỆNH

Chương 16: CÁC GIAO DIỆN VÀ MẪU THƠNG DỤNG
Chương 17: SỰ HỊA HỢP VỚI MƠI TRƯỜNG WINDOWS


11


12

QUY ƯỚC

QUY ƯỚC

Quyển sách này sử dụng các quy ước như sau:
Về font chữ

 Chữ in nghiêng—Dùng cho tên riêng, tên file và thư
mục, và đôi khi để nhấn mạnh.

 Chữ với bề rộng cố định (font Courie New)—Dùng cho
các đoạn chương trình, và cho các phần tử mã lệnh như
câu lệnh, tùy chọn, biến, đặc tính, khóa, hàm, kiểu, lớp,
khơng gian tên, phương thức, module, thuộc tính, thơng
số, giá trị, đối tượng, sự kiện, phương thức thụ lý sự kiện,
thẻ XML, thẻ HTML, nội dung file, và kết xuất từ các câu
lệnh.


 Chữ in đậm với bề rộng cố định—Dùng trong các đoạn
chương trình để nêu bật một phần quan trọng của mã lệnh
hoặc dùng cho các dòng lệnh, câu lệnh SQL.

Về ký hiệu
Vấn đề

Thủ thuật


13

Giải pháp

Ghi chú


14


15

YÊU CẦU VỀ HỆ THỐNG

YÊU CẦU VỀ HỆ THỐNG

Để chạy được những ví dụ mẫu đi kèm quyển sách này, bạn sẽ cần
những phần mềm sau đây:


 Microsoft .NET Framework SDK version 1.1
 Microsoft Visual Studio .NET 2003
 Microsoft Windows 2000, Windows XP,
hoặc Microsoft Windows Server 2003

 Microsoft SQL Server 2000 hoặc MSDE
đối với các mục trong chương 10

 Microsoft Internet Information Services (IIS)

đối với một số mục trong chương 7 và chương 12

Yêu cầu tối thiểu về phần cứng là bộ vi xử lý Pentium II 450 MHz,
với dung lượng RAM tối thiểu là 128 MB nếu bạn đang sử dụng
Microsoft Windows 2000, và là 256 MB nếu bạn đang sử dụng
Windows XP, Windows 2000 Server, hay Windows Server 2003. Bạn
cần khoảng 5 GB dung lượng đĩa cứng còn trống để cài đặt Visual
Studio .NET 2003. Những giá trị này là mức tối thiểu, quá trình phát
triển sẽ dễ dàng hơn trên một hệ thống với dung lượng RAM lớn và
đĩa cứng còn trống nhiều.
Mặc dù bản hiện thực .NET Framework cho Windows của Microsoft
là tiêu điểm của quyển sách này, một mục tiêu quan trọng là cấp một


16

tài ngun hữu ích cho những lập trình viên C# không quan tâm đến
nền mà họ đang làm việc hoặc cơng cụ mà họ truy xuất. Ngồi
những chủ đề đặc biệt không được hỗ trợ trên tất cả nền .NET (như
Windows Form, ADO.NET, và ASP.NET), nhiều ví dụ mẫu trong

quyển sách này đều hợp lệ trên tất cả bản hiện thực .NET.


17


18

CÁCH SỬ DỤNG ĐĨA CD

CÁCH SỬ DỤNG ĐĨA CD

M

ã lệnh được cấp ở dạng tập các giải pháp và dự án
Visual Studio .NET 2003, được tổ chức theo chương và
số đề mục. Mỗi chương là một giải pháp độc lập, và
mỗi đề mục là một dự án độc lập bên trong giải pháp của chương.
Một vài đề mục trong chương 11 và chương 12 trình bày về lập trình
mạng gồm những dự án độc lập có chứa các phần client và server
trong giải pháp của đề mục.
Mặc dù tất cả những ví dụ mẫu được cấp ở dạng dự án Visual Studio
.NET, nhưng hầu hết đều bao gồm một file nguồn đơn mà bạn có thể
biên dịch và chạy độc lập với Visual Studio .NET. Nếu không sử
dụng Visual Studio .NET 2003, bạn có thể định vị mã nguồn cho một
đề mục cụ thể bằng cách duyệt cấu trúc thư mục của ví dụ mẫu. Ví
dụ, để tìm mã nguồn cho mục 4.3, bạn sẽ tìm nó trong thư mục
Chuong04\04-03. Nếu sử dụng trình biên dịch dịng lệnh thì phải
bảo đảm rằng bạn đã thêm tham chiếu đến tất cả các assembly cần
thiết.

Một số ứng dụng mẫu yêu cầu các đối số dịng lệnh (sẽ được mơ tả
trong phần văn bản của đề mục). Nếu sử dụng Visual Studio .NET,
bạn có thể nhập các đối số này trong Project Properties (mục
Debugging của phần Configuration Properties). Nhớ rằng, nếu cần
nhập tên thư mục hay file có chứa khoảng trắng thì bạn cần đặt tên
đầy đủ trong dấu nháy kép.
Tất cả ví dụ truy xuất dữ liệu ADO.NET được tạo với SQL Server
2000. Chúng cũng có thể được sử dụng với SQL Server 7 và MSDE.


19

Visual Studio .NET có chứa các kịch bản SQL để cài đặt các cơ sở
dữ liệu mẫu Northwind và Pubs nếu chúng chưa hiện diện (các file
instnwnd.sql và instpubs.sql trong thư mục C:\Program
Files\Microsoft Visual Studio .NET 2003\SDK\ v1.1\Samples\Setup).
Bạn có thể chạy các kịch bản này bằng Query Analyzer (với SQL
Server) hay OSQL.exe (với MSDE).
Để sử dụng các đề mục trong chương 7 và chương 12, bạn cần chép
chúng vào thư mục I:\CSharp\ (đường dẫn này là mã cứng trong các
file dự án Visual Studio .NET). Bạn cũng sẽ cần tạo một thư mục ảo
có tên là CSharp ánh xạ đến I:\CSharp. Bạn có thể cài đặt phép ánh
xạ này bằng IIS Manager. Thực hiện theo các bước dưới đây:
1.

Khởi chạy IIS Manager (chọn Start | Control Panel |
Administrative Tools | Internet Information Services).

2.


Khởi chạy Virtual Directory Wizard trong IIS Manager bằng
cách nhắp phải vào Default Web Site và chọn New | Virtual
Directory từ menu ngữ cảnh.

3.

Nhắp Next để bắt đầu. Mẩu thơng tin đầu tiên là bí danh
CSharp. Nhắp Next để tiếp tục.

4.

Mẩu thông tin thứ hai là thư mục vật lý I:\CSharp. Nhắp Next
để tiếp tục.

5.

Cửa sổ thuật sĩ cuối cùng cho phép bạn điều chỉnh quyền cho
thư mục ảo. Bạn nên sử dụng các thiết lập mặc định. Nhắp
Next.

6.

Nhắp Finish để kết thúc trình thuật sĩ. Bạn sẽ thấy thư mục ảo
này trong phần cây của IIS Manager.

7.

Khai triển thư mục ảo CSharp trong IIS thành thư mục nằm
trong CSharp\Chuong07\07-01.


8.

Nhắp phải vào thư mục này, chọn Properties, rồi nhắp vào
nút Create trong thẻ Directory để chuyển thư mục này thành
thư mục ứng dụng Web.

9.

Lặp lại bước 8 cho mỗi mục trong chương 7.

10. Theo trình tự đã được trình bày trong các bước 7-9, tạo thư
mục ứng dụng Web cho các đề mục 12.2, 12.3, 12.4, và 12.6
trong chương 12.


20

MỤC LỤC

MỤC LỤC

LỜI NÓI ĐẦU................................................................................................................................ 7
CẤU TRÚC CỦA SÁCH..............................................................................................................10
QUY ƯỚC................................................................................................................................... 12
YÊU CẦU VỀ HỆ THỐNG.......................................................................................................... 15
CÁCH SỬ DỤNG ĐĨA CD...........................................................................................................18
MỤC LỤC.................................................................................................................................... 20
Chương 1: PHÁT TRIỂN ỨNG DỤNG
1. Tạo ứng dụng Console........................................................................................... 31
2. Tạo ứng dụng dựa-trên-Windows........................................................................... 33

3. Tạo và sử dụng module.......................................................................................... 37
4. Tạo và sử dụng thư viện......................................................................................... 39
5. Truy xuất các đối số dòng lệnh............................................................................... 40
6. Chọn biên dịch một khối mã vào file thực thi.......................................................... 42
7.
Truy
xuất
một
phần
tử
chương
trình
có tên trùng với một từ khóa........................................................................................ 45

29


21

8. Tạo và quản lý cặp khóa tên mạnh......................................................................... 45
9. Tạo tên mạnh cho assembly................................................................................... 47
10. Xác minh một assembly tên mạnh khơng bị sửa đổi............................................ 49
11. Hỗn việc ký assembly......................................................................................... 50
12. Ký assembly với chữ ký số Authenticode............................................................. 52
13. Tạo và thiết lập tin tưởng một SPC thử nghiệm................................................... 54
14. Quản lý Global Assembly Cache.......................................................................... 56
15. Ngăn người khác dịch ngược mã nguồn của bạn................................................ 56
Chương 2: THAO TÁC DỮ LIỆU

59


1. Thao tác chuỗi một cách hiệu quả.......................................................................... 61
2. Mã hóa chuỗi bằng các kiểu mã hóa ký tự............................................................. 62
3. Chuyển các kiểu giá trị cơ bản thành mảng kiểu byte............................................ 65
4. Mã hóa dữ liệu nhị phân thành văn bản................................................................. 67
5. Sử dụng biểu thức chính quy để kiểm tra dữ liệu nhập.......................................... 70
6. Sử dụng biểu thức chính quy đã được biên dịch....................................................72
7. Tạo ngày và giờ từ chuỗi........................................................................................ 75
8. Cộng, trừ, so sánh ngày giờ................................................................................... 76
9. Sắp xếp một mảng hoặc một ArrayList................................................................... 78
10. Chép một tập hợp vào một mảng......................................................................... 79
11. Tạo một tập hợp kiểu mạnh.................................................................................. 80
12. Lưu một đối tượng khả-tuần-tự-hóa vào file......................................................... 81
Chương 3: MIỀN ỨNG DỤNG, CƠ CHẾ PHẢN CHIẾU, VÀ SIÊU DỮ LIỆU

86

1. Tạo miền ứng dụng.................................................................................................88
2. Chuyển các đối tượng qua lại các miền ứng dụng................................................. 90
3. Tránh nạp các assembly không cần thiết vào miền ứng dụng............................... 91
4. Tạo kiểu không thể vượt qua biên miền ứng dụng................................................. 92
5. Nạp assembly vào miền ứng dụng hiện hành........................................................ 92
6. Thực thi assembly ở miền ứng dụng khác............................................................. 94
7. Thể hiện hóa một kiểu trong miền ứng dụng khác................................................. 95
8. Truyền dữ liệu giữa các miền ứng dụng............................................................... 101
9. Giải phóng assembly và miền ứng dụng.............................................................. 103
10. Truy xuất thơng tin Type..................................................................................... 104
11. Kiểm tra kiểu của một đối tượng.........................................................................106
12. Tạo một đối tượng bằng cơ chế phản chiếu.......................................................107
13. Tạo một đặc tính tùy biến....................................................................................110

14.
Sử
dụng

chế
phản
chiếu
để
kiểm
tra
các đặc tính của một phần tử chương trình...............................................................113
Chương 4: TIỂU TRÌNH, TIẾN TRÌNH, VÀ SỰ ĐỒNG BỘ
1. Thực thi phương thức với thread-pool..................................................................117
2. Thực thi phương thức một cách bất đồng bộ....................................................... 121
3. Thực thi phương thức bằng Timer........................................................................129
4. Thực thi phương thức bằng cách ra hiệu đối tượng WaitHandle......................... 132
5. Thực thi phương thức bằng tiểu trình mới............................................................135
6. Điều khiển quá trình thực thi của một tiểu trình.................................................... 137

115


22

7. Nhận biết khi nào một tiểu trình kết thúc.............................................................. 142
8. Đồng bộ hóa q trình thực thi của nhiều tiểu trình..............................................143
9. Tạo một đối tượng tập hợp có tính chất an-tồn-về-tiểu-trình..............................148
10. Khởi chạy một tiến trình mới............................................................................... 149
11. Kết thúc một tiến trình......................................................................................... 152
12.

Bảo
đảm
chỉ

thể
chạy
một thể hiện của ứng dụng tại một thời điểm............................................................ 154
Chương 5: XML

157

1. Hiển thị cấu trúc của một tài liệu XML trong TreeView......................................... 159
2. Chèn thêm nút vào tài liệu XML............................................................................ 164
3. Chèn thêm nút vào tài liệu XML một cách nhanh chóng...................................... 166
4. Tìm một nút khi biết tên của nó.............................................................................169
5. Thu lấy các nút XML trong một không gian tên XML cụ thể................................. 170
6. Tìm các phần tử với biểu thức XPath................................................................... 172
7. Đọc và ghi XML mà khơng phải nạp tồn bộ tài liệu vào bộ nhớ......................... 175
8. Xác nhận tính hợp lệ của một tài liệu XML dựa trên một Schema....................... 178
9. Sử dụng XML Serialization với các đối tượng tùy biến........................................ 184
10. Tạo XML Schema cho một lớp .NET.................................................................. 188
11. Tạo lớp từ một XML Schema..............................................................................188
12. Thực hiện phép biến đổi XSL..............................................................................189
Chương 6: WINDOWS FORM

193

1. Thêm điều kiểm vào form lúc thực thi................................................................... 195
2. Liên kết dữ liệu vào điều kiểm.............................................................................. 197
3. Xử lý tất cả các điều kiểm trên form..................................................................... 199

4. Theo vết các form khả kiến trong một ứng dụng.................................................. 200
5. Tìm tất cả các form trong ứng dụng MDI.............................................................. 201
6. Lưu trữ kích thước và vị trí của form.................................................................... 203
7. Buộc ListBox cuộn xuống......................................................................................205
8. Chỉ cho phép nhập số vào TextBox...................................................................... 206
9. Sử dụng ComboBox có tính năng auto-complete................................................. 207
10. Sắp xếp ListView theo cột bất kỳ........................................................................ 211
11. Liên kết menu ngữ cảnh vào điều kiểm.............................................................. 213
12. Sử dụng một phần menu chính cho menu ngữ cảnh......................................... 214
13. Tạo form đa ngôn ngữ........................................................................................ 217
14. Tạo form không thể di chuyển được................................................................... 219
15. Làm cho form không đường viền có thể di chuyển được................................... 220
16. Tạo một icon động trong khay hệ thống............................................................. 222
17. Xác nhận tính hợp lệ của đầu vào cho một điều kiểm........................................ 223
18. Thực hiện thao tác kéo-và-thả............................................................................ 226
19. Sử dụng trợ giúp cảm-ngữ-cảnh.........................................................................228
20. Áp dụng phong cách Windows XP......................................................................229
21. Thay đổi độ đục của form....................................................................................231
Chương 7: ASP.NET VÀ WEB FORM

234


23

1. Chuyển hướng người dùng sang trang khác........................................................236
2. Duy trì trạng thái giữa các yêu cầu của trang....................................................... 237
3. Tạo các biến thành viên có trạng thái cho trang................................................... 243
4. Đáp ứng các sự kiện phía client với JavaScript................................................... 244
5. Hiển thị cửa sổ pop-up với JavaScript.................................................................. 247

6. Thiết lập focus cho điều kiểm................................................................................249
7. Cho phép người dùng upload file..........................................................................250
8. Sử dụng IIS authentication....................................................................................253
9. Sử dụng Forms authentication..............................................................................257
10. Thực hiện xác nhận tính hợp lệ có-chọn-lựa...................................................... 260
11. Thêm động điều kiểm vào Web Form................................................................. 263
12. Trả về động một bức hình...................................................................................266
13. Nạp điều kiểm người dùng bằng mã lệnh...........................................................270
14. Sử dụng page-caching và fragment-caching...................................................... 275
15. Dùng lại dữ liệu với ASP.NET Cache................................................................. 276
16. Kích hoạt việc gỡ rối ứng dụng Web.................................................................. 280
17. Thay đổi quyền đã cấp cho mã ASP.NET.......................................................... 284
Chương 8: ĐỒ HỌA, ĐA PHƯƠNG TIỆN, VÀ IN ẤN

287

1. Tìm tất cả các font đã được cài đặt...................................................................... 289
2. Thực hiện “hit testing” với shape.......................................................................... 291
3. Tạo form có hình dạng tùy biến............................................................................ 295
4. Tạo điều kiểm có hình dạng tùy biến.................................................................... 297
5. Thêm tính năng cuộn cho một bức hình............................................................... 301
6. Thực hiện chụp màn hình Desktop....................................................................... 303
7. Sử dụng “double buffering” để tăng tốc độ vẽ lại.................................................. 305
8. Hiển thị hình ở dạng thumbnail............................................................................. 308
9. Phát tiếng “beep” của hệ thống.............................................................................310
10. Chơi file audio..................................................................................................... 311
11. Chơi file video..................................................................................................... 313
12. Lấy thông tin về các máy in đã được cài đặt...................................................... 317
13. In văn bản đơn giản............................................................................................ 321
14. In văn bản có nhiều trang....................................................................................324

15. In text dạng wrapping.......................................................................................... 328
16. Hiển thị print-preview.......................................................................................... 330
17. Quản lý tác vụ in................................................................................................. 333
18. Sử dụng Microsoft Agent.................................................................................... 338
Chương 9: FILE, THƯ MỤC, VÀ I/O
1. Truy xuất các thông tin về file hay thư mục.......................................................... 348
2. Thiết lập các thuộc tính của file và thư mục......................................................... 353
3. Chép, chuyển, xóa file hay thư mục..................................................................... 354
4. Tính kích thước của thư mục................................................................................357
5. Truy xuất thông tin phiên bản của file................................................................... 359
6. Sử dụng TreeView để hiển thị cây thư mục just-in-time ...................................... 360
7. Đọc và ghi file văn bản.......................................................................................... 363
8. Đọc và ghi file nhị phân.........................................................................................365

346


24

9. Đọc file một cách bất đồng bộ...............................................................................367
10. Tìm file phù hợp một biểu thức wildcard.............................................................370
11. Kiểm tra hai file có trùng nhau hay khơng...........................................................371
12. Thao tác trên đường dẫn file...............................................................................373
13. Xác định đường dẫn tương ứng với một file hay thư mục................................. 374
14. Làm việc với đường dẫn tương đối.................................................................... 375
15. Tạo file tạm......................................................................................................... 376
16. Lấy dung lượng đĩa còn trống.............................................................................377
17. Hiển thị các hộp thoại file.................................................................................... 379
18. Sử dụng không gian lưu trữ riêng....................................................................... 382
19. Theo dõi hệ thống file để phát hiện thay đổi....................................................... 384

20. Truy xuất cổng COM........................................................................................... 386
Chương 10: CƠ SỞ DỮ LIỆU

389

1. Kết nối cơ sở dữ liệu.............................................................................................392
2. Sử dụng connection-pooling................................................................................. 394
3. Thực thi câu lệnh SQL hoặc thủ tục tồn trữ.......................................................... 397
4. Sử dụng thông số trong câu lệnh SQL hoặc thủ tục tồn trữ................................. 400
5. Xử lý kết quả của truy vấn SQL bằng data-reader............................................... 403
6. Thu lấy tài liệu XML từ truy vấn SQL Server........................................................ 407
7. Nhận biết tất cả các thể hiện SQL Server 2000 trên mạng.................................. 411
8. Đọc file Excel với ADO.NET................................................................................. 413
9. Sử dụng Data Form Wizard.................................................................................. 415
10. Sử dụng Crystal Report Wizard.......................................................................... 424
Chương 11: LẬP TRÌNH MẠNG

435

1. Download file thông qua HTTP............................................................................. 437
2. Download và xử lý file bằng stream...................................................................... 438
3. Lấy trang HTML từ một website có yêu cầu xác thực.......................................... 440
4. Hiển thị trang web trong ứng dụng dựa-trên-Windows......................................... 442
5. Lấy địa chỉ IP của máy tính hiện hành.................................................................. 446
6. Phân giải tên miền thành địa chỉ IP...................................................................... 447
7. “Ping” một địa chỉ IP.............................................................................................. 448
8. Giao tiếp bằng TCP...............................................................................................452
9. Lấy địa chỉ IP của client từ kết nối socket............................................................. 457
10. Thiết lập các tùy chọn socket..............................................................................459
11. Tạo một TCP-server hỗ-trợ-đa-tiểu-trình............................................................ 460

12. Sử dụng TCP một cách bất đồng bộ.................................................................. 463
13. Giao tiếp bằng UDP............................................................................................ 467
14. Gửi e-mail thông qua SMTP............................................................................... 470
15. Gửi và nhận e-mail với MAPI .............................................................................471
Chương 12: DỊCH VỤ WEB XML VÀ REMOTING
1. Tránh viết mã cứng cho địa chỉ URL của dịch vụ Web XML................................ 477
2. Sử dụng kỹ thuật response-caching trong dịch vụ Web XML............................... 478
3. Sử dụng kỹ thuật data-caching trong dịch vụ Web XML.......................................479

474


25

4. Tạo phương thức web hỗ trợ giao dịch ............................................................... 482
5. Thiết lập thông tin xác thực cho dịch vụ Web XML...............................................485
6. Gọi bất đồng bộ một phương thức web................................................................ 486
7. Tạo lớp khả-truy-xuất-từ-xa.................................................................................. 488
8. Đăng ký tất cả các lớp khả-truy-xuất-từ-xa trong một assembly.......................... 494
9. Quản lý các đối tượng ở xa trong IIS.................................................................... 496
10. Phát sinh sự kiện trên kênh truy xuất từ xa ....................................................... 497
11. Kiểm soát thời gian sống của một đối tượng ở xa .............................................502
12. Kiểm soát phiên bản của các đối tượng ở xa..................................................... 504
13.
Tạo
phương
thức
một
chiều
với dịch vụ Web XML hay Remoting.......................................................................... 506

Chương 13: BẢO MẬT

509

1.
Cho
phép

lệnh
có-độ-tin-cậy-một-phần
sử dụng assembly tên mạnh của bạn........................................................................ 512
2. Vơ hiệu bảo mật truy xuất mã lệnh....................................................................... 514
3. Vô hiệu việc kiểm tra quyền thực thi..................................................................... 516
4. Bảo đảm bộ thực thi cấp cho assembly một số quyền nào đó............................. 517
5. Giới hạn các quyền được cấp cho assembly....................................................... 519
6. Xem các yêu cầu quyền được tạo bởi một assembly...........................................520
7. Xác định mã lệnh có quyền nào đó lúc thực thi hay khơng.................................. 522
8.
Hạn
chế
ai
đó
thừa
kế
các
lớp
của
bạn
và chép đè các thành viên lớp................................................................................... 523
9. Kiểm tra chứng cứ của một assembly.................................................................. 525

10. Xử lý chứng cứ khi nạp một assembly .............................................................. 527
11. Xử lý bảo mật bộ thực thi bằng chứng cứ của miền ứng dụng ......................... 529
12.
Xử

bảo
mật
bộ
thực
thi
bằng chính sách bảo mật của miền ứng dụng...........................................................531
13.
Xác
định
người
dùng
hiện
hành


thành
viên
của một nhóm Windows nào đó hay khơng............................................................... 535
14. Hạn chế những người dùng nào đó thực thi mã lệnh của bạn........................... 538
15. Giả nhận người dùng Windows.......................................................................... 543
Chương 14: MẬT MÃ

548

1. Tạo số ngẫu nhiên................................................................................................ 550

2. Tính mã băm của password..................................................................................552
3. Tính mã băm của file.............................................................................................554
4. Kiểm tra mã băm................................................................................................... 555
5. Bảo đảm tính tồn vẹn dữ liệu bằng mã băm có khóa......................................... 558
6. Bảo vệ file bằng phép mật hóa đối xứng.............................................................. 560
7. Truy lại khóa đối xứng từ password .....................................................................566
8. Gửi một bí mật bằng phép mật hóa bất đối xứng................................................. 568
9. Lưu trữ khóa bất đối xứng một cách an tồn .......................................................574
10. Trao đổi khóa phiên đối xứng một cách an toàn.................................................577
Chương 15: KHẢ NĂNG LIÊN TÁC MÃ LỆNH KHÔNG-ĐƯỢC-QUẢN-LÝ
1. Gọi một hàm trong một DLL không-được-quản-lý................................................ 586
2. Lấy handle của một điều kiểm, cửa sổ, hoặc file.................................................. 590

584


×