Assemblies Assembly là gì ?
Số trang: 8
Loại file: pdf
Dung lượng: 128.61 KB
Lượt xem: 2
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
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ừ "DLL-Hell" để mô tả những vấn đề truyền thống vớ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ụng trước đó, DLL này cũng được sử dụng bởi một ứng dụng...
Nội dung trích xuất từ tài liệu:
Assemblies Assembly là gì ? Assemblies Assembly là gì ? Trước khi nền tảng .NET được giới thiệu, chúng ta đã phải giải quyếtvới tiền assembly, DLL thường cung cấp các hàm dùng chung và COMDLLs cung cấp các lớp COM. Microsoft tự giới thiệu cụm từ DLL-Hell đểmô tả những vấn đề truyền thống vớ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ỗibởi vì ứng dụng cài đặt gần nhất ghi đè một DLL lên ứng dụng trướ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ảyra 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ươngtrình không kiểm tra phiên bản một cách chính xác, hoặc phiên bản khôngthiết lập một cách chính xác. Bình thường chúng không có vấn đề gì nhưngthực sự chúng có sự khác biệt, đúng ra DLL mới nên được lùi lại tích hợpvới DLL cũ nhưng thỉnh thoảng không như vậy, đôi khi trường hợp này lạisả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. Assemblies là bộ cài đặt chính nó, bao gồm một hoặc nhiềufiles. Một assembly có thể là một đơn DLL 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ể đơn giản như là saoché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ôngtồ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ần COM ở trong Registry hoặc sử dụngOleView,bạn phải lục lội trong hàng trăm và hàng tră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ố ứngdụ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ểnsẽ thích hơn nế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ỉ duynhất ứng dụng chúng có vấn đề về phiên bản với private assemblies thì chínhlà ứng dụng của bạn. các thành private mà bạn sử dụng mà ứng dụng củabạn không được cài đặt cùng thời gian với ứng dụng. Thư mục ứng dụng cụcbộ được sử dụng cho các thành phần của assemblies, cho nên bạn không nêncó bất kỳ vấn đề về phiên bản. Ứng dụng khác chưa ghi đè lên privateassemblies của bạn. Tất nhiên nó cũng hay khi khi sử dụng phiên bản privateassemblies. Nó có lợi khi thay đổi code, Nhưng điều này không yêu cầutrong .NET.Khi sử dụng shared assemblies, Một vài ứng dụng có thể sử dụng assemblynày và có sự lệ thuộc vào chúng. Với shared assemblies, phải thoả mãn mộtsố qui tắc. Một shared assembly phải có số phiên bản cụ thể, một tên duynhất và thường nó được cài đặt trong global 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ầnthiết để đăng ký để nhận thư viện từ nơi khác. Assemblies bao gồm metadatanó 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 trongassembly manifest. Bằng cách chứa phiên bản của nhiều tham khảoassemblies 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áttriển. Phiên bản của tham chiếu assembly nó được dùng để cấu hình bởi cácnhà phát trỉên và nhà quản trị hệ thống (system administrator).Phần sau củachươ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 2000chú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ênbản của cùng DLL được sử dụng trong hệ thống .NET mở rộng các tínhnăng cho Windows 2000, cho phép các phiên bản khác nhau của cùngassembly để 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 sharedassembly 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 ứngdụng không thể trực tiếp ảnh hưởng các ứng dụng khác bên trong cùng tiếntrì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-impactinstallation.Tại sao Microsoft Windows Installer (MSI) vẫn còn quan trọng.Tôi thường hỏi tại sao Microsoft Windows Installer vẫn cần thiết trong khixcopy đã đủ để cài đặt các ứng dụng .NET. Câu trả lời đơn giản đó là chúngta thường muốn sao chép nhiều file hơn một file khi cài đặt các ứng dụngWindows.Thường chúng ta truy xuất ứng dụng từ Start menu, cài đặt thư mục con củaProgram Files, Chúng ta làm vài thay đổi , hiển thị bản quyền, vân vân . .The Windows Installer hỗ trợ rất nhiều tính năng thêm vào khi không thểgiải quyết với assemblies. Các ứng dụng sử dụng với chính Registrysettings, group policies để dễ dàng hơn trong quản lý nơi người sử dụngtruy xuất các tính năng riêng biệt, advertisement để cài đặt các ứng dụngsau này, Khi yêu cầu bởi user, và sữa chữa các file bị sai lạc.Application Domains Application domain (địa bàn hoạt động của ứng dụng, giống nhưnamespace là địa bàn hoạt động của các tên) là một cải tiến quan trọng mà.NET đem lại trước việc t ...
Nội dung trích xuất từ tài liệu:
Assemblies Assembly là gì ? Assemblies Assembly là gì ? Trước khi nền tảng .NET được giới thiệu, chúng ta đã phải giải quyếtvới tiền assembly, DLL thường cung cấp các hàm dùng chung và COMDLLs cung cấp các lớp COM. Microsoft tự giới thiệu cụm từ DLL-Hell đểmô tả những vấn đề truyền thống vớ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ỗibởi vì ứng dụng cài đặt gần nhất ghi đè một DLL lên ứng dụng trướ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ảyra 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ươngtrình không kiểm tra phiên bản một cách chính xác, hoặc phiên bản khôngthiết lập một cách chính xác. Bình thường chúng không có vấn đề gì nhưngthực sự chúng có sự khác biệt, đúng ra DLL mới nên được lùi lại tích hợpvới DLL cũ nhưng thỉnh thoảng không như vậy, đôi khi trường hợp này lạisả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. Assemblies là bộ cài đặt chính nó, bao gồm một hoặc nhiềufiles. Một assembly có thể là một đơn DLL 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ể đơn giản như là saoché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ôngtồ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ần COM ở trong Registry hoặc sử dụngOleView,bạn phải lục lội trong hàng trăm và hàng tră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ố ứngdụ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ểnsẽ thích hơn nế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ỉ duynhất ứng dụng chúng có vấn đề về phiên bản với private assemblies thì chínhlà ứng dụng của bạn. các thành private mà bạn sử dụng mà ứng dụng củabạn không được cài đặt cùng thời gian với ứng dụng. Thư mục ứng dụng cụcbộ được sử dụng cho các thành phần của assemblies, cho nên bạn không nêncó bất kỳ vấn đề về phiên bản. Ứng dụng khác chưa ghi đè lên privateassemblies của bạn. Tất nhiên nó cũng hay khi khi sử dụng phiên bản privateassemblies. Nó có lợi khi thay đổi code, Nhưng điều này không yêu cầutrong .NET.Khi sử dụng shared assemblies, Một vài ứng dụng có thể sử dụng assemblynày và có sự lệ thuộc vào chúng. Với shared assemblies, phải thoả mãn mộtsố qui tắc. Một shared assembly phải có số phiên bản cụ thể, một tên duynhất và thường nó được cài đặt trong global 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ầnthiết để đăng ký để nhận thư viện từ nơi khác. Assemblies bao gồm metadatanó 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 trongassembly manifest. Bằng cách chứa phiên bản của nhiều tham khảoassemblies 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áttriển. Phiên bản của tham chiếu assembly nó được dùng để cấu hình bởi cácnhà phát trỉên và nhà quản trị hệ thống (system administrator).Phần sau củachươ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 2000chú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ênbản của cùng DLL được sử dụng trong hệ thống .NET mở rộng các tínhnăng cho Windows 2000, cho phép các phiên bản khác nhau của cùngassembly để 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 sharedassembly 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 ứngdụng không thể trực tiếp ảnh hưởng các ứng dụng khác bên trong cùng tiếntrì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-impactinstallation.Tại sao Microsoft Windows Installer (MSI) vẫn còn quan trọng.Tôi thường hỏi tại sao Microsoft Windows Installer vẫn cần thiết trong khixcopy đã đủ để cài đặt các ứng dụng .NET. Câu trả lời đơn giản đó là chúngta thường muốn sao chép nhiều file hơn một file khi cài đặt các ứng dụngWindows.Thường chúng ta truy xuất ứng dụng từ Start menu, cài đặt thư mục con củaProgram Files, Chúng ta làm vài thay đổi , hiển thị bản quyền, vân vân . .The Windows Installer hỗ trợ rất nhiều tính năng thêm vào khi không thểgiải quyết với assemblies. Các ứng dụng sử dụng với chính Registrysettings, group policies để dễ dàng hơn trong quản lý nơi người sử dụngtruy xuất các tính năng riêng biệt, advertisement để cài đặt các ứng dụngsau này, Khi yêu cầu bởi user, và sữa chữa các file bị sai lạc.Application Domains Application domain (địa bàn hoạt động của ứng dụng, giống nhưnamespace là địa bàn hoạt động của các tên) là một cải tiến quan trọng mà.NET đem lại trước việc t ...
Tìm kiếm theo từ khóa liên quan:
lập trình tài liệu lập trình kỹ thuật lập trình giáo trình C ngôn ngữ lập trình C tự học lập trình với CGợi ý tài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 259 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 202 0 0 -
101 trang 199 1 0
-
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 191 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 160 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 151 0 0 -
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 149 0 0 -
161 trang 129 1 0
-
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 127 0 0 -
Bài giảng lập trình c căn bản - Trường Apptech - Chương 4
27 trang 117 0 0