Hi all,
Last months I have done a lot of thinking about aMSN2. Especially about the
GUI part of it. I don't know if everyone followed the XML2GUI discussion.
Anyway, I changed my mind on that subject. I was convinced that, although
XML2GUI solutions did already exist, those would not fit our needs well
enough, so I started off designing a new solution, that would work for us,
and probably a lot of others. But still I did not feel comfortable with that.
It was just too much a matter of reinventing the wheel, and somehow I could
not really believe that none of the existing solutions would fit. Especially
XUL seemed so close, that I decided to go back one step, and reinvestigate
the possibilities, and try to find out what I missed the first time.
Eventually I found the answer, and chose Mozilla's XULRunner.
After that, I started off writing the attached document, to specify:
- What the aMSN2 project is meant to be
- The aims of aMSN2
- The very basics of the technical structure of aMSN2
Please read it all, and send your comments on this thread!
Harry
aMSN2 Basics
============
Draft 1
July 7th, 2006
Author: Harry Vennik
What aMSN2 is meant to be
-------------------------
The aim of the aMSN2 project is to develop a successor of the current aMSN on a
totally new codebase, using open standards and technologies where possible. The
aMSN2 project is *not* to be a project separate of aMSN, but rather it is a
sub-project of aMSN, that will take care of the longterm future. The current
codebase is also being restructured a little to keep aMSN alive while aMSN2 is
in the works. Seems like a bit of double work, but there is no other way to
both create a stable aMSN 1.0 on the short term, and also create a beautiful
aMSN 2.0 in the less near future. AMSN2 will not in any way retain
compatibility with the current aMSN.
In aMSN2 we do not want to loose any features that are currently in aMSN, but
still some parts may be discontinued. They will either have a replacement
provided by anything aMSN2 will depend on, or there will be a replacement
inside aMSN that will make our users forget the original in just a few minutes.
A big problem with the current aMSN is that its user interface is built with
Tk, which is a toolkit so ugly that it really hurts your eyes, and it simply
won't blend with the native look of any desktop. Currently this issue has been
worked-around partially with the skins support and the Chameleon plugin, this
will apply for all aMSN versions using the current codebase. In aMSN2 we will
finally really solve the problem, and kick Tk out.
Another problem with the current aMSN codebase is its lack of modularity. In
aMSN2 we will do our utmost to provide a set of modules that will not be linked
to each other directly, but use the very newest technologies around to interact
both with each other and with any third-party application using (some of) the
same techniques.
Technical Structure of aMSN2
----------------------------
- Telepathy will hide all protocol-related stuff from the rest of aMSN. The
connection manager for Telepathy will be based on libmsn. Telepathy is based on
D-BUS, which is a general-purpose Inter Process Communication (IPC) system.
- Libamsn2_ui will provide a User Interface API that will manage the aMSN2 user
interface. All toolbars, menus and dialogs etc. will be managed here.
- Farsight will take care of streaming media (Telepathy streaming media
channels are implemented using Farsight).
- Mozilla's XULRunner will be used to render the GUI, which will be written in:
* XHTML, XUL and CSS (for the looks)
* JavaScript and C (for functionality)
NOTE: We'll need to access XPCOM components. Will this require C++? I hope
not!
- Libamsn2_tcl will provide bindings for TCL to enable scripting! This way
Plugin developers can continue using TCL to implement plugin functionality.
Usage of Tk for plugin UI components will however be strongly discouraged. UI
components should be written in XUL. We might also have some 'core plugins'
also implemented this way.
Dependencies
------------
So far we have the following external dependencies for aMSN2:
- D-BUS
- Farsight
- Telepathy
- TCL
- XULRunner
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Amsn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/amsn-devel