1. Trang chủ
  2. » Giáo án - Bài giảng

ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG - Học phần: Lập trình nâng cao – DotNet - Nhóm môn học: Cơ sở ngành (Kỹ thuật lập trình) - Bộ môn: Công nghệ phần mềm

25 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 536,5 KB

Nội dung

BỘ MÔN DUYỆT ĐỀ CƯƠNG CHI TIẾT BÀI Thay mặt nhóm mơn Chủ nhiệm Bộ mơn GIẢNG học (Dùng cho 45 tiết giảng) Học phần: Lập trình nâng cao – DotNet Nhóm mơn học: Cơ sở ngành (Kỹ Phan Ngun Hải thuật lập trình) Phan Việt Anh Bộ mơn: Cơng nghệ phần mềm Khoa (Viện): Công nghệ Thông tin Thông tin nhóm mơn học TT Họ tên giáo viên Học hàm Học vị Đơn vị công tác (Bộ môn) Phan Việt Anh GV Ths Công nghệ phần mềm Cao Tuấn Anh TG KS Công nghệ phần mềm Thời gian, địa điểm làm việc: Bộ môn Công nghệ phần mềm, khoa Công nghệ Thông tin Điện thoại, email: 069 515 338 bmcnpmmta@yahoo.com Bài giảng 1: Sử dụng Attributes lập trình NET Chương 1: 1.1 + 1.2 + 1.3 + 1.4 Tiết thứ: - Tuần thứ: - Mục đích, yêu cầu: + Cung cấp cho sinh viên kiến thức attribute chức chúng ứng dụng C# + Sau học xong sinh viên có kỹ sử dụng số attribute để gọi mã lệnh không quản lý, thị cho trình biên dịch - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; - Địa điểm: Giảng đường P2 phân cơng - Nội dung chính: Sử dụng Attributes lập trình NET 1.1 Tìm hiểu Attribute Tự học, tự nghiên cứu: tiết + Attributes thành phần thêm vào dùng để khai báo thêm thông tin lớp, phương thức, thuộc tính, kiểu … + Attributes áp dụng nên phần tử khác chương trình Các phần tử bao gồm: assemblies, modules, classes, structs, enums, constructors, methods, properties, fields, return values, delegates - Có loại Attributes + Built – in attributes (attributes hệ thống) attributes định nghĩa trước Net Framework, vài attributes định nghĩa trước STAThread, DLLImport, Conditional, Obsolete + Custom attributes (attributes người dùng định nghĩa) Tên gọi cho biết attributes người dùng tạo Khi gặp trường hợp built – in attributes không đáp ứng đủ yêu cầu người lập trình custom attributes tạo để giải vấn đề + Để áp dụng attribute cho phần tử ta sử dụng dấu ngoặc vuông bên tên attribute kèm với tham số kèm có, đứng trước phần tử áp dụng + Một số built – in attributes thông dụng: Conditional, DllImport, Obsolete - Conditional + Đánh dấu phương thức với attribute Conditional ngăn ngừa trình biên dịch từ việc biên dịch phương thức hay câu lệnh mà tham khảo đến tên biểu tượng khơng định nghĩa + Có thể dùng cho điều kiện biên dịch + using namespace System.Diagnostics vào đầu chương trình + Ví dụ: - DllImport + Dllimport attribute sử dụng để gọi “mã không quản lý” (unmanaged code) chương trình C# + Unmanaged code code phát triển bên Net Framework + Phải using namespace System.Runtime.InteropServices phải + Ví dụ - Obsolete + Obsolete - attribute dùng để đánh dấu phương thức xem obsolete ( không dùng nữa) + Tuỳ thuộc vào việc thiết lập attribute này, trình biên dịch sinh cảnh báo hay lỗi gặp mã cố gắng dùng phương thức + Các trường hợp sử dụng Obsolete attribute + Ví dụ 1.2 Sử dụng Attribute hệ thống - Debug - Release 1.3 Tùy biến Attribute + lớp custom Attributes phải kế thừa trực tiếp gián tiếp từ lớp System.Attribute đánh dấu với thuộc tính AttributeUsage + Các lớp Attributes phải khai báo public vào có constructor + Ví dụ minh họa 1.4 Tạo lớp Attribute + Tạo sử dụng lớp attribute dùng để comment code - Yêu cầu SV chuẩn bị: + Tìm hiểu ý nghĩa trường hợp sử dụng attribute + Nắm cách sử dụng attribute + Tạo lớp tùy biến attribute Bài giảng 2: Sử dụng Assembly NET Chương 2: 1.1 + … + 1.7 Tiết thứ: - Tuần thứ: - Mục đích, yêu cầu: + Cung cấp cho sinh viên khái niệm assembly chức chúng ứng dụng C# + Nắm kiểu assembly: riêng tư chia sẻ + Cách sử dụng số file tài nguyên thông dụng: audio, image, text chương trình C# + Cách xác định phiên - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; Tự học, tự nghiên cứu: tiết - Địa điểm: Giảng đường P2 phân cơng - Nội dung chính: 2.1 Tìm hiểu cấu trúc assembly - Khái niệm: Assembly khối NET framework, sử dụng để giải vấn đề xác định phiên triển khai ứng dụng DLL Một Assembly tập thông tin yêu cầu thời điểu chạy để thực thi ứng dụng Các thông tin xem siêu liệu, file DLL file thực thi exe - Có loại assembly NET Framework + Private (riêng tư): assembly triển khai cho ứng dụng, khơng có khả chia sẻ với ứng dụng khác + Shared (Chia sẻ): Có thể truy cập ứng dụng khác - Tìm hiểu đặc điểm Assembly - Cấu trúc Assembly + Siêu liệu assembly + Siêu liệu Type + Mã MSIL + Các tài nguyên - Tạo assembly + Tạo assembly file + Tạo assembly lưu trữ nhiều file 2.2 Tìm hiểu Module 2.3 Làm việc với file Resource - File tài nguyên file audio, image, text, … thêm vào assembly - Các file tài nguyên lưu theo cặp khóa – giá trị (key - value) Khóa xác định tài nguyên theo tên, giá trị trỏ đến nội dung file tài nguyên (lưu dạng bảng băm) - Tạo sử dụng file tài nguyên 2.4 Tìm hiểu GAC (Global Assembly Cache) - Các assembly chia sẻ lưu trữ vùng nhớ đệm – Global Assembly Cache(GAC) Thư mục cache lưu trữ ổ cứng máy tính sau: - Khi assembly cần chia sẻ ứng dụng cài đặt GAC Khi NET Framework cài đặt vào hệ thống, global assembly cache tự động tạo ổ đĩa C máy tính GAC đặt theo đường dẫn C:\WINDOWS\assembly windows XP C:\WINNT\assembly windows 2000 - Các assembly trì GAC với thơng tin phiên khác Cơng cụ gacutil.exe sử dụng để cải đặt gở bỏ assembly GAC - Tạo tên mạnh cho assembly + Ký assembly với chữ ký số + Tạo cặp khóa + Sử dụng tên mạnh + Tham chiếu assembly 2.5 Tạo assembly chia sẻ 2.6 Cài đặt Assembly chia sẻ GAC - Tìm hiểu phương pháp triển khai assembly GAC - Hiển thị toàn assembly 2.7 Xác định phiên (Versioning) - Yêu cầu SV chuẩn bị: + Đọc chương p78 - 104 tài liệu [1] + Nắm cách sử dụng file tài nguyên thường dùng: audio, image, text Bài giảng 3: Đa luồng (Multithreading) Chương 3: 3.1 + 3.2 + 3.3 + 3.4 + 3.5 Tiết thứ: - Tuần thứ: - Mục đích, yêu cầu: + Nắm cách thực thi tiểu trình sử dụng thread-pool - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; Tự học, tự nghiên cứu: tiết - Địa điểm: Giảng đường P2 phân cơng - Nội dung chính: 3.1 Thực thi phương thức với thread – pool Các bược thực thi phương thức tiểu trình thread-pool thực thi: + Khai báo phương thức chứa mã lệnh cần thực thi; phương thức phải trả void nhận đối số + Tạo thể (instance) ủy nhiệm System.Threading.WaitCallback tham chiếu đến phương thức + Gọi phương thức tĩnh QueueUserWorkItem lớp System.Threading.ThreadPool, truyền thể ủy nhiệm tạo làm đối số Bộ thực thi xếp thể ủy nhiệm vào hàng đợi thực thi tiểu trình thread-pool sẵn sàng Việc sử dụng thread-pool thực thi giúp đơn giản hóa việc lập trình hỗ-trợ-đa-tiểu-trình Tuy nhiên trước định sử dụng Thread-pool cần lưu ý vấn đề sau: + Bộ thực thi quy định số tiểu trình tối đa cho thread-pool; tối đa 25 tiểu trình cho CPU hệ thống + Thread-pool sử dụng để thực thi phương thức cách bất đồng kiện định thời Do dẫn đến tranh chấp tiểu trình thread-pool, hàng đợi trở nên dài + Khơng nên sử dụng thread-pool để thực thi tiến trình chạy thời gian dài + Không nên đặt tiểu trình thread-pool vào trạng thái đợi thời gian dài + Không thể điều khiển lịch trình tiểu trình + Một cơng việc đặt vào hàng đợi khơng thể hủy dừng - Ví dụ 3.2 Thực thi phương thức cách bất đồng Thực thi phương thức bất đồng bộ: tính thực thi phương thức tiếp tục thực công việc khác phương thức chạy tiểu trình riêng biệt Sau phương thức hồn tất, bạn cần lấy trị trả Phương pháp: - Khai báo ủy nhiệm có chữ ký giống phương thức cần thực thi - Tạo thể ủy nhiệm tham chiếu đến phương thức - Gọi phương thức BeginInvoke thể ủy nhiệm để thực thi phương thức - Sử dụng phương thức EndInvoke để kiểm tra trạng thái phương thức thu lấy trị trả hoàn tất - Phương thức EndInvoke cho phép bạn lấy trị trả phương thức thực thi bất đồng bộ, trước hết phải xác định kết thúc Có kỹ thuật dùng để xác định phương thức thực thi bất đồng kết thúc hay chưa: + Blocking + Polling + Waiting + Callbacks 3.3 Thực thi phương thức tiểu trình Là trường hợp thực thi mã lệnh tiểu trình riêng, muốn kiểm sốt hồn tồn trình thực thi trạng thái tiểu trình Phương pháp: + Khai báo phương thức trả void khơng có đối số + Tạo thể ủy nhiệm System.Threading.ThreadStart tham chiếu đến phương thức + Tạo đối tượng System.Threading.Thread mới, truyền thể ủy nhiệm cho phương thức khởi dựng + Kế đến, gọi phương thức Thread.Start để bắt đầu thực thi phương thức 3.4 Điều khiển trình thực thi tiểu trình Sử dụng phương thức Abort, Interrupt, Resume, Start, Suspend Thread cần điều khiển để kiểm sốt tiểu trình chạy, tạm dừng dừng q trình thực thi 3.5 Nhận biết tiểu trình kết thúc Để kiểm tra tiểu trình kết thúc hay chưa kiểm tra thuộc tính Thread.IsAlive Thuộc tính trả true tiểu trình khởi chạy chưa kết thúc hay bị hủy Ví dụ - Yêu cầu SV chuẩn bị: + Đọc p106 – 129 chương tài liệu [1] Bài giảng 4: Đa luồng (Multithreading) – tiếp Chương 3: 3.6 + 3.7 + 3.8 Tiết thứ: - Tuần thứ: - Mục đích, yêu cầu: + Cung cấp cho sinh viên cách tạo, đồng trình thực thi nhiều tiểu trình + Sử dụng timer để thực thi công việc cách tự động + Điều khiển trình thực thi tiểu trình - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; Tự học, tự nghiên cứu:1 tiết - Địa điểm: Giảng đường P2 phân cơng - Nội dung chính: 3.6 Đồng hóa q trình thực thi nhiều tiểu trình Thách thức lớn việc viết ứng dụng hỗ trợ đa tiểu trình bảo đảm tiểu trình làm việc hòa hợp Việc thường gọi “đồng hóa tiểu trình” bao gồm: - Bảo đảm tiểu trình truy xuất đối tượng liệu dùng chung cách phù hợp để không gây sai lạc - Bảo đảm tiểu trình thực thi thật cần thiết phải đảm bảo chúng thực thi với chi phí tối thiểu chúng rỗi Để giải vấn đề dùng số lớp thuộc không gian tên System.Threading sau: + Monitor + AutoResetEvent + ManualResetEvent + Mutex 3.7 Thực thi phương thức timer 3.8 Tạo tiểu trình cách sử dụng BackgroundWorker - Yêu cầu SV chuẩn bị: + Đọc p129 – 141 chương tài liệu [1] + Biết cách sử dụng timer để thực thi công việc cách tự động + Sử dụng BackgroundWorker để tạo điều khiển trình thực thi tiểu trình Bài giảng 5: Mơ hình đối tượng thành phần (Component Object Model – COM) Chương 4: 4.1 + 4.2 + 4.3 Tiết thứ: - Tuần thứ: - Mục đích, yêu cầu: + Nắm kỹ thuật kết hợp COM NET, bao gồm: - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; - Địa điểm: Giảng đường P2 phân cơng - Nội dung chính: 4.1 Chuyển từ COM sang NET Tự học, tự nghiên cứu: tiết - Tìm hiểu COM Component Object Model (COM) công nghệ phần mềm phát triển Microsoft năm 1993 COM gồm có cơng nghệ OLE, OLE Automation, ActiveX, COM+, DCOM Tầm quan trọng COM sử dụng đối tượng qua môi trường máy móc khác Nghĩa là, COM cho phép sử dụng lại đối tượng mà không cần biết thực thi bên chúng COM phương thức mà mã nhị phân chia sẻ ứng dụng ngôn ngữ khác thông qua giao diện Đặc trưng: - COM tách hệ thống lớn thành hệ thống pha thiết kế - Nó giúp xây dựng hệ thống với thành phần mà tạo sử dụng công cụ COM Sự cần thiết phải kết hợp COM NET: - Sự kết hợp thể qua cách sau: + Các thành phần NET gọi thành phần COM + Các thành phần COM gọi thành phần NET Xây dựng khả kết hợp với COM, thực cách: + Tạo Runtime Callable Wrapper (RCW) cho thành phần COM + Thao chiếu siêu liệu từ DLL sử dụng thuộc tính phương thức - Sử dụng thành phần COM NET + Thêm tham chiếu vào project, sử dụng Project → Add Reference + Click vào bảng COM hộp thoại Add Reference + Chọn thành phần COM từ danh sách + Click OK để tạo RCW cho đối tượng kiểu thư viện chọn 4.2 Bộ đóng gói lời gọi lúc thực thi (RCW) Mã quản lý giao tiếp với đối tượng COM thông qua ủy nhiệu Runtime Callable Wrapper(RCW) Chức RCW kết nối lời gọi NET client đối tượng COM RCW tạo cách sử dụng tiện ích Tlbimp Visual Studio Các giao diện COM RCW Tương tác thành phần COM object NET client sử dụng RCW Một số giao diện COM callable wrapper (CCW) - IUnknown - IDispatch - IConnectionPointContainer - IConnectionPoint 4.3 Sử dụng thành phần NET từ COM Để gọi thành phần COM, ứng dụng NET phải tạo lớp cho phép gọi COM client Các bước để gọi thành phần NET COM sau: - Tạo thư viện có phần mở rộng tlb, cho phép COM client xác định vị trí lớp, phương thức, thuộc tính kiện - Sử dụng cơng cụ Assembly Registration Tool (regasm) để tạo thư viện đăng ký - Cài đặt NET assembly vào GAC (global assembly cache), tạo cặp khóa tên mạnh - Yêu cầu SV chuẩn bị: + Đọc tài liệu làm tập ví dụ Bài giảng 6: Mơ hình đối tượng thành phần (Component Object Model – COM) – tiếp Chương 4: 4.4 Tiết thứ: - Tuần thứ: - Mục đích, yêu cầu: + Cung cấp sinh viên số kỹ thuật thừa kế mã triệu gọi mã lệnh không quản lý - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; Tự học, tự nghiên cứu: tiết - Địa điểm: Giảng đường P2 phân cơng - Nội dung chính: 4.4 Gọi hàm API NET - Sự cần thiết thừa kế mã hàm API - Lời gọi + Platform Invocation Services (PInvoke) công nghệ cho phép mã quản lý gọi hàm không quản lý DLL - Gọi mã lệnh không quản lý (hàm, phương thức) + Gọi hàm trực tiếp từ DLL + Gọi phương thức đối tượng COM - Quá trình làm việc lời gọi mã lệnh PInvoke phụ thuộc vào siêu liệu để định vị hàm liệu thời điểm chạy Các bước thực sau: + Định vị DLL chứa hàm + Nạp DLL vào nhớ + Định vị địa hàm nhớ đẩy tham số lên stack thu thập liệu yêu cầu Bài tập - Yêu cầu SV chuẩn bị: + Đọc tài liệu làm ví dụ theo yêu cầu giáo viên Bài giảng 7: Cơ chế ủy quyền kiện Chương 5: 5.1 Tiết thứ: - Tuần thứ: - Mục đích, yêu cầu: + Cung cấp cho sinh viên kiến thức chế ủy quyền + Sau học xong sinh viên phải thành thạo phân biệt chế đơn ủy quyền đa ủy quyền - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; Tự học, tự nghiên cứu: tiết - Địa điểm: Giảng đường P2 phân cơng - Nội dung chính: 5.1 Ủy quyền Ủy quyền kiểu liệu tham chiếu dùng để đóng gói phương thức với tham số kiểu trả xác định Chúng ta đóng gói phương thức thích hợp vào đối tượng ủy quyền Trong ngôn ngữ C++ ngơn ngữ khác, làm điều cách sử dụng trỏ hàm (function pointer) trỏ đến hàm thành viên Không giống trỏ hàm C/C++, ủy quyền hướng đối tượng, kiểu liệu an toàn (type-safe) bảo mật Một điều thú vị hữu dụng ủy quyền khơng cần biết khơng quan tâm đến lớp đối tượng mà tham chiếu tới Điều cần quan tâm đến đối tượng đối mục phương thức kiểu trả phải phù hợp với đối tượng ủy quyền khai báo Để tạo ủy quyền ta dùng từ khóa delegate theo sau kiểu trả tên phương thức ủy quyền đối mục cần thiết Ví dụ private delegate double FX(double x) Khai báo định nghĩa ủy quyền tên FX, đóng gói phương thức lấy tham số kiểu double trả giá trị double - Sử dụng ủy quyền xác nhận phương thức lúc thực thi Ủ y quyền dùng để xác định loại phương thức dùng để xử lý kiện để thực callback chương trình ứng dụng Chúng sử dụng để xác định phương thức tĩnh instance phương thức mà trước chương trình thực Ví dụ: private delegate double FX(double x); private static double Sinh_x(double x) { return (Math.Exp(x) - Math.Exp(-x)) / 2; } private static double Cosh_x(double x) { return (Math.Exp(x) + Math.Exp(-x)) / 2; } static void Main() { FX objCulculate = new FX(Sinh_x); Console.WriteLine("Sinh({0})={1}", 1.2, objCulculate(1.2)); objCulculate = new FX(Cosh_x); Console.WriteLine("Sinh({0})={1}", 1.2, objCulculate(1.2)); } - Dùng ủy quyền tĩnh - Dùng ủy quyền thuộc tính - Thiết lập thứ tự thi hành với mảng ủy quyền - Multicasting + ủy quyền đóng gói tham chiếu đến nhiều phương thức khác thời điểm, gọi “multicast delegate” + Multicast delegate kiểu lớp System.MulticastDelegate Định nghĩa Multicast delegate giống thông thường kiểu trả void + Khi multicaset delegate gọi, tồn phương thức gọi theo thứ tự chúng add vào Ví dụ private static delegate void FX(double x); private static void Sinh_x(double x) { Console.WriteLine("Sinh({0})={1}", x, Math.Sinh(x)); } private static void Cosh_x(double x) { Console.WriteLine("Cosh({0})={1}", x, Math.Cosh(x)); } static void Main() { FX objCulculate = new FX(Sinh_x); objCulculate +=new FX(Cosh_x); if (objCulculate != null) objCulculate(1.2); } - Yêu cầu SV chuẩn bị: + Đọc p112 – 114 tài liệu[2] + Làm ví dụ giảng Bài giảng 8: Cơ chế ủy quyền kiện – tiếp Chương 5: 5.2 Tiết thứ: - Tuần thứ: - Mục đích, yêu cầu: + Cung cấp cho sinh viên kiến thức kiện giao diện đồ họa + Sử dụng kỹ thuật đa ủy quyền để đáp ứng kiện + Sử dụng kỹ thuật ủy quyền để giao tiếp đối tượng ứng dụng - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; Tự học, tự nghiên cứu: tiết - Địa điểm: Giảng đường P2 phân cơng - Nội dung chính: 5.2 Sự kiện Giao diện người dùng đồ họa (Graphic user inteface - GUI), Windows trình duyệt yêu cầu chương trình đáp ứng kiện Một kiện button nhấn, mục thực đơn chọn, tập tin chuyển giao hoàn tất v.v… Người dùng khơng thể tiên đốn trước trình tự kiện phát sinh Hệ thống im lìm kiện xảy ra, thực thi hành động để đáp trả kiện Trong mơi trường GUI, có nhiều điều khiển (control, widget) phát sinh kiện Ví dụ, ta nhấn button, phát sinh kiện Click Khi ta thêm vào drop-down list phát sinh kiện ListChanged Khi hệ thống nhận kiện, chuyển vào cho trình xử lý thực để đáp ứng kiện xảy - Cơ chế publishing – subscribing Trong C#, lớp phát sinh (publish) tập kiện mà lớp khác bắt lấy (subscribe) Khi lớp phát kiện, tất lớp subscribe thông báo - Sự kiện ủy quyền (event and delegate) Event C# cài đặt delegate Lớp publish định nghĩa deleagte mà lớp subscribe phải cài đặt Khi kiện phát sinh, phương thức lớp subscribe gọi thông qua delegate Cách quản lý kiện gọi event handler (trình xử lý kiện) Ta khai báo event handler ta làm với delegate Event handler NET Framework trả kiểu void nhận vào tham số Tham số thứ cho biết nguồn kiện; có nghĩa đối tượng publish Tham số thứ hai đối tượng thừa kế từ lớp EventArgs EventArgs lớp sở cho tất liệu kiện Ví dụ: - Thực giao tiếp đối tượng lập trình Window Form - Yêu cầu SV chuẩn bị: + Đọc tài liệu làm ví dụ theo yêu cầu giáo viên Bài giảng 9: Lập trình tổng quát, cấu trúc liệu nâng cao C# Chương 6: 6.1 Tiết thứ: - Tuần thứ: - Mục đích, u cầu: - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; Tự học, tự nghiên cứu: tiết - Địa điểm: Giảng đường P2 phân công - Nội dung chính: 6.1 Lập trình tổng qt - Giới thiệu lập trình tổng qt: Tính an tồn, tổng qt, hiệu - Kiểu, tham số, Constructor tổng quát - Lớp tổng quát - Các ràng buộc với kiểu tham số - Giao diện tổng quát - Cách sử dụng tham số tổng quát - Contructor, phương thức tổng quát - Kiểu ủy quyền tổng quát - Xây dựng kiểu, phương thức tổng quát - Yêu cầu SV chuẩn bị: Bài giảng 10: Lập trình tổng quát, cấu trúc liệu nâng cao C# tiếp Chương 6: 6.2 Tiết thứ: - Tuần thứ: 10 - Mục đích, u cầu: - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; Tự học, tự nghiên cứu: tiết - Địa điểm: Giảng đường P2 phân cơng - Nội dung chính: 6.2 Kiểu tập hợp tổng quát: List Dictionary - Giao diện Icollection - Giao diện Ilist - Giao diện Idictionary - Lớp List - Lớp Dictionary - Kiểu cấu trúc KeyValuePair - Lớp SortedDictionary - Lớp Queue - Lớp Stack - Yêu cầu SV chuẩn bị: Bài giảng 11: Làm việc với XML Chương 7: 7.1 + 7.2 + 7.3 Tiết thứ: - Tuần thứ: 11 - Mục đích, yêu cầu: - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; Tự học, tự nghiên cứu: tiết - Địa điểm: Giảng đường P2 phân công - Nội dung chính: 7.1 XML NET - Các đặc tính XML - Sự cần thiết XML NET - Các đặc tính khơng gian tên System.Xml - Liệt kê mô tả lớp thường sử dụng không gian tên System.Xml XmlReader: Cung cấp nhanh chóng, khơng lưu trữ, chuyển tiếp truy cập liệu XML XmlWriter: XmlValidatingReader: Cung cấp DTD hay XML Schema xác nhận đọc văn XML XmlDocument: Một thực tài liệu W3C Object Model nghị cung cấp lớp học để đại diện thao tác tài liệu XML nhớ 7.2 Xử lý XML với C# - Các thủ tục để ghi file XML - Các thủ tục đọc file XML - Cách xác thực file XML 7.3 Document Object Model NET - Tìm hiểu Document Object Model (DOM) - Liệt kê mơ tả đặc tính lớp XmlNode XmlNodeList - Yêu cầu SV chuẩn bị: Bài giảng 12: Làm việc với XML – tiếp Chương 7: 7.4 + 7.5 Tiết thứ: - Tuần thứ: 12 - Mục đích, u cầu: - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; Tự học, tự nghiên cứu: tiết - Địa điểm: Giảng đường P2 phân cơng - Nội dung chính: 7.4 Xử lý liệu sử dụng DOM NET - Mô tả XPath kỹ thuật điều hướng cho node chọn - Mô tả cách xây dựng mơ hình DOM file XML sử dụng lớp NET - Cách thêm liệu vào file XML tồn - Cách sử liệu file XML tồn 7.5 Chuyển đổi XML sử dụng XSLT - Tìm hiểu chuyển đổi XML - Các lớp sử dụng để chuyển đổi XML - Các bước để chuyển đổi tài liệu XML - Yêu cầu SV chuẩn bị: Bài giảng 13: Một số kỹ thuật xây dựng chương trình Chương 8: 8.1 Tiết thứ: - Tuần thứ: 13 - Mục đích, yêu cầu: - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; - Địa điểm: Giảng đường P2 phân cơng - Nội dung chính: Tự học, tự nghiên cứu: tiết 8.1 Thiết kế mẫu (Designed pattern) - Vai trò thiết kế - Các nguyên lý thiết kế hướng đối tượng - Nguyên lý ‘đóng mở’: moudle cần “mở” việc phát triển thêm tính phải “đóng” việc sửa đổi mã nguồn - Nguyên lý thay Liskov: Các chức hệ thống thực đắn ta htay lớp đối tượng đối tượng kế thừa - Nguyên lý nghịch đảo phụ thuộc: phụ thuộc vào mức trừu tượng, không phụ thuộc vào mức chi tiết - Nguyên lý phân tách giao diện: nên có nhiều giao diện đặc thù với bên ngồi có giao diện dùng chung cho mục đích - Giới thiệu Design Pattern Mẫu thiết kế (Design Pattern) vấn đề thông dụng cần giải cách giải vấn đề ngữ cảnh cụ thể, Mẫu thiết kế tuân thủ nghiêm ngặt nguyên lý thiết kế hướng đối tượng - Thiết kế Decorator Pattern - Ý nghĩa Bổ sung trách nhiệm cho đối tượng thời điểm thực thi Đây xem thay hiệu cho phương pháp kế thừa việc bổ sung trách nhiệm cho đối tượng mức tác động mức đối tượng thay mức lớp phương pháp kế thừa -Trường hợp sử dụng - Ví dụ - Thiết kế Adapter Pattern - Ý nghĩa Tạo giao diện trung gian để gắn kết vào hệ thống lớp đối tượng mong muốn - Trường hợp sử dụng - Ví dụ mẫu - Thiết kế Prototype Pattern - Ý nghĩa Giúp khởi tạo đối tượng cách copy đối tượng khác tồn (đối tượng “prototype” – nguyên mẫu) - Trường hợp sử dụng - Ví dụ mẫu - Thiết kế Singleton Pattern - Ý nghĩa Mẫu thiết kế để đảm bảo cho lớp tạo thể - Trường hợp sử dụng - Ví dụ mẫu - Thiết kế Observer Pattern - Thiết kế Command Pattern - Ý nghĩa Gói mệnh lệnh vào đối tượng mà lưu trữ, chuyển vào phương thức trả vài đối tượng khác - Cấu trúc mẫu - Trường hợp áp dụng - Ví dụ mẫu - Yêu cầu SV chuẩn bị: Bài giảng 14: Một số kỹ thuật xây dựng chương trình – tiếp Chương 8: 8.2 Tiết thứ: - Tuần thứ: 14 - Mục đích, yêu cầu: - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; - Địa điểm: Giảng đường P2 phân cơng - Nội dung chính: 8.2 Kỹ thuật Plug-In Tự học, tự nghiên cứu: tiết Có tình mà bạn muốn mở rộng ứng dụng bạn mà khơng thay đổi mã Vì vậy, bạn cần cung cấp lắp ráp Ngoài nhà phát triển khác mở rộng ứng dụng bạn Có số chế để giải vấn đề Để giải vấn đề này, chế plugin đơn giản thực mà tìm kiếm tải plugin từ vị trí xác định trước Các plugin tạo dự án theo hình thức lắp ráp xây dựng (DLL) Đầu tiên cần phải xác định giao diện mà tất plugin phải thực Giao diện thường bao gồm dự án riêng, nhà phát triển khác cần lắp ráp dự án để viết plugin riêng Các thành viên giao diện phụ thuộc vào ứng dụng bạn thiết kế để làm Ví dụ sau có hai thuộc tính trả lại tên phương thức làm namespace PluginContracts { public interface IPlugin { string Name { get; } void Do(); } } Để cung cấp plugin, bạn phải tạo dự án thêm tham chiếu đến PluginContracts Sau đó, bạn phải thực Iplugin using PluginContracts; namespace FirstPlugin { public class FirstPlugin : IPlugin { #region IPlugin Members public string Name { get { return "First Plugin"; } } public void Do() { System.Windows.MessageBox.Show("Do Something in First Plugin"); } #endregion } } Đây tất bước phải làm, để cung cấp plugin Nhưng để làm việc này, cần phải thực khuôn khổ ứng dụng biết làm để tìm làm để xử lý plugin Trước hết phải biết nơi để tìm kiếm bổ sung Thông thường định thư mục tất plugin đặt in Trong thư mục này, chúng tơi tìm kiếm tất Assemblies string[] dllFileNames = null; if(Directory.Exists(path)) { dllFileNames = Directory.GetFiles(path, "*.dll"); } Tiếp theo phải nạp Assemblies Vì sử dụng Reflection (System.Reflection) Với sử dụng plugin nạp để resolove số loại bổ sung dự án Vì vậy, có ICalculationPlugin, IExporterPlugin, ISomethingElsePlugin Tất giao diện plugin có thuộc tính phương pháp riêng họ Chúng truy cập từ nhiều nơi khác trường hợp khác - Yêu cầu SV chuẩn bị: Bài giảng 15: Một số kỹ thuật xây dựng chương trình – tiếp Chương 8: Bài tập Tiết thứ: - Tuần thứ: 15 - Mục đích, u cầu: - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu - Thời gian: Lý thuyết, thảo luận: tiết; - Địa điểm: Giảng đường P2 phân công - Nội dung chính: Tạo PlugIn đơn giản - Yêu cầu SV chuẩn bị: Tự học, tự nghiên cứu: tiết ... thời điểm, gọi “multicast delegate” + Multicast delegate kiểu lớp System.MulticastDelegate Định nghĩa Multicast delegate giống thơng thường kiểu trả void + Khi multicaset delegate gọi, toàn phương... quyền (event and delegate) Event C# cài đặt delegate Lớp publish định nghĩa deleagte mà lớp subscribe phải cài đặt Khi kiện phát sinh, phương thức lớp subscribe gọi thông qua delegate Cách quản... DllImport + Dllimport attribute sử dụng để gọi “mã không quản lý” (unmanaged code) chương trình C# + Unmanaged code code phát triển bên Net Framework + Phải using namespace System.Runtime.InteropServices

Ngày đăng: 02/03/2022, 21:59

TỪ KHÓA LIÊN QUAN

w