Triển khai chia sẻ công cộng (public).

Một phần của tài liệu PHÁT TRIỂN PHẦN MỀM THEO HƯỚNG CẤU PHẦN (Trang 142 - 145)

III SO SÁNH JAVABEANS VÀ ACTIVE

4. Liên kết các sự kiện đại diện với điểu khiển sự kiện,bắt sự kiện, tạo ra sự kiện

2.4.2 Triển khai chia sẻ công cộng (public).

Triển khai phổ biến nhất là tái sử dụng cấu phần để triển khai một thành phần với một tên chuẩn, để đăng ký với GAC. Một thành phần chia sẻ với các tên chuẩn có thể làm cho nó độc đáo bởi cặp khóa cơng khai/riêng. Một thành phần chia sẻ đăng ký với GAC có thể làm cho bản thân để được chia sẻ bất cứ nơi nào. Các bước cần thiết để tạo một chia sẻ cấu phần .NET như sau:

Bước 1: Tạo một cặp khóa cơng khai/khóa riêng bằng tiện ích sn.exe.

>Sn -k mykey.snk

Khóa cơng khai là để xác minh chống lại chính tư nhân, mà là ký như là một chữ ký mã hoá được lưu giữ trong các tổ hợp ( Asembly) cấu phần. Các khố cơng khai được lưu trong một bảng ghi của tổ hợp này. Khi một khách hàng tham khảo các cấu phần, các mã khóa cơng khai thơng báo được lưu trữ trong tổ hợp của khách hàng.

Bước 2: Nhúng các dòng sau đây vào mã nguồn của cấu phần:

using System.Reflection:

Bài giảng COP – Chuyên ngành: CNPM - Version 1

Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 143

[assembly:AssemblyDelaySign (false)] [assembly:AssemblyVersion (“1,2,3,4”)] Lệnh sau sẽ ký chữ ký với cấu phần ngay : >csc /t:library mycomponents.cs

Các dòng lệnh tiếp theo sẽ lưu giữ một khố cơng khai mã thơng báo trong thành phần khách hàng.

> Csc / r: mycomponent.dll / out: myapplication.exe myapplication.cs Nếu kỹ chậm là cần thiết, chúng ta có thể đăng ký chữ ký muộn. > Sn-R mycomponent.dll mykey.sn

Chữ ký được xác nhận khi thành phần được đăng ký với GAC trong bước # 3 để đảm bảo rằng các thành phần không bị thay đổi kể từ khi tổ hợp được xây dựng.

Vào lúc chạy, khố cơng khai thơng báo trong các bảng ghi của khách hàng để xác minh các khố cơng khai là một phần của cấu phần nhận dạng. Nếu phù hợp, sau đó nó chỉ ra rằng điều này là quyền muốn thành phần. Số phiên bản của một thành phần được chia sẻ được đánh dấu bằng bốn số cách nhau bằng dấu chấm rời rạc trong các định dạng của "major.minor.build.revision" Một thực hiện side-by-side được thực hiện bởi versioning NET... Các NET framework cho phép các cấu phần khác nhau là có cùng tên phiên bản chạy side-by-side trong các ứng dụng khác nhau. CLR kiểm tra số lượng cấu phần. Theo mặc định, chỉ có một tổ hợp chính xác về major.minor được cho phép. Nói cách khác, phiên bản "1.2.3.0" tương thích với "1.2.0.0", nhưng "1.2.3.0" khơng tương thích với "1.2.4.0". Nếu số phiên bản trong một cấu phần của biểu hiện không thể phù hợp với bất cứ thành phần trong GAC, nó sẽ được tải một cấu phần là phiên bản đó là khác nhau trong một phần sửa đổi. Số phiên bản được gọi là Cơ chế sửa chữa nhanh (QFE), đó là ln ln tương thích theo mặc định. Các chính sách mặc định phiên bản có thể được tùy chỉnh theo trọng các dặc tả tổ hợp trong tập tin cấu hình. Ví dụ,

<assemblyIdentity>

<binding redirect oldVersion = "1.2.3.4" newVersion = "<2.0.0.0" />

Bài giảng COP – Chuyên ngành: CNPM - Version 1

Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 144

Thiết lập này cho thấy các thành phần trong phiên bản "<2.0.0.0" sẽ được nạp thay vì của "1.2.3.4."

Bước 3: Đăng ký thành phần được chia sẻ trong GAC.

> Gacutil / i mycomponent.dll

Bước 4: Sử dụng thành phần được chia sẻ.

Các khách hàng phải thực hiện một tham chiếu đến các thành phần được chia sẻ để được tái sử dụng.

> Csc / t: exe / r: mycomponent.dll / out: myapp.exe myapp.cs

Để sử dụng lại các thành phần chia sẻ, mã nguồn khách hàng phải "sử dụng miền khơng gian tên ", nơi khơng gian tên có sẵn trong tổ hợp. Một ví dụ về triển khai thành phần chia sẻ của các thành phần TempConvComp được thể hiện trong những điều sau đây:

using System; using System.Reflection; [assembly:AssemblyVersion("1.0.0.0")] [assembly:AssemblyKeyFile("originator.key")] namespace TempConv {

public class TempConvComp {

public TempConvComp() {

}

public double cToF(double c) {

// how to control output format

return (int)((c*9/5.0+32)*100)/100.0; }

public double fToC(double f) {

// how to control output format return (int)((f-32)*5/9.0*100)/100.0;

Bài giảng COP – Chuyên ngành: CNPM - Version 1

Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 145

} } }

Các bước sau nêu ra cách chia sẻ cấu phần. >sn -k originator.key

>csc /t:library /out:TempConv.dll TempConvComp.cs >gacutil /i TempConv.dll

>csc /r:TempConv.dll /t:exe /out:TempConvCSClient.exe TempConvCSClient.cs

Một phần của tài liệu PHÁT TRIỂN PHẦN MỀM THEO HƯỚNG CẤU PHẦN (Trang 142 - 145)

Tải bản đầy đủ (PDF)

(152 trang)