Achiving Modularity

As we all know asking vtiger to make the next generation of the system modular is easier said then done. It means not only that we have a long road in front of us but also that everything must be thought through very well in advance.

I would like to open the discussion about this issue.

  • What do you expect?
  • What design recommendations do you have?
  • Do you have already an architecture sample in mind?
  • Could it be done step by step without rewriting everything at once?
  • What ressources at the web could be used?

Of course I do have my own thougths about this issue which are going in the direction of some sort of SOA principles as described at SOA Wiki. But this probably to much to ask for.

7 Responses to “Achiving Modularity”

  1. on 14 May 2007 at 7:05 am Lukas

    This sounds like good idea how take our ideas and experiences with develop and analyzing to core team including conception and maybe organized/structured way.

    Would be nice have some forms with this questions for simler evaluation.

    At least keep please here your answers in Q/A structure by issues up.

    I’m take it up.

    p.s. to Joe Bs : this is your awaiting thread ;)

    LN

  2. on 14 May 2007 at 7:06 am rasomu

    Hi Richie.

    I expect an easier way of customicing vtiger. Easy way to deploy o develop new modules.

    Now if you need any modification on vtiger its hard to do and more difficult to upgrade to a new version. I’ts painful to incorporate any patch to vtiger, hard to translate with lots of strings repeating among each module.

    I like the joomla’s way , but i’m not developer, just user. Idon’t know how difficult it could be to take vtiger to an application like joomla, but one thing is for sure, if vtiger team does the effort to separate what it is the core code from what is the modularization, probably in future their only headache will be keeping the core module updated an adding new features, cause community will do the rest.

    If you need a model IMHO Joomla 1.5 is the mirror where vtiger team must look in.

  3. on 14 May 2007 at 12:48 pm John

    I second my vote for joomla 1.5 as a model too look at.

    I don’t think it should be as hard as you say to do this though.

    In fact i think doing this will help you achieve consistency through your application.

    This is the right way forward. The application will be better, faster, leaner and easier in the future to expand and build upon.

    In the interim you can make vtiger better by improving the soap access to vtiger. Provide a greater range of actions that can be perfomed through the single interface (which hides whether it is modular or not) and you will have more people using it.

  4. on 15 May 2007 at 1:01 am Stuart

    We have to remember there is a big difference between joomla and vTiger.

    Joomla 1.5 is a cms where there the fields that can be manipulated are mostly independent of each other and of a fairly simple nature - i.e. for display purposes only.

    vTiger due to the nature of the application and the workflows involved I would assume it requires a more complex data model and logic to function and to keep it together as a whole.

    It seems amazing to me that many in the community want a well thought out modularized system which may mean a complete code base overhaul - yet at the same time they want 5.03 out yesterday.

    Good development is about good planning, but vTiger was not an application that was planned by this team and as with any system it has its weaknesses. Due to the nature of the application aren’t we better to work on a manageable iterative approach - which will always keep the probability of success high.

    One solution may be a good API to the data and data model, and a good templating system. This may allow us to keep vTiger more or less as it is - as the ‘CRM engine’ and then will allow some level of module-based development to the sides of the data model.

    From a project management perspective we have to consider how many resources vTiger has on the project before we ask for anything too substantial. I do not know too much about the vTiger team, but I assume the team number is not that high. I would strongly ask that the scope is kept limited, and is aimed at achievable goals with the resource that is available.

    Having regular updates to the project gets translated as activity. The level of activity in an open source project is one of the key factors in measuring its success and leads to more users and more supporters.

    Whatever is decided, please let it be planned carefully, scoped conservatively, and done achieved iteratively.

    Thanks!
    stuart

  5. on 15 May 2007 at 1:41 am rasomu

    I agree with you, Stuart, nobody has said that what we want is easy, but Balduin (not Richie :( ) said what we would like.

    Joomla has IMHO the best modularization model that i’ve seen in any open source project.

    The secret… a strong core module and an easy way to create templates.

    The difficulties, to break Vtiger in core module and aplication modules, but as said before I’m not developper an could be saying a nosense.

  6. on 19 May 2007 at 12:40 am KreM

    Hello,

    I also believe that getting vTiger more modular would be great for the community.
    Following, is a post from Joe on the dev. mailing list (which didn’t get many replies):

    /****************************************/
    Hi all,

    I am part of the Module Generator project on vtigerforge. I have been
    assigned the task of designing the related functions from one module to
    another. The idea is to be able to establish a relation between the new
    module and the already existing modules in VTiger (the new module will
    appear in the “More Information” tab).

    As you may know this is done by inserting a row in the
    vtiger_relatedlists table and inserting a new function into the main
    class of the already existing related module that returns the related
    elements, among other things that have to be done.

    In the TSProjects module which I am (also) programming I have used a new
    technique to make the main class (TSProject.php) independant of these
    “related” functions.

    Instead of adding functions to the main module’s class I have created a
    directory inside the modules “home”:

    modules/TSProjects/related

    I have put in this directory one file per each related module with the
    same name I establish in the vtiger_relatedlist table:

    get_attachments.inc
    get_prjtasks.inc
    get_stakeholders.inc

    Each of these files has a function of the same name which is the one
    that we usually add to the main class.

    I, obviously, eliminate these functions from the main module class and
    add this piece of code:

    ———————————–
    // Load related functions from included files in module/related
    directory
    // TSolucio 2007-02-21
    function __call( $method, $args )
    {
    global $currentModule;
    $include_file=”modules/$currentModule/related/$method.inc”;
    if (file_exists($include_file)) {
    include $include_file;
    return $method($args[0]);
    }
    }
    ———————————–

    I can now add related modules simply adding a .inc file in the related
    directory.

    If we could get all modules to implement this feature we would get a
    much more modular application, would simplify the module generator and
    avoid coding errors as all the code is more modular and independant.

    I (again) offer my time and knowledge to modify all the modules with
    this change. For this I would like that somebody on the vtiger
    development team get in touch with me (Richie?). I have been asking this
    proactivly during various months now with no answer as the change I
    propose here is not the only one I have proposed or asked about. I have
    sent various emails through the web and others on this forum with no
    answer. As Richie stated today in a forum answer, I understand that you
    can’t answer them all. But you haven’t answered ANY of mine. Not even
    the ones I sent through your web which are “commercial” questions.

    Well, let’s see what happens.

    Regards, Joe
    TSolucio
    /****************************************/

    And some days later:

    /****************************************/
    Hi all,

    6 days since I sent this email.
    No answer as of yet.
    I know everybody on the VTiger team must be very busy trying to get
    5.0.3 out so maybe I should wait until it is out and see if somebody
    there get’s a little time to answer so we can decide what to do?

    Maybe we can make the module generator without this change. We just bury
    this change in this list and forget about it. Although it will be a lot
    more work and create much more unstable code at least we know what 5.0.3
    looks like.

    I know that module modularity isn’t important right now. Not even adding
    features to the base app through the work of others is important as
    basically no help is being given to these workers. So this leaves me in
    a totally undetermined situation, I have no idea how to proceed with the
    module generator. Truth is that I don’t even know how to proceed with
    all the other modules I have started (and those that are still on my
    todo list)

    Please, I would like to help. I would like to be part of the VTiger
    group. I do not know what I am doing wrong to be ignored in this way but
    I am willing to learn. Teach me how

    Joe
    TSolucio

    /****************************************/

    The status of the project in the forge is still ‘planning’, but a discussion around the attempt of Joe could take place. If a member of the vTiger team could assist the community to discuss and develop this project (to give a dynamic), I am sure we would achieve something usefull to everybody.

    Regards,
    Clem

  7. on 21 May 2007 at 2:55 am Stuart

    Clem,

    Thanks for highlighting Joe’s work and requests. It is great to see that Joe has looked in detail at how a modular design can be implemented with vTiger.

    Great work Joe! I hope you get the input and assistance you require from the vTiger team.

    Richie,
    It seems you have someone who is very willing to put in quality efforts and time into the vTiger open source project, please be proactive towards giving him the help he needs. It would be a great loss to lose the help Joe is willing to give through lack of response from the community and development team.

    It may even be good to set up a skype based discussion with a select few members to cover some ground quickly on how to move forward with the modular design & implementation of vTiger and to come to an understanding of what Joe is requiring from the developers.

    You may even find that some well structured conference calls will help gel the community together. For my own input I would be willing to arrange it and take minutes of the conference call for publishing to the appropriate forum.

    With the delays of 5.03 you may have to start putting some focus back into communications with the community to resolve some of the longer standing requests.

    Regards,
    Stuart

    p.s. The ‘blog on the fly’ review while you edit feature is actually quite nice.

Trackback URI | Comments RSS

Leave a Reply

Enter your e-mail address to receive notifications when there are new posts:
online shop XXX porn buying cialis soft tabs online in britain viagra soft tabs discount viagra and order cialis for women does levitra work for women sweet sexy teens Lanah Layeau old women in action sex TOON PORN stroke that cock BRAZZERS PORN SITE DEALS porn movies diamond jackson milf lessons charming mommy sex porno gang bang porn Paroxetine cheap xanax uk natural powerful honest alternative to klipal oils for female zyban buy oxazepam no prescription buying tenuate online cheap levitra tramadol alternative herbal supplement consumer discount valium rx pills online buy lorazepam order lorazepam buy herbal diazepam cheap viagra online online levitra buy cialis