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

Reply via email to