II I ActiveX Control.
5. 1 Licensing Issues for controls.
Licensing cho control là một vấn đề " nhạy cảm". Sau khi chúng ta tốn hàng trăm giờ để phát triển một control, nếu một người nào đó đặt một thể nghiệm (instance) của nó lên UserControl, lấy tất cả property, method và event, thêm một vài property tầm thường, sau đó dịch và bán nó như một control mới thì sao ?..
Vì vậy Visual Basic cung cấp Licensing để bảo vệ thành quả của chúng ta. Khi chúng ta add License cho component, một License key được dịch vào trong chính control component này.
Khi chúng ta chạy setup cho chương trình, trình setup sẽ chuyển license key vào trong registry của máy đó, cho phép các user khác trên máy này sử dụng control của chúng ta để phát triển các ứng dụng của họ. Trái lại, chỉ đơn thuần chép file. ocx sang một máy tính khác, đăng ký vào registry thì license key không được chép qua cùng, vì vậy không thể sử dụng được control.
Khi chúng ta tạo file. ocx, Visual Basic sẽ tạo ra một file. vbl chứa registry key. Khi ta sử dụng setup wizard để tạo chương trình setup file. ocx, file. vbl sẽ tự động được thêm vào.
Nguyên tắc làm việc của Licensing.
Khi user mua cantrol của chúng ta và chạy chương trình setup, license key được thêm vào registry trên máy của họ.
Vì vậy, khi user đặt một thể nghiệm của control lên form chẳng hạn, Visual Basic (hay các công cụ hỗ trợ khác ) bảo control tự tạo ra chính nó sử dụng registry key.
Nếu user có được một bản copy của control nhưng không có license key, control không thể tạo instance cho chính nó.
Khi User phân phối ứng dụng.
Khi người user dịch một chương trình có sử dụng control của chúng ta, license key được dịch vào chung. Khi user tạo setup cho chương trình, control file. ocx của được tính vào. Control của chúng ta sẽ được cài đặt trên mỗi máy chạy chương trình setup của user, nhưng license key không được add vào trong registry.
Mỗi lần user chạy chương trình, thư viện run-time DLL của Visual Basic sẽ bảo control của chúng ta tạo thể nghiệm run-time vàtruyền cho nó license key vốn đã được dịch vào trong ứng dụng. Control không phải kiểm tra registry vì Visual Basic đã truyền cho nó license key.
Tóm lại user có thể thực thi một ứng dụng mà không cần phải có license key của control.
Licensing và Internet.
Những control được cấp license có thể được sử dụng trên trang web chung với browser hỗ trợ control licensing. Cả control và license key phải sẵn có để được download về máy local của user đang truy xuất trang web này.
Khi browser download license key về cho user, nó sẽ không add license key này vào registry. Browser sẽ bảo control tạo thể nghiệm và truyền license key này cho control.
Chủ sỡ hữu của control trên Web server phải mua và cài đặt control để có được cả control và license key cho control.
Nếu license key không được tìm thấy, sự tạo thể nghiệm cho control sẽ không thành công và browser sẽ nhận thông báo lỗi cho trường hợp này.
Chú ý: Trong tất cả các control mà phiên bản Professional của Visual Basic 5. 0 hỗ trợ, chỉ có DBGrid control là cần một license key trên Web Server.
Ví dụ: Nếu ta sử dụng Treeview control là một control cấu thành, bất cứ user nào được license sử dụng control của chúng ta đều có license sử dụng TreeView control như là một phần của control chúng ta.