1. Trang chủ
  2. » Tất cả

Chuong 10 assemblies

28 0 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 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

Ngày đăng: 25/02/2023, 18:04

w