Tuesday, August 31, 2010

XPCOM

XPCOM (Cross Platform Component Object Model)

XPCOM is Mozilla's cross-platform component object model. Although it is similar to Microsoft's COM technology, Essentially, when you program in a component-based environment, you do one of three things: you create a new component using existing components, write a component that implements other components, and establish interdependencies and a service network.

XPCOM similar to (Cross Platform Component Object Model) is a cross platform component modelCORBA or Microsoft COM. It has multiplelanguage bindings and IDL descriptions so programmers can plug their custom functionality into the framework and connect it with other components.

XPCOM is one of the main things that makes the Mozilla applicationenvironment an actual framework. It is a development environment that provides the following
features for the cross-platform software developer:

• Component management
• File abstraction
• Object message passing
• Memory management

This component object model makes virtually all of the functionality of Gecko available as a series of components, or reusable cross-platform libraries, that can be accessed from the web browser or scripted from any Mozilla application. Applications that want to access the various Mozilla XPCOM libraries (networking, security, DOM, etc.) use a special layer of XPCOM called XPConnect, which reflects the library interfaces into JavaScript (or other languages). XPConnect glues the front end to the C++ or C programming language-based components in XPCOM, and it can be extended to include scripting support for other languages: PyXPCOM already offers support for Python, PerlConnect provides support for Perl, and there are efforts underway to add .NET and Ruby language support for XPConnect.

On the developer side, XPCOM lets you write components in C++, C, JavaScript, Python, or other languages for which special bindings have been created, and compile and run those components on dozens of different platforms, including these and others where Mozilla itself is supported

No comments:

Post a Comment