Danh mục

Assembly part 1

Số trang: 4      Loại file: pdf      Dung lượng: 149.01 KB      Lượt xem: 11      Lượt tải: 0    
tailieu_vip

Phí lưu trữ: miễn phí Tải xuống file đầy đủ (4 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Assembly là gì ? Trước khi nền tảng .NET được giới thiệu, chúng ta đã phải giải quyết với tiền assembly, DLL thường cung cấp các hàm dùng chung và COM DLLs cung cấp các lớp COM. Microsoft tự giới thiệu cụm từ
Nội dung trích xuất từ tài liệu:
Assembly part 1Assembly là gì ? Trước khi nền tảng .NET được giới thiệu, chúng ta đã phải giải quyết với tiềnassembly, DLL thường cung cấp các hàm dùng chung và COM DLLs cung cấp các lớpCOM. Microsoft tự giới thiệu cụm từ DLL-Hell để mô tả những vấn đề truyền thốngvới DLL, những vấn đề này dường như chúng ta đã biết đó là Thường các chương trìnhứng dụng bị dừng hoặc lỗi bởi vì ứng dụng cài đặt gần nhất ghi đè một DLL lên ứng dụngtrước đó, DLL này cũng được sử dụng bởi một ứng dụng khác. Thỉnh thoảng nó xảy ra sựcài đặt thay thế một DLL mới cho một cái cũ bởi vì sự cài đặt chương trình không kiểmtra phiên bản một cách chính xác, hoặc phiên bản không thiết lập một cách chính xác.Bình thường chúng không có vấn đề gì nhưng thực sự chúng có sự khác biệt, đúng raDLL mới nên được lùi lại tích hợp với DLL cũ nhưng thỉnh thoảng không như vậy, đôikhi trường hợp này lại sảy ra quá thường xuyên.DLL Hell Nền tảng .NET chính là DLL Hell và tất cả vấn đề của nó là assemblies. Assemblieslà bộ cài đặt chính nó, bao gồm một hoặc nhiều files. Một assembly có thể là một đơnDLL hoặc EXE bao gồm cả metadata, hoặc nó có thể đuợc tạo từ nhiều file khác, thí dụ,các file nguồn, metadata, DLLs, và một EXE. Sự cài đặt của một assembly có thể đơngiản như là sao chép tất cả các file của chính nó. Một tính năng mạnh của assemblies làchúng có thể là private hoặc shared. Với COM đây là sự khác biệt không tồn tại, trướcđây gần như tất cả các thành phần COM đều được chia sè. Nếu bạn tìm kiếm thành phầnCOM ở trong Registry hoặc sử dụng OleView,bạn phải lục lội trong hàng trăm và hàngtrăm các thành phần. Chỉ một số nhỏ các thành phần đã được định nghĩa để sử dụng từmột số ứng dụng, nhưng mỗi thành phần phải có một khai báo toàn cục duy nhất (globalunique identifier) (GUID).Có sự khác biệt lớn giữa private và shared assemblies. Nhiều nhà phát triển sẽ thích hơnnếu chỉ có private assemblies. Không có quản lý riêng, đăng ký, xác định phiên bản vàvậy nên cần làm việc với private assemblies. Chỉ duy nhất ứng dụng chúng có vấn đề vềphiên bản với private assemblies thì chính là ứng dụng của bạn. các thành private mà bạnsử dụng mà ứng dụng của bạn không được cài đặt cùng thời gian với ứng dụng. Thư mụcứng dụng cục bộ được sử dụng cho các thành phần của assemblies, cho nên bạn khôngnên có bất kỳ vấn đề về phiên bản. Ứng dụng khác chưa ghi đè lên private assemblies củabạn. Tất nhiên nó cũng hay khi khi sử dụng phiên bản private assemblies. Nó có lợi khithay đổi code, Nhưng điều này không yêu cầu trong .NET.Khi sử dụng shared assemblies, Một vài ứng dụng có thể sử dụng assembly này và có sựlệ thuộc vào chúng. Với shared assemblies, phải thoả mãn một số qui tắc. Một sharedassembly phải có số phiên bản cụ thể, một tên duy nhất và thường nó được cài đặt trongglobal assembly cache (GAC).Các tính năng của AssembliesCác tính năng của assemblies có thể được tóm tắt như sau: • Assemblies là miêu tả bản thân (self-describing). Nó không cần thiết để đăng ký để nhận thư viện từ nơi khác. Assemblies bao gồm metadata nó miêu tả assembly. The metadata bao gồm các kiểu sinh ra từ assembly và một manifest; Chúng ta sẽ tìm hiểu a manifest ở phần sau. • Độc lập phiên bản (Version dependencies) được ghi lại bên trong assembly manifest. Bằng cách chứa phiên bản của nhiều tham khảo assemblies trong manifest của assembly, Chúng ta có thể biết chính xác số phiên bản cả tham khảo assembly nó đuợc sử dụng trong suốt quá trình phát triển. Phiên bản của tham chiếu assembly nó được dùng để cấu hình bởi các nhà phát trỉên và nhà quản trị hệ thống (system administrator).Phần sau của chương này chúng ta sẽ biết chúng làm việc như thế nào. • Assemblies có thể được nạp side-by-side. Sử dụng Windows 2000 chúng ta có từng bước một các tính năng và ở đâu là sự khác biệt các phiên bản của cùng DLL được sử dụng trong hệ thống .NET mở rộng các tính năng cho Windows 2000, cho phép các phiên bản khác nhau của cùng assembly để sử dụng bên trong một tiến trình đơn giản, Vậy lợi ích ở đâu ? Nếu assembly A tham khảo version 1 của shared assembly được chia sẽ, và assembly B sử dụng version 2 của shared assembly được chia sẽ, và bạn đang sử dụng cả hai assembly A and B, đoán xem versions của shared assembly Chia sẽ nào được dùng trong ứng dụng của bạn - bạn cần cả hai, và với .NET cả hai versions được nạp và sử dụng. • Ứng dụng độc lập được đảm bảo sử dụng (vùng sở hữu ứng dụng) application domains. Với application domains một số các ứng dụng có thể chạy một cách độc lập trong một đơn tiến trình. Khuyết điểm trong một ứng dụng không thể trực tiếp ảnh hưởng các ứng dụng khác bên trong cùng tiến trình. Sự cài đặt dễ dàng như sao chép file nó phụ thuộc vào assembly. Xcopy có thể sao chép đẩy đủ. Tính năng này có tên là zero-impact installa ...

Tài liệu được xem nhiều: