Component Object Model là gì

Chào các bạn,

Cường xin mở topic này và mô tả sự hiểu biết của Cường về Com, .NET để các bạn mới bước vào lập trình hiểu rõ hơn một chút, các bạn Cao thủ thấy có sai sót gì góp ý cho Cường. Cảm ơn.

Trước hết mình xin giới thiệu hai loại lập trình trên Windows:

1. Lập trình Windows 32

Regsvr32: Windows 32 là cách lập trình trên nền tảng các thư viện gốc của Windows chứ không phải là lập trình cho Windows 32bit. Trước khi nền tảng .NET ra đời năm 2002, lập trình Windows 32 là chủ yếu. Các ngôn ngữ lập trình mạnh lúc bấy giờ là C/C++, Visual Basic, Delphi/Pascal. Ai đã từng làm Windows 32 thì mới thấy được sự vất vả của nó, các thư viện, component, control không có một nền tảng quản lý chung, trước khi sử dụng chúng bạn phải đăng ký vào hệ thống COM [Component Object Model] của Windows bằng lệnh REGSVR32 chứ không phải chỉ vài thao tác Add references như .NET hiện nay.

Export Function: Khi viết một *.DLL hoặc *.OCX bạn phải sử dụng Export Function để public các method bên trong nó để khi lập trình bạn có thể gọi các method trong DLL đó, Khi Export một Function bạn phải định nghĩa chuẩn gọi làm và bắt buột người sử dụng lại DLL của bạn phải truyền tham số theo chuẩn đó gọi Function Call

Memory: Khi sử dụng DLLs bạn phải tự quản lý vùng nhớ DLLs và các Object mà bạn tạo trong code

COM+ và DCOM [Distributed Component Object Model]: là hình thức cao hơn COM, DCOMlà bộ quản lý các thư viện dùng để giao tiếp giữa hai ứng dụng trên hai máy tính khác nhau thông qua một chuỗi ký tự duy nhất trên toàn thế giới gọi là GUID

Chúng ta hay nói đến kiến trúc 3 tầng trong lập trình, nhưng chỉ gói gọn trong logic của project. Thực tế khi áp dụng DCOM và kiến trúc 3 tầng mới thấy được rõ nét 3 tiers là như thế nào. Tầng Application không chỉ đơn giản là các form, controls v.v.v mà là cả một hệ thống các phần mềm end user sử dụng. Tầng Business Rules là một loạt các hệ thống tách biệt giao tiếp với tầng Application thông qua công nghệ DCOM và Tầng Database cũng là một hệ thống tách biệt giao tiếp với Business Rules thông qua DCOM, như bạn thấy kiến trúc trên là các phần mềm độc lập giao tiếp nhau không chỉ gói gọn trong phân chia lập trình như ta thường thấy.

Ưu điểm của lập trình Windows 32:
Chương trình thực thi nhanh vì thư viện DLLs cần đến đâu sử dụng đến đó và chương trình Native Code giao tiếp trực tiếp với hệ điều hành
Triển khai nhanh
Nhược điểm của lập trình Windows 32:
Phải quản lý thật kỹ memory và object
2.Lập trình .NET

Năm 2002 Microsoft đưa ra khái niệm .NET và công cụ Visual Studio để giúp lập trình viên dễ dàng sử dụng cũng như tập trung hóa các thư viện cần thiết giúp việc phát triển cũng như triển khai ứng dụng dễ dàng hơn.

GAC: Global Assembly Cache, khi bạn cài đặt bộ .NET Framework, các tập tin *.dll của .NET Framework sẽ tự động đăng ký vào vùng GAC, khi Windows khởi động sẽ cache các file này vào memory và ứng dụng được viết bằng .NET sẽ truy cập và sử dụng các thư viện này trên vùng nhớ một cách tập trung, không giao tiếp trực tiếp với hệ thống.

Ưu điểm: Phát triển ứng dụng nhanh, dễ dàng, thư viện hỗ trợ đầy đủ, chương trình xử lý nhanh

Nhược điểm: .NET Framework cồng kềnh, triển khai cho client PC chậm

Kết luận:

=> Nói thật ra thì .NET Framework thay thế chúng ta gọi các DLLs của Windows 32 mà thôi, giảm thiểu truy cập hệ điều hành trực tiếp, không khác JRE của Java.

Video liên quan

Chủ Đề