I have had at least two requests for it, and others still express support
for it, and it has been said in past discussions that if someone is willing
to 'put in the work' that it's welcome... so I wanted to signal my
intention to split MXRoyale up into two libraries - the first being most of
the non-UI classes "MXRoyaleBase", and the second being the same as the
current "MXRoyale" lib is now.

I already have this working locally, so this is really just a check-in to
make sure everyone is comfortable with it before I push any changes related
to this.
If, after reading this post, you have any concerns, can you please share
them in reply to this thread.

The change will make it easier for people who want to use (for example) the
mx services/remoting support with a non-emulation component set (e.g.
Jewel). It may also make it easier for any Royale developer who wants to
take a shot at an alternate version of the mx emulation set (if anyone is
so inclined) because the non-UI parts and likely some of the UI interfaces
only will be in the MXRoyaleBase library. As an example, someone might want
to create a new emulation set that more closely mirrors (assuming it is
possible to do so) the original measurement and layout aspects of the Flex
lifecycle, or which takes advantage of more modern browser APIs because
they don't care about support for older browsers, or simply for whatever
other reasons they might have.

What impact will it have on me?
*Royale User:*
No change for emulation users: If you are using MXRoyale currently, it will
continue to work as it has before.
Non-emulation users: If you want to use mx service classes (for example) in
some non-emulation component set (e.g. Jewel or Basic), it will make things
easier for you because you can switch to MXRoyaleBase.swc and won't have to
exclude the css from the MXRoyale.swc. At the same time, the current
approach for excluding css will continue to work as before.

*Royale Developer:*
The source code from the current MXRoyale codebase will be split into two
libraries- MXRoyaleBase for mostly non-UI code and MXRoyale which will be
mostly the UI implementation code. MXRoyale swc build will include the
MXRoyaleBase source code and its mxml component definitions so that the
code from the other swc gets included, resulting in the same swc build as
before for MXRoyale (this avoids breaking any builds for folks using
MXRoyale). The biggest impact from an emulation developer's perspective is
that potentially you might need to look in two library codebases (e.g. if
you are making changes to IUIComponent which is in MXRoyaleBase and
UIComponent which is in MXRoyale). If you are working on non-UI code, it
should mainly be in MXRoyaleBase. If you are mainly working mainly on the
UI code, which I think is very often the case, it will continue to be in
MXRoyale.


Thanks,
Greg

Reply via email to