Tài liệu Sách : Các giải pháp lập trình C#

Thảo luận trong 'Lập Trình' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    172
    Điểm thành tích:
    0
    Xu:
    0Xu
    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 hoà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 quý báu .




    MỤC LỤC




    LỜI NÓI ĐẦU 7


    CẤUTRÚCCỦASÁCH 10


    QUY ƯỚC .12


    YÊUCẦUVỀHỆ THỐNG 15


    CÁCHSỬDỤNG ĐĨACD .18


    MỤCLỤC 20


    Chương 1: PHÁT TRIỂN ỨNG DỤNG 29

    1. Tạoứngdụng Console . 31

    2. Tạoứngdụng dựa-trên-Windows .33

    3. Tạovà sửdụngmodule 37

    4. Tạovà sửdụngthư viện .39

    5. Truyxuất cácđối số dònglệnh .40

    6. Chọnbiêndịch một khối mãvàofilethựcthi 42

    7. Truy xuất một phần tử chương trình

    có têntrùngvới mộttừ khóa 45





    8. Tạovà quảnlý cặpkhóatênmạnh .45

    9. Tạotên mạnhchoassembly .47

    10. Xácminhmộtassemblytên mạnhkhôngbị sửađổi 49

    11. Hoãnviệc ký assembly . 50

    12. Kýassemblyvới chữ ký số Authenticode . 52

    13. Tạovà thiết lậptintưởngmộtSPC thử nghiệm . 54

    14. Quản lýGlobal AssemblyCache 56

    15. Ngănngười khác dịch ngượcmã nguồncủa bạn 56


    Chương 2: THAO TÁC DỮ LIỆU 59

    1. Thaotácchuỗi mộtcách hiệuquả 61

    2. Mã hóachuỗi bằngcác kiểu mãhóa ký tự . 62

    3. Chuyểncác kiểugiátrị cơbảnthành mảngkiểubyte 65

    4. Mã hóadữ liệu nhị phânthànhvăn bản . 67

    5. Sử dụngbiểuthứcchínhquyđểkiểm tradữ liệunhập 70

    6. Sử dụngbiểuthứcchínhquyđãđượcbiêndịch 72

    7. Tạongàyvà giờ từ chuỗi 75

    8. Cộng,trừ,so sánhngàygiờ . 76

    9. Sắpxếpmộtmảnghoặcmột ArrayList .78

    10. Chépmộttậphợpvàomộtmảng . 79

    11. Tạomộttậphợpkiểumạnh 80

    12. Lưumộtđối tượngkhả-tuần-tự-hóavà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ạomiềnứngdụng .88

    2. Chuyểncác đối tượng qualại cácmiềnứngdụng .90

    3. Tránh nạpcác assemblykhôngcần thiếtvào miền ứng dụng . 91

    4. Tạokiểukhông thểvượtquabiênmiềnứngdụng .92

    5. Nạpassemblyvào miềnứngdụnghiệnhành 92

    6. Thựcthi assemblyở miềnứngdụngkhác . 94

    7. Thểhiệnhóa một kiểutrong miềnứngdụngkhác . 95

    8. Truyềndữ liệugiữa cácmiềnứngdụng .101

    9. Giải phóng assemblyvà miềnứngdụng 103

    10. TruyxuấtthôngtinType . 104

    11. Kiểm trakiểucủamộtđối tượng .106

    12. Tạomộtđối tượngbằngcơ chế phảnchiếu .107

    13. Tạomộtđặctínhtùybiến 110

    14. Sử dụng cơ chế phản chiếu để kiểm tra

    các đặctính củamộtphầntử chương trình .113


    Chương 4: TIỂU TRÌNH, TIẾN TRÌNH, VÀ SỰ ĐỒNG BỘ 115

    1. Thựcthi phươngthứcvới thread-pool 117

    2. Thựcthi phươngthứcmột cách bấtđồngbộ . 121

    3. Thựcthi phươngthứcbằngTimer 129

    4. Thựcthi phươngthứcbằngcách rahiệu đối tượngWaitHandle . 132

    5. Thựcthi phươngthứcbằngtiểutrìnhmới 135

    6. Điềukhiểnquátrìnhthựcthi củamộttiểu trình 137






    7. Nhậnbiếtkhi nàomộttiểutrìnhkết thúc 142

    8. Đồngbộhóaquátrìnhthựcthi củanhiềutiểutrình 143

    9. Tạomộtđối tượng tậphợpcó tính chất an-toàn-về-tiểu-trình 148

    10. Khởi chạymột tiếntrìnhmới .149

    11. Kếtthúcmột tiếntrình .152

    12. Bảo đảm chỉ có thể chạy

    mộtthểhiệncủa ứngdụngtại mộtthời điểm 154


    Chương 5: XML 157

    1. Hiểnthị cấutrúccủa mộttài liệu XMLtrongTreeView .159

    2. Chènthêm nútvàotài liệuXML 164

    3. Chènthêm nútvàotài liệuXMLmộtcách nhanhchóng 166

    4. Tìm mộtnút khi biếttêncủa nó .169

    5. Thulấycác nút XMLtrongmộtkhông giantên XMLcụ thể . 170

    6. Tìm các phầntử với biểuthứcXPath . 172

    7. Đọc và ghi XMLmà khôngphải nạptoàn bộtài liệuvào bộ nhớ . 175

    8. Xácnhận tínhhợp lệcủa mộttài liệuXMLdựatrênmộtSchema . 178

    9. Sử dụngXMLSerialization với cácđối tượng tùybiến 184

    10. TạoXML Schemachomột lớp.NET 188

    11. Tạolớptừ mộtXMLSchema 188

    12. Thựchiện phépbiếnđổi XSL 189


    Chương 6: WINDOWS FORM 193

    1. Thêm điềukiểm vàoform lúcthựcthi .195

    2. Liênkết dữ liệuvàođiều kiểm 197

    3. Xử lýtấtcả cácđiều kiểm trên form . 199

    4. Theovết các form khảkiến trongmộtứngdụng 200

    5. Tìm tấtcả cácform trongứngdụngMDI 201

    6. Lưutrữ kích thướcvà vịtrí củaform 203

    7. BuộcListBoxcuộnxuống 205

    8. Chỉ chophépnhậpsố vàoTextBox 206

    9. Sử dụngComboBox có tínhnăngauto-complete .207

    10. Sắpxếp ListViewtheo cộtbấtkỳ 211

    11. Liênkết menu ngữ cảnhvào điềukiểm 213

    12. Sử dụngmộtphầnmenuchínhcho menungữ cảnh . 214

    13. Tạoform đangônngữ 217

    14. Tạoform khôngthể di chuyểnđược .219

    15. Làm choform khôngđườngviềncó thểdi chuyểnđược . 220

    16. Tạomộticon động trongkhayhệthống . 222

    17. Xácnhậntínhhợplệ củađầu vàocho mộtđiềukiểm 223

    18. Thựchiện thao táckéo-và-thả 226

    19. Sử dụngtrợ giúpcảm-ngữ-cảnh .228

    20. Ápdụngphongcách WindowsXP 229

    21. Thay đổi độđụccủa form 231


    Chương 7: ASP.NET VÀ WEB FORM 234





    1. Chuyểnhướngngười dùngsang trangkhác 236

    2. Duy trì trạngthái giữa cácyêu cầu củatrang .237

    3. Tạocác biếnthànhviêncó trạngthái chotrang .243

    4. Đápứngcác sự kiệnphíaclient với JavaScript . 244

    5. Hiểnthị cửasổ pop-upvới JavaScript 247

    6. Thiếtlậpfocuscho điềukiểm 249

    7. Chophépngười dùnguploadfile 250

    8. Sử dụngIISauthentication 253

    9. Sử dụngFormsauthentication 257

    10. Thựchiện xácnhậntínhhợplệ có-chọn-lựa 260

    11. Thêm động điềukiểm vào WebForm .263

    12. Trảvề độngmộtbức hình .266

    13. Nạpđiềukiểm người dùngbằngmã lệnh .270

    14. Sử dụngpage-cachingvà fragment-caching 275

    15. Dùnglại dữ liệuvới ASP.NET Cache . 276

    16. Kích hoạt việcgỡ rối ứngdụngWeb 280

    17. Thay đổi quyềnđãcấpcho mã ASP.NET 284


    Chương 8: ĐỒ HỌA, ĐA PHƯƠNG TIỆN, VÀ IN ẤN 287

    1. Tìm tấtcả cácfontđãđượccài đặt 289

    2. Thựchiện“hittesting”với shape 291

    3. Tạoform có hìnhdạngtùybiến 295

    4. Tạođiềukiểm có hình dạngtùybiến 297

    5. Thêm tínhnăng cuộncho mộtbứchình .301

    6. ThựchiệnchụpmànhìnhDesktop .303

    7. Sử dụng“doublebuffering”đểtăngtốcđộvẽ lại 305

    8. Hiểnthị hình ở dạng thumbnail .308

    9. Pháttiếng“beep”của hệthống .310

    10. Chơi fileaudio .311

    11. Chơi filevideo . 313

    12. Lấythôngtinvề cácmáyin đãđượccài đặt 317

    13. In vănbản đơngiản 321

    14. In vănbản có nhiềutrang 324

    15. In text dạngwrapping 328

    16. Hiển thị print-preview 330

    17. Quản lýtácvụ in . 333

    18. Sử dụngMicrosoftAgent 338


    Chương 9: FILE, THƯ MỤC, VÀ I/O 346

    1. Truyxuất cácthôngtinvề file haythư mục 348

    2. Thiếtlậpcác thuộc tínhcủa filevà thư mục . 353

    3. Chép,chuyển,xóa filehaythư mục . 354

    4. Tính kích thướccủa thư mục 357

    5. Truyxuất thôngtinphiênbảncủa file .359

    6. Sử dụngTreeViewđểhiển thị câythư mụcjust-in-time 360

    7. Đọc và ghi filevăn bản 363

    8. Đọc và ghi filenhị phân .365






    9. Đọc filemộtcách bấtđồng bộ .367

    10. Tìm filephùhợp một biểuthứcwildcard .370

    11. Kiểm trahai filecó trùngnhau haykhông .371

    12. Thaotáctrênđườngdẫnfile .373

    13. Xácđịnhđườngdẫntươngứngvới mộtfilehaythư mục . 374

    14. Làm việcvới đường dẫntươngđối 375

    15. Tạofiletạm . 376

    16. Lấydunglượngđĩacòntrống .377

    17. Hiển thị cáchộpthoại file 379

    18. Sử dụngkhônggianlưu trữ riêng .382

    19. Theodõi hệ thốngfileđểpháthiệnthayđổi .384

    20. TruyxuấtcổngCOM .386


    Chương 10: CƠ SỞ DỮ LIỆU 389

    1. Kếtnối cơsở dữ liệu .392

    2. Sử dụngconnection-pooling .394

    3. Thựcthi câulệnhSQLhoặc thủtụctồntrữ 397

    4. Sử dụngthôngsố trongcâu lệnhSQLhoặc thủtụctồntrữ . 400

    5. Xử lýkết quảcủa truyvấn SQLbằngdata-reader . 403

    6. Thulấytài liệuXMLtừ truyvấn SQLServer 407

    7. Nhậnbiếttấtcả cácthểhiệnSQLServer2000trênmạng 411

    8. Đọc fileExcel với ADO.NET . 413

    9. Sử dụngDataForm Wizard 415

    10. Sử dụngCrystal Report Wizard 424


    Chương 11: LẬP TRÌNH MẠNG 435

    1. Download filethôngquaHTTP .437

    2. Download và xửlý filebằngstream 438

    3. LấytrangHTMLtừ mộtwebsitecó yêucầuxác thực 440

    4. Hiểnthị trangwebtrongứngdụngdựa-trên-Windows .442

    5. Lấyđịa chỉ IPcủa máytính hiệnhành 446

    6. Phângiải tên miềnthành địa chỉ IP 447

    7. “Ping”mộtđịa chỉ IP 448

    8. Giaotiếp bằngTCP .452

    9. Lấyđịa chỉ IPcủa clienttừ kếtnối socket .457

    10. Thiết lậpcáctùychọnsocket 459

    11. TạomộtTCP-serverhỗ-trợ-đa-tiểu-trình 460

    12. Sử dụngTCPmột cách bấtđồngbộ 463

    13. GiaotiếpbằngUDP 467

    14. Gửi e-mail thôngquaSMTP . 470

    15. Gửi và nhận e-mail với MAPI .471


    Chương 12: DỊCH VỤ WEB XML VÀ REMOTING 474

    1. Tránh viếtmã cứng chođịachỉ URLcủa dịch vụ WebXML 477

    2. Sử dụngkỹ thuật response-cachingtrongdịch vụ Web XML .478

    3. Sử dụngkỹ thuật data-cachingtrongdịch vụ WebXML .479





    4. Tạophươngthứcweb hỗ trợ giaodịch . 482

    5. Thiếtlậpthông tinxác thựccho dịch vụ WebXML .485

    6. Gọi bấtđồngbộmộtphương thứcweb 486

    7. Tạolớpkhả-truy-xuất-từ-xa 488

    8. Đăngký tấtcả cáclớpkhả-truy-xuất-từ-xa trong mộtassembly 494

    9. Quảnlý các đối tượng ở xa trongIIS 496

    10. Phátsinhsự kiện trên kênhtruyxuất từ xa . 497

    11. Kiểm soátthời giansốngcủamộtđối tượngở xa .502

    12. Kiểm soátphiênbảncủa các đối tượngở xa . 504

    13. Tạo phương thức một chiều

    với dịch vụ WebXMLhayRemoting 506


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

    1. Cho phép mã lệnh có-độ-tin-cậy-một-phần

    sử dụng assemblytênmạnhcủa bạn 512

    2. Vôhiệubảomậttruyxuất mãlệnh . 514

    3. Vôhiệuviệckiểm traquyềnthựcthi .516

    4. Bảođảm bộthựcthi cấpcho assemblymộtsố quyềnnào đó . 517

    5. Giới hạn cácquyềnđượccấp cho assembly . 519

    6. Xem cácyêu cầuquyềnđượctạobởi một assembly .520

    7. Xácđịnhmã lệnhcó quyền nàođólúcthựcthi haykhông 522

    8. Hạn chế ai đó thừa kế các lớp của bạn

    và chépđècác thànhviênlớp . 523

    9. Kiểm trachứngcứ củamộtassembly 525

    10. Xử lýchứngcứ khi nạpmộtassembly 527

    11. Xử lýbảomậtbộthựcthi bằngchứng cứcủa miềnứngdụng . 529

    12. Xử lý bảo mật bộ thực thi

    bằng chínhsách bảomậtcủa miềnứngdụng .531

    13. Xác định người dùng hiện hành có là thành viên

    của một nhóm Windowsnàođóhaykhông .535

    14. Hạnchếnhữngngười dùngnàođóthựcthi mãlệnh củabạn .538

    15. Giảnhận người dùngWindows 543


    Chương 14: MẬT MÃ 548

    1. Tạosố ngẫunhiên 550

    2. Tính mãbăm củapassword 552

    3. Tính mãbăm củafile .554

    4. Kiểm tramã băm .555

    5. Bảođảm tínhtoànvẹndữ liệubằng mãbăm có khóa . 558

    6. Bảovệ filebằngphépmật hóađối xứng 560

    7. Truylại khóađối xứng từ password .566

    8. Gửi một bímậtbằngphép mật hóabất đối xứng .568

    9. Lưutrữ khóabấtđối xứngmộtcách antoàn .574

    10. Trao đổi khóaphiênđối xứngmộtcách antoàn .577


    Chương 15: KHẢ NĂNG LIÊN TÁC MÃ LỆNH KHÔNG-ĐƯỢC-QUẢN-LÝ 584

    1. Gọi mộthàm trongmộtDLLkhông-được-quản-lý 586

    2. Lấyhandlecủa mộtđiềukiểm,cửasổ, hoặcfile 590






    3. Gọi mộthàm không-được-quản-lýcó sửdụngcấutrúc . 591

    4. Gọi mộthàm không-được-quản-lýcó sửdụngcallback .594

    5. Lấythôngtinlỗi không-được-quản-lý . 595

    6. Sử dụngthànhphầnCOM trong .NET-client 597

    7. Giải phóng nhanhthành phầnCOM . 600

    8. Sử dụngthôngsố tùychọn .600

    9. Sử dụngđiềukiểm ActiveX trong.NET-client .602

    10. Tạothànhphần.NET dùngchoCOM-client .603


    Chương 16: CÁC GIAO DIỆN VÀ MẪU THÔNG DỤNG 605

    1. Hiệnthựckiểukhả-tuần-tự-hóa(serializabletype) .607

    2. Hiệnthựckiểukhả-sao-chép(cloneabletype) . 614

    3. Hiệnthựckiểukhả-so-sánh(comparabletype) 617

    4. Hiệnthựckiểukhả-liệt-kê (enumerabletype) .622

    5. Hiệnthựclớpkhả-hủy(disposableclass) .629

    6. Hiệnthựckiểukhả-định-dạng (formattable type) 633

    7. Hiệnthựclớpngoại lệtùybiến . 636

    8. Hiệnthựcđối số sựkiệntùybiến . 640

    9. HiệnthựcmẫuSingleton .642

    10. Hiện thựcmẫuObserver .643


    Chương 17: SỰ HÒA HỢP VỚI MÔI TRƯỜNG WINDOWS 651

    1. Truyxuất thôngtinmôi trường 653

    2. Lấygiá trị của một biếnmôi trường 657

    3. Ghi mộtsự kiện vàonhậtký sựkiệnWindows .658

    4. Truyxuất WindowsRegistry . 659

    5. Tạomộtdịch vụ Windows .663

    6. Tạomộtbộcài đặtdịch vụ Windows 668

    7. Tạoshortcut trênDesktophay trongStartmenu 671


    PHỤLỤC A:GIỚI THIỆUMỘT SỐ CÔNG CỤ.NET . 676

    A.1Biêndịch cácđoạn mãngắnvới SnippetCompiler 676

    A.2Xâydựngbiểu thứcchínhquyvới Regulator .678

    A.3Sinhmãvới CodeSmith .679

    A.4Viếtkiểm thử đơnvị với NUnit 681

    A.5Kiểm soátmã lệnhvới FxCop 683

    A.6Khảosát assemblyvới .NET Reflector .684

    A.7Lậptài liệu mãlệnh với NDoc 686

    A.8Tạodựnggiải phápvới NAnt .689

    A.9Chuyển đổi phiênbảnASP.NET với ASP.NET VersionSwitcher .691

    A.10Chuyểnđổi phiênbản dự ánvới Visual Studio.NET Project Converter . 692

    A.11ChuyểnmãnguồnVB.NET sang C#với VB.NET to C#Converter 693

    A.12ChuyểnmãnguồnC# sangVB.NET với Convert C#toVB.NET . 693

    A.13Xâydựng websitequảntrị cơsở dữ liệu với ASP.NET Maker1.1 . 694


    PHỤLỤC B:THUẬT NGỮANH - VIỆT .697

    TÀILIỆUTHAM KHẢO 705

     

    Các file đính kèm:

Đang tải...