1 / 29

Assembly

Assembly. Nội dung. Khái niệm và đặc điểm của Assemblies Cấu trúc một Assembly Assemblies chứa trong một tập tin Assemblies chứa trong nhiều tập tin Assembly dùng riêng (Private Assemblies) Tạo và sử dụng Assembly Tập tin cấu hình cho Assembly dùng riêng

shalom
Download Presentation

Assembly

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Assembly

  2. Nội dung • Khái niệm và đặc điểm của Assemblies • Cấu trúc một Assembly • Assemblies chứa trong một tập tin • Assemblies chứa trong nhiều tập tin • Assembly dùng riêng (Private Assemblies) • Tạo và sử dụng Assembly • Tập tin cấu hình cho Assembly dùng riêng • Assembly dùng chung (Shared Assemblies) • Tạo và sử dụng Assembly • Tập tin cấu hình cho Assembly dùng chung

  3. Khái niệm Assembly • Khối mã được xây dựng sẵn trong .NET Framework. • Đơn vị cơ bản trong quá trình triển khai, kiểm soát phiên bản, việc tái sử dụng, phạm vi hoạt động và các điều khoản bảo mật. • Chứa một tập hợp gồm một hay nhiều file chứa phần mã lệnh hoặc tài nguyên (như ảnh hoặc dữ liệu XML). • Assembly là một file có đuôi mở rộng là .dll hoặc .exe

  4. Cấu trúc của Assembly • Assembly Metadata • Chứa các thông tin liên quan đến assembly: Version, resource • Type Metadata: • Mô tả các loại dữ liệu sử dụng trong assembly • MSILCode: • Source code sau khi được biên dich

  5. Assemblies chứa trong tập tin(single file assembly) • Là assembly được lưu trữ tương ứng với 1 file binary • Tạo assembly chứa trong 1 tập tin: • Tạo new project -> ClassLibrary:

  6. Assemblies chứa trong tập tin(single file assembly)

  7. Assemblies chứa trong tập tin(single file assembly)

  8. Assemblies chứa trong tập tin(single file assembly)

  9. Assemblies chứa trong tập tin(single file assembly) • Khi biên dịch chương trình sẽ tạo ra file CarLibrary.dll (assembly) • Dùng tiện ích ildasm.exe để xem thông tin của assembly

  10. Assemblies chứa trong nhiều tập tin(multifile assembly) • Là assembly lưu trữ nhiều module khác nhau và được liên kết với nhau thông qua assembly manifest. • VD:

  11. Assemblies chứa trong nhiều tập tin(multifile assembly) Lợi ích khi sử dụng multifile assembly: • Có thể kết hợp nhiều module xây dựng từ nhiều ngôn ngữ khác nhau. • Các module mã lệnh có thể đuợc phân ra để tối ưu cách mà mã lệnh được nạp vào trong CLR. Các mã lệnh có liên quan và được sử dụng thuờng xuyên nên được đặt vào trong cùng một module; những mã lệnh ít khi được sử dụng sẽ được đặt vào trong module khác. CLR không nạp các module nào khi chưa thực sự cần thiết. • Các file tài nguyên có thể được đặt vào trong module của riêng nó, qua đó cho phép nhiều ứng dụng có thể chia sẻ tài nguyên dùng chung.

  12. Assemblies chứa trong nhiều tập tin(multifile assembly) Xây dựng multifile assembly: • Biên dịch tất cả các tập tin trong namespace được tham chiếu bởi các module khác trong assemly thành mã module, có đuôi mở rộng là .netmodule • csc.exe /t:module file1.cs • Biên dịch file2.cs thành file2.netmodule có tham chiếu đến file1 • csc.exe /addmodule:file1.netmodule /t:module file2.cs • Biên dịch kết hợp các file.netmodule thành file .dll • csc /t:library /addmodule:file1.netmodule /out:fileassembly.dll file2.cs

  13. Assembly dùng riêng(Private Assemblies) • Private assembly là assembly được đặt trong thư mục của ứng dụng hoặc thư mục con của nó. • Quá trình cài đặt và cập nhật private assembly chỉ đơn giản là chép assembly vào trong thư mục cần thiết, không cần thiết lập thông tin trong registry. • Ðôi khi, có thể dùng thêm một file cấu hình ứng dụng có thể ghi đè một số thiết lập trong manifest của ứng dụng. • Trong ví dụ tạo single assembly, tạo tập tin cấu hình App.config: <probing privatePath="MyLibraries; MyLibraries\Tests"/> //nếu assembly đặt trong nhiều thư mục

  14. Assembly dùng chung (Shared Assemblies) • Là assembly được cài đặt vào vị trí toàn cục, gọi là Global Assembly Cache (GAC), là nơi có thể truy xuất được từ nhiều ứng dụng. • Nhiều phiên bản của một assembly có thể được cài đặt trên GAC. • định danh 1 assembly bao gồm: Assembly Name , Culture Identity, Version, và Public Key Token.

  15. Assembly dùng chung (Shared Assemblies) • Ðể đảm bảo một shared assembly là duy nhất và đáng tin cậy, .NET yêu cầu người tạo ra assembly phải đánh dấu bằng một định danh mạnh (strong name) và sử dụng public/private key để sinh ra một định danh mạnh. • Một assembly được gán một public/private key thì được gọi là một assembly định danh mạnh. Mọi shared assembly đều phải có định danh mạnh. • Các shared assembly thường được đặt trong thư mục assembly ở dưới thư mục hệ thống của hệ diều hành.

  16. Assembly dùng chung (Shared Assemblies)

  17. Assembly dùng chung (Shared Assemblies)

  18. Assembly dùng chung (Shared Assemblies) Các bước tạo shared Assembly: • Tạo strong name cho assembly thông qua key: • Tạo key: dùng tiện ích sn.exe • mở file AssemlyInfo.cs để cập nhật key hoặc dùng properties của VS2008 để gán key • Cài đặt assembly vào GAC dùng tiện ích GACUtil.exe hoặc kéo và thả file .dll vào thư mục C:\Windows\assembly • Cú pháp: gacutil /? *.dll • /i: cài đặt shared assembly vào GAC • /u: bỏ cài đặt • /l: in danh sách assembly

  19. Assembly dùng chung (Shared Assemblies) Ví dụ: cài đặt assembly CarClassLibrary.dll vào GAC • Tạo strong name: • khởi động visual command prompt: chuyển đến thư mục thực thi ứng dụng, gõ lệnh: sn –k Mykey.snk • Nhấp chuột phải vào tên project  properties. Chọn mục signing: check mục sign the assembly  chọn file Mykey.snk vừa tạo trong thư mục Debug Hoặc mở file AssemblyInfo.cs để nhập dòng lệnh sau: [assembly: AssemblyKeyFile("MyKey.snk")] • Biên dịch ra file CarClassLibrary.dll • Kéo thả file CarClassLibrary.dll vào c:\windows\assembly

  20. Assembly dùng chung (Shared Assemblies)

  21. Assembly dùng chung (Shared Assemblies) Sử dụng shared assembly: • Xây dựng ứng dụng consoleApp: • Add References:

  22. Assembly dùng chung (Shared Assemblies) Sử dụng shared assembly:

  23. Assembly dùng chung (Shared Assemblies) Sử dụng shared assembly:

  24. Assembly dùng chung (Shared Assemblies) New version shared assembly: • Đặc điểm của Shared Assembly có thể cài đặt trong GAC với nhiều phiên bản khác nhau, nên một ứng dụng có thể sử dụng được các phiên bản assembly thông qua file cấu hình

  25. Assembly dùng chung (Shared Assemblies) Với ví dụ trên, ta xây dựng lại class Car thêm chức năng Music như sau:

  26. Assembly dùng chung (Shared Assemblies) File assemblyInfo.cs

  27. Assembly dùng chung (Shared Assemblies) Sau khi biên dịch và cài đặt vào GAC:

  28. Assembly dùng chung (Shared Assemblies) • Ứng dụng nếu không cập nhật version 2.0.0.0 thì vẫn sử dụng được version 1.0.0.0 • Nếu muốn ứng dụng tham chiếu đến assembly version mới thì xây dựng tập tin .config như sau:

  29. Assembly dùng chung (Shared Assemblies) Tập tin cấu hình cho ứng dụng nếu tham chiếu đến nhiều assembly:

More Related