Hello,

Here ia a question that may not have only one correct answer, 
but I hope you will try to give me your answer still.

How to organize your software in proper version control structure?

Background:
- We are a small company <20 employees to whom this concerns, so expenses
are a concern.
- We do straight sales, not OEM sales. So our products are often more of
product frameworks.
  There is customization always to each customer.
- Our solutions are more of GUI solutions not server solutions.
- You can assume that we use Struts, maybe with tiling or XML.
- For now we are using MS Visual SourceSafe and JSP without EJB.

Component based model seems more attractive due to modular design, but we
have hard time to 
find solutions to problems that arise when components go to the GUI layer
also.
We would need several Web Archive (WAR) structures, one for each GUI
component. 
But using several WAR's might cause problems with application servers
(shared session etc) 
and would cause problems with GUI tailoring: same GUI lookout for all
components.

With simple model we could organize projects, products and common library so
that GUI 
customization would be more advanced, thanks to tiling. But then by default
it would be easier
to copy all standard library functionality to all products & projects so
there would
be unused code.

Here are two alternatives what we thought of:

Common to both solutions
------------------------
(root)/
  products/
    product1/
        <web-application-project>
    product2/
        <web-application-project>
    ...

  projects/
    customer1/
      project A/
        <web-application-project>
      ...
    DoneSolutions/                                      (testing & demo
applications)
      demo A/
        <web-application-project>
      treetest
        <web-application-project>
    ...

Component based model
---------------------
(root)/
  components/
    tree/                                                       tree
component
      <jar-project>
    doc/                                                        tree
documentation
    cache/                                                      cache
component
      <jar-project>
    doc/                                                        tree
documentation
    ...

  templates/
    empty-webapp/
      <template directory structure for web applications>
    empty-jarcomponent/
      <template directory structure for jar components>
    ...

No Web archive in the standard library.


Simple model
---------------------
(root)/
  stdlib/
    <web-application-project>                           common to all
standard library features
    install/
        SQL scripts, server.xml additions
    src/
        com.done.tree                                   tree component
        com.done.cache                                  cache component
    doc/                                                        common to
all standard library features

No individual components or only very few components with the structure
above.

Thank you in advance for any comments or votes.

--
Timo Riikonen
[EMAIL PROTECTED]

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to