Thursday, January 29, 2009

Sample Examples using MCrux.

I am feeling proud to announce two of the sample applications using MCrux.


the first one is a basic calculator which supports addition, subtraction, multiplication, division, square-root, modulo, and 1/x operations.

Calculator is not accessing any of the desktop desktop features but in later iterations it will...



The second example is a sample file-browser. This file-browser is the first demo application which uses MCrux features. Using MCrux now JavaScript has access to various FileSystem operations. starting from reading a directory, getting file information etc. can now be done by the JavaScript.



I have included FileSystem APIs as a plugin to MCrux. (The plugin is developed as a separate dll project. The output of the project is "FileSystem.dll".

This dll has been placed in a particular directory (MCrux\Plugins) and MCrux will add all the plugin dlls from that directory by dynamically loading them.

Now the plugin development will be started fully fledged manner. I will be developing various plugins and working on making the MCrux design more flexible to the end-users. (both developers and users)

Saturday, January 17, 2009

Windows stuff integration

After thinking a lot about the usability of various APIs for the developer of various applications of MCrux, I finally decided that we will go for the route where user will give an XML file which is specially formatted metadata for MCrux. He will provide various details about the Application using the xml file. We will call these files as MCruxSpec files.
MCruxSpec files should contain Windows defination and various plugins which are to be integrated with the application.(for now)
As first step of implementing the above requirements I have moved the Window creation library inside within MCrux.
Now the Windows will be created by the MCrux library itself.
we need to do some more work as to make the javascript work properly with this implementation.

Plugin Architecture defined

Today I have finalized the plugin architecture for MCrux.
Each JS plugin should be derived from MCruxPlugin class which provides boilerplate for some of the functionalities of plugin.
They should be defined in different dlls. APIs to get instance of the Plugin class should be provided by defining the function called getMCruxPlugin().
This method returns (MCruxPlugin *)
This architecture seems to be working fine for various kinds of JS plugins. We will refine the architecture once all the other parts of MCrux will be having certain level of stability.