Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
1 MB
Nội dung
Assemblies Phạm Thi Vương Nội dung 02/20/2017 Tổng quan Assembly Cấu trúc Assembly Hỗ trợ xuyên ngơn ngữ Shared Assembly Lập trình mơi trường Windows Nội dung 02/20/2017 Tổng quan Assembly Cấu trúc Assembly Hỗ trợ xuyên ngôn ngữ Shared Assembly Lập trình mơi trường Windows Tổng quan Assembly • Tiền thân Assembly thư viện DLL • Tuy nhiên, sử dụng DLL thường xảy vấn đề tương thích phiên 02/20/2017 Lập trình mơi trường Windows Tổng quan Assembly • Assembly đơn vị cài đặt tự mơ tả • Gồm nhiều file • Một assembly bao gồm file tài nguyên, metadata, DLL, EXE • Assembly private shared 02/20/2017 Lập trình mơi trường Windows Tổng quan Assembly • Tính Assembly – Tự mơ tả – Version dependencies – Có thể load side-by-side – Sử dụng Application Domain – No-touch deployment 02/20/2017 Lập trình mơi trường Windows Nội dung 02/20/2017 Tổng quan Assembly Cấu trúc Assembly Hỗ trợ xuyên ngôn ngữ Shared Assembly Lập trình mơi trường Windows Cấu trúc Assembly • Một Assembly bao gồm: – Assembly metadata – Type metadata – Mã MSIL – Các tài nguyên • Tất thành phần nằm nhiều file • Toàn assembly đơn vị cài đặt 02/20/2017 Lập trình mơi trường Windows Cấu trúc Assembly 02/20/2017 Lập trình mơi trường Windows Assembly Manifest • Mô tả assembly với thông tin cần tham chiếu tất dependency • Cấu trúc Assembly Manifest bao gồm: – Identity (tên, phiên bản, culture, public key) – Danh sách file thuộc assembly – Danh sách assembly tham chiếu – Tập hợp yêu cầu permission – Những kiểu export 02/20/2017 Lập trình mơi trường Windows 10 CTS vs CLS 02/20/2017 Lập trình mơi trường Windows 14 Common Language Specification • CLS định nghĩa yêu cầu cho thành phần thỏa CLS compliant: sử dụng ngơn ngữ NET khác 02/20/2017 Lập trình mơi trường Windows 15 Common Language Specification • Các luật CLS (Chỉ cần áp dụng cho thành viên public protected): – Tất kiểu xuất phương thức phải thỏa CLS-Compliant – Những phần tử mảng phải có kiểu thỏa CLSCompliant Mảng sử dụng theo 0-indexed – Một lớp CLS-Compliant phải kế thừa từ lớp CLS-Compliant (System.Object lớp CLSCompliant) 02/20/2017 Lập trình mơi trường Windows 16 Common Language Specification • Các luật CLS (Chỉ cần áp dụng cho thành viên public protected): – Mặc dù tên phương thức lớp CLSCompliant không phân biệt chữ hoa/thường, tên phương thức không khác chữ hoa/thường – Các Enumeration phải kiểu Int16, Int32 Int64 02/20/2017 Lập trình mơi trường Windows 17 CLSCompliant Attribute • Để compiler cảnh báo phương thức public protected không thỏa Compliant, ta thiết lập attribute CLSCompliant file AssemblyInfo.cs [assembly: System.CLSCompliant(true)] • Để cài đặt phương thức khơng thỏa CLSCompliant assembly compliant, ta đánh dấu attribute Compliant assembly false [CLSCompliant(false)] void Method(uint i) {…} 02/20/2017 Lập trình mơi trường Windows 18 Nội dung 02/20/2017 Tổng quan Assembly Cấu trúc Assembly Hỗ trợ xun ngơn ngữ Shared Assembly Lập trình mơi trường Windows 19 Shared Assembly • Cịn gọi Global Assembly • Là public assembly dùng chung nhiều ứng dụng • Khơng chứa thư mục bin ứng dụng mà đặt GAC (Global Assembly Cache) 02/20/2017 Lập trình mơi trường Windows 20 Global Assembly Cache (GAC) • Là cache dùng cho Global Assembly • Hầu hết global assembly số private assembly cài đặt GAC • Nếu private assembly biên dịch sang native code Native Image Generator native code nằm GAC 02/20/2017 Lập trình mơi trường Windows 21 02/20/2017 Lập trình mơi trường Windows 22 Strong name • Một shared assembly phải có strong name để nhận dạng assembly • Strong name cấu thành từ: – Tên assembly – Một Version number – Một Public key – Một Culture 02/20/2017 Lập trình mơi trường Windows 23 Tạo Shared Assembly Tạo strong name Liên kết strong name với assembly Đặt assembly GAC 02/20/2017 Lập trình mơi trường Windows 24 Tạo Strong Name • Vào command prompt Microsoft NET Framework SDK v2.0 -> SDK Command prompt • Vào c:\csharp\counterlibrary • sn -k srikanth.key (Viết cặp public key private key vào file srikanth.key) 02/20/2017 Lập trình mơi trường Windows 25 Liên kết Strong Name với Assembly • Mở project properties • Trong tab Signing check Sign the assembly • Chọn file chứa key Choose a strong name key file • Build project Sau build, assembly liên kết với public key đóng dấu private key 02/20/2017 Lập trình mơi trường Windows 26 Đặt Assembly GAC • Sử dụng tool GACUTIL c:\csharp\counterlibrary\bin\Release>gacutil -i counterlibrary.dll 02/20/2017 Lập trình mơi trường Windows 27 www.themegallery.com ... chiếu – Tập hợp yêu cầu permission – Những kiểu export 02/20/2017 Lập trình mơi trường Windows 10 Sử dụng ILDASM.exe để xem thông tin assembly 02/20/2017 Lập trình mơi trường Windows 11 Nội dung