views:

52

answers:

2

Hi all. I have a contact manager program that I'd like to design for multiple network marketing companies. My desired structure would include a core program which covers basic contact management functions. After that one could purchase a module for their specific network marketing company. This module would contain a variety of controls that the original program would need to be able to manipulate. Here is an example of what it would have to have:

  • A group box containing buttons that link to a genealogy view, and the option to import one's donwnline from the back office provided by a company.
  • A panel which is displayed on the contact page allowing the user to input business information or which will be filled by importing a downline from the back office: ie business ID, qualification level, sponsor information etc.
  • a panel displayed when one searches for contacts on the contact list page which allows the user to sort based on information such as when they joined, what their business id is and so forth.
  • a panel which is displayed in a personal business overview page which presents to an individual how many people in their downline are at each qualification level and develop a mailing list for individuals of a certain qualification level.

I have the code developed to perform all these functions, I just wanted to give you an example of what needed to be done. I'm thinking that what I'm trying to create is a library that one can download and the program will recognize, but I'm not really sure where to go. What I'm really trying to do is figure out what kind of file I can make that will contain all this code and the GUI information that the program will recognize.

Any ideas?

With thanks,

John

A: 

Well, my solution would be to do it not in a plug-in style, but what I like to think of as a "custom update" style with database integration. The way you would do it is do a specific update for a company by making a .msi installer or something similar for the "new" (or old) version of the program for them. This could do anything from installing the original, clean version of the program, or installing another version with the code changes made specifically for them. Project-wise, it would be best to store these changes in separate folders, as in a SVN or CVS repository.

Now, take this with a grain of salt, since this may be a lot of work, depending on how many "updates" you are planning on doing. Of course, this could be what you're looking for because, once you have an update, you don't have to reprogram it to distribute it to another company. You just branch it and make any necessary changes to the already existing code.

Linktopast30
I thank you for your input, but that is just not going to be doable for my situation. Even having three versions of the same program is crazy because you need to accommodate for every possible combination, a truly dizzying prospect. I think once I get my brain wrapped around how interfaces, hosts and plugins interact i'll be able to create something easily repeatable.
Assimilater
A: 

It appears that the last comment on those forums proved to be the most helpful. I ended up with a design where the main program is the host and the interface. I've been taking a while to absorb how the assembly code operates in the hopes of learning more about it...that's how I learn really...mess and tinker with things, read descriptions and try using in different scenarios. This is a little challenging to debug but I'm growing confident that I'm heading in the right direction.

Assimilater