I want to deploy an application on the AppExchange and I need some explanations.
My application contains several editions (Edition 1, 2, 3 and 4) with differents features. Superior edition contains the features of inferior edition. For exemple Edition 2 contains all the features of Edition 1 plus some additional features.
A client can have users with differents Editions. For example, a client wants 50 licences of Edition 2 and 10 of Edition 3. And then, he will award the licences to differents users.
I want to deploy this 4 packages on the AppExchange. All of packages will have some redundant source code but it doesn't matter.
I have several questions :
Will I have 4 differents applications on the AppExchange (one for each Edition) ? So I have to pay 4 security reviews, right ?
How can I maintain my source code to avoid having four times the same code. For example, I have a trunk and three branches. But if I have to modify a piece of code that is common to all Edition, I don't want to do it four times ! Is it possible to have a trunk with the common code, a branch for Edition 1, an other for Edition 2 and a third for Edition 3 and choose which one I want to compile for create the good package ?
I see the Extension package system in SalesForce but I don't really understand. Can I use this in my case and how ?
Maybe I'm not starting on the right way, so can you provide me some informations for manage my four packages ?