UDPM-CĐ-MĐ19-LTWIN2 TUYÊN BỐ BẢN QUYỀN Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể được phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo. Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm. 1 LỜI GIỚI THIỆU Đây là tài liệu được biên soạn theo chương trình đào tạo Cao đẳng nghề Công nghệ thông tin (ứng dụng phần mềm). Để học tốt môn học này, người học nên có kiến thức về lập trình căn bản.
Lập trình Windows 2 là một mô đun nhằm giúp người học có kiến thức và kỹ năng lập trình cơ sở trên môi trường Windows. Với phạm vi của tài liệu này, chúng tôi cung cấp cho người học các kiến thức và kỹ năng chính sau: Cài đặt và sử dụng được với môi trường C# trên bộ Visual Studio.Net 2010 trở lên; Khai báo được lớp đối tượng, các thành phần của lớp đối tượng và sử dụng được lớp đối tượng trên ngôn ngữ C#; Cài đặt và xây dựng được chương trình theo phương pháp hướng đối tượng trên một ngôn ngữ lập trình C#; Xây dựng các ứng dụng Windows Forms đơn giản kết nối đến cơ sở dữ liệu; Nghiêm túc, tỉ mỉ trong quá trình tiếp cận với công cụ mới; Chủ động sáng tạo tìm kiếm các ứng dụng viết trên C#. Trong quá trình biên soạn, chúng tôi có tham khảo nhiều nguồn tài liệu khác nhau và từ nguồn Internet. Mặc dù rất cố gắng biên soạn lại nhưng chắc chắn không tránh khỏi những thiếu sót, tác giả rất mong nhận được những ý kiến đóng góp để tài liệu ngày càng hoàn thiện hơn để cung cấp cho người học những kiến thức và kỹ năng trọng tâm.
Cần Thơ, ngày 17 tháng 06 năm 2018 Tham gia biên soạn 1. Chủ biên Nguyễn Phát Minh 2 MỤC LỤC TRANG LỜI GIỚI THIỆU. 2 GIÁO TRÌNH MÔN HỌC/MÔ ĐUN. Giới thiệu về Microsoft.
Biên dịch và MSIL. 12 BÀI 2: CƠ BẢN VỀ C#. Tại sao phải sử dụng C#. Kiểu dữ liệu.
Biến và hằng. Cách chỉ dẫn và biên dịch. 40 BÀI 3: XÂY DỰNG LỚP ĐỐI TƯỢNG. Lớp và đối tượng.
Sử dụng các thành viên static. Huỷ đối tượng. Truyền tham số và nạp chồng phương thức. Đóng gói dữ liệu với thuộc tính.
58 BÀI 4: KẾ THỪA – ĐA HÌNH. Sự kế thừa. Lớp trừu tượng. Các lớp lồng nhau.
72 BÀI 5: NẠP CHỒNG TOÁN TỬ. Sử dụng từ khóa operator. Hỗ trợ ngôn ngữ. Sử dụng toán tử.
Toán tử so sánh bằng. Toán tử chuyển đổi. 78 BÀI 6: CẤU TRÚC. Định nghĩa một cấu trúc.
Tạo cấu trúc. 84 BÀI 7: THỰC THI GIAO DIỆN. Thực thi giao diện. Truy cập phương thức giao diện.
Thực thi phủ quyết giao diện. Thực thi giao diện tường minh. 97 BÀI 8: MẢNG, CHỈ MỤC, TẬP HỢP. Câu lệnh foreach.
Bộ chỉ mục và giao diện tập hợp. Danh sách mảng, hàng đợi, ngăn xếp. Kiểu từ điển. 128 BÀI 9: XỬ LÝ CHUỖI.
Lớp đối tượng string. Các biểu thức quy tắc. 142 BÀI 10: CƠ CHẾ ỦY QUYỀN VÀ SỰ KIỆN. Cơ chê ủy quyền.
163 BÀI 11: CÁC LỚP CƠ SỞ. Lớp đối tượng trong. Lớp về thư mục và hệ thống. Lớp thao tác tập tin.
Làm việc với tập tin dữ liệu. 179 TÀI LIỆU THAM KHẢO. 186 4 GIÁO TRÌNH MÔN HỌC/MÔ ĐUN Tên môn học/mô đun: LẬP TRÌNH WINDOWS 2 (C#.NET) Mã môn học/mô đun: MĐ 19 Vị trí, tính chất, ý nghĩa và vai trò của môn học/mô đun: - Vị trí: là mô đun được bố trí giảng dạy sau các môn cơ sở nghề. - Tính chất: là mô đun bắt buộc thuộc chuyên môn nghề của chương trình đào tạo Cao đẳng (ứng dụng phần mềm).
- Ý nghĩa và vai trò của môn học/mô đun: Mục tiêu của môn học/mô đun: - Về kiến thức: Hiểu được các kiến thức về nền tảng Microsoft. Biết các kiến thức và kỹ năng về lập trình hướng đối tượng trên C#. Có kiến thức và kỹ năng về giao diện trong C#. Có kiến thức và kỹ năng xử lý mảng, chuỗi; Có kiến thức và kỹ năng về cơ chế uỷ quyền; - Về kỹ năng: Tạo được các ứng dụng trên windows sử dụng ngôn ngữ C# trên môi trường .Net; - Về năng lực tự chủ và trách nhiệm: Nghiêm túc, tỉ mỉ trong việc tiếp nhận kiến thức.
Chủ động, tích cực trong thực hành và tìm kiếm nguồn bài tập liên quan Nội dung của môn học/mô đun: Số Thời gian TT Tên các bài trong mô đun Tổng Lý Thực Kiểm tra* số thuyết hành, (LT hoặc Bài tập TH) 1. Bài 2: Cơ bản về C# 10 4 6 0 3. Bài 3: Xây dựng lớp – Đối tượng 12 4 7 1 4. Bài 4: Kế thừa – Đa hình 6 2 4 0 5.
Bài 5: Nạp chồng toán tử 6 2 4 0 6. Bài 6: Cấu trúc 10 2 7 1 7. Bài 7: Thực thi giao diện 6 2 4 0 8. Bài 8: Mảng, chỉ mục và tập hợp 12 4 8 0 9.
Bài 9: Xử lý chuỗi 10 4 5 1 10. Bài 10: Cơ chế uỷ quyền và sự 4 2 2 0 kiện 11. Bài 11: Các lớp cơ sở.NET 12 2 9 1 Tổng cộng 90 30 56 4 5 BÀI 1: Microsoft.NET Mã bài: MĐ 19 - 01 Giới thiệu: Trong bài học này các sinh viên sẽ được tìm hiểu về nền tảng .NET của Microsoft Mục tiêu: Biết các kiến thức nền tảng Microsoft.Net; Hiểu cơ chế trình biên dịch MSIL; Biết nguồn gốc ra đời của C#.Net; Thao tác được trên môi trường lập trình C#.Net; Nghiêm túc, tỉ mỉ trong quá trình tiếp cận với môi trường lập trình mới. Nội dung chính: 1.
Giới thiệu về Microsoft.NET Tình hình trước khi MS.NET ra đời Cách đây vài năm Java được Sun viết ra, đã có sức mạnh đáng kể, nó hướng tới việc chạy trên nhiều hệ điều hành khác nhau, độc lập với bộ xử lý (Intel, Risc,…). Đặc biệt là Java rất thích hợp cho việc viết các ứng dụng trên Internet. Tuy nhiên, Java lại có hạn chế về mặt tốc độ và trên thực tế vẫn chưa thịnh hành. Mặc dù Sun Corporation và IBM có đẩy mạnh Java, nhưng Microsoft đã dùng ASP để làm giảm khả năng ảnh hưởng của Java.
Để lập trình trên Web, lâu nay người ta vẫn dùng CGI-Perl và gần đây nhất là PHP, một ngôn ngữ giống như Perl nhưng tốc độ chạy nhanh hơn. Ta có thể triển khai Perl trên Unix/Linux hay MS Windows. Tuy nhiên có nhiều người không thích dùng do bản thân ngôn ngữ hay các qui ước khác thường và Perl không được phát triển thống nhất, các công cụ được xây dựng cho Perl tuy rất mạnh nhưng do nhiều nhóm phát triển và người ta không đảm bảo rằng tương lai của nó ngày càng tốt đẹp hơn. Trong giới phát triển ứng dụng trên Windows ta có thể viết ứng dụng bằng Visual C++, Delphi hay Visual Basic, đây là một số công cụ phổ biến và mạnh.
Trong đó Visual C++ là một ngôn ngữ rất mạnh và cũng rất khó sử dụng. Visual Basic thì đơn giản dễ học, dễ dùng nhất nên rất thông dụng. Lý do chính là Visual Basic giúp chúng ta có thể viết chương trình trên Windows dễ dàng mà không cần thiết phải biết nhiều về cách thức MS Windows hoạt động, ta chỉ cần biết một số kiến thức căn bản tối thiểu về MS Windows là có thể lập trình được. Do đó theo quan điểm của Visual Basic nên nó liên kết với Windows là điều tự nhiên và dễ hiểu, nhưng hạn chế là Visual Basic không phải ngôn ngữ hướng đối tượng (Object Oriented).
Delphi là hậu duệ của Turbo Pascal của Borland. Nó cũng giống và tương đối dễ dùng như Visual Basic. Delphi là một ngôn ngữ hướng đối tượng. Các điều khiển dùng trên Form của Delphi đều được tự động khởi tạo mã nguồn.
Tuy nhiên, chức năng khởi động mã nguồn này của Delphi đôi khi gặp rắc rối khi có sự can thiệp của người dùng vào. Sau này khi công ty Borland bị bán và các chuyên gia xây dựng nên Delphi đã chạy qua bên Microsoft, và Delphi không còn được phát triển tốt nữa, người ta không dám đầu tư triển khai phần mềm vào Delphi. Công ty sau này đã phát triển dòng sản phẩm Jbuilder (dùng Java) không còn quan tâm đến Delphi. Tuy Visual Basic bền hơn do không cần phải khởi tạo mã nguồn trong Form khi thiết kế nhưng Visual Basic cũng có nhiều khuyết điểm : • Không hỗ trợ thiết kế hướng đối tượng, nhất là khả năng thừa kế (inheritance).
6 • Giới hạn về việc chạy nhiều tiểu trình trong một ứng dụng, ví dụ ta không thể dùng • Visual Basic để viết một Service kiểu NT. • Khả năng xử lý lỗi rất yếu, không thích hợp trong môi trường Multi- tier • Khó dùng chung với ngôn ngữ khác như C++. • Không có User Interface thích hợp cho Internet. Do Visual Basic không thích hợp cho viết các ứng Web Server nên Microsoft tạo ra ASP (Active Server Page).
Các trang ASP này vừa có tag HTML vừa chứa các đoạn script (VBScript, JavaScript) nằm lẫn lộn nhau. Khi xử lý một trang ASP, nếu là tag HTML thì sẽ được gởi thẳng qua Browser, còn các script thì sẽ được chuyển thành các dòng HTML rồi gởi đi, ngoại trừ các function hay các sub trong ASP thì vị trí các script khác rất quan trọng. Khi một số chức năng nào được viết tốt người ta dịch thành ActiveX và đưa nó vào Web Server. Tuy nhiên vì lý do bảo mật nên các ISP (Internet Service Provider) làm máy chủ cho Web site thường rất dè đặt khi cài ActiveX lạ trên máy của họ.
Ngoài ra việc tháo gỡ các phiên bản của ActiveX này là công việc rất khó, thường xuyên làm cho Administrator nhức đầu. Những người đã từng quản lý các version của DLL trên Windows điều than phiền tại sao phải đăng ký các DLL và nhất là chỉ có thể đăng ký một phiên bản của DLL mà thôi. Và từ “DLL Hell” xuất hiện tức là địa ngục DLL… Sau này để giúp cho việc lập trình ASP nhanh hơn thì công cụ Visual InterDev, một IDE (Integrated Development Environment) ra đời. Visual InterDev tạo ra các Design Time Controls cho việc thiết kế các điều khiển trên web,… Tiếc thay Visual InterDev không bền vững lắm nên sau một thời gian thì các nhà phát triển đã rời bỏ nó.