File and folder organization

XOJO Desktop / WIndows

I was wondering how other users of Xojo organize files and folders for their multiple XOJO projects.
I created my own system, but perhaps I could find a better way to do it, comparing with other users.
I do not intend to work with a Version Control System.

All suggestions are welcome.

Regards
Etienne

Version Control System is must have in development unfortunately Xojo is not able to implement Version Control for beginner due to project format. I donā€™t really understand why. Version Control is a good practice even for beginner :frowning:

I wouldnā€™t say ā€œmust haveā€ as Iā€™ve always done without this and all is fine.
Itā€™s like managing other kind of documents: it depends on your habits.

Quickly said, inside my projects folder, I have an ā€œarchivedā€ folder (where I put what I donā€™t develop anymore), a ā€œcurrentā€ folder and a folder where I have shared classes. Each folder is the organised in sub folders (projects name for the ā€œarchivedā€ and ā€œcurrentā€ folders and classes name for the other).
When/If I start a project over, Iā€™d either create a new folder (e.g. ā€œMyProject 2ā€) or keep inside the same folder a ā€œMy Project.v2.<Xojoā€™s extension>ā€ file, depending on the case.

Version Control can help you with branch and version of your app. I used it for years and for me Iā€™m really to bad that Xojo cannot offer it.

I donā€™t doubt you miss it; I was just saying itā€™s far from mandatory.

Iā€™m just saying itā€™s a shame it costs $699. It could be a simple paid option.

I agree on this point. If someone wants it, itā€™s not that cheap.
I was rather replying to this:

1 Like

I have a folder in my Documents area named ā€˜RealBasic Projectsā€™ (which indicates how long Iā€™ve been using this system) that contains the various projects, each in its own folder. At that same level is a folder containing my shared modules.

The individual project folders may contain subfolders for each version I want to retain but are historically older and not actively maintained. If I need to experiment with something that will take considerable coding, Iā€™ll make a copy of the project file(s) first, just in case I need to restore it after doing something stupid.

The entire RealBasic folder gets backed up to the cloud at least once a day if Iā€™m actively working on a project. I tend to not use version control since it isnā€™t cost effective for me.

You can with pro version $699

Itā€™s still more expensive than the Lite option, but itā€™s available in the Desktop version for $299 (unless something changed). Thatā€™s a lot more affordable than the Pro.

Again, you can also do it with the Desktop for $299. You arenā€™t forced to spend $699 for it.

1 Like

yes youā€™re right $299 for version control.

I have a primitive version control system of my own making which is useful to me. Apart from that, I have a master Xojo folder and then subfolders, each of which contain a individual project.
As I work, I make compressed (zipped) time stamped files of my project so I limit my losses if disaster strikes. I like using zip files not so much because of the space savings, which are really not important, but because this way I avoid inadvertently opening an older version of the project with all the horror that that entails.

i have a own hd partition and then folders for each programming language.
inside the projekt folders. one folder as parent for all test project folders.
for all software setups i install it direct after the drive letter L:\Xojo 2020r1.1
to have a good overview and quick access.

in the ide / project itself i use folders for ui, classes, icons, images.

Quickly said, inside my projects folder, I have an ā€œarchivedā€ folder (where I put what I donā€™t develop anymore), a ā€œcurrentā€ folder and a folder where I have shared classes. Each folder is the organised in sub folders (projects name for the ā€œarchivedā€ and ā€œcurrentā€ folders and classes name for the other).
When/If I start a project over, Iā€™d either create a new folder (e.g. ā€œMyProject 2ā€) or keep inside the same folder a ā€œMy Project.v2.<Xojoā€™s extension>ā€ file, depending on the case.

Sure, why use a fully featured industry standard tool, when you can roll your own instead and live with the lack of features and human errors instead?

To get started with version control the binary format is enough. Use external items instead of the text format. I found the text format not suitable for my needs because my projects share a lot of code.

Here is my top level organisation:

ā€œClassesā€ has 4 subfolders:

  • Basic classes that can be used by everything like logging.
  • Help classes are not my own code. PiDog, m_string and the like.
  • Build automation is for all build code.
  • Main classes are my own code.

ā€œcode currentā€ contains the projects and the IDE communicator project.

Then I have some other stuff.

ā€œProjectsā€ tries to have at least one project for the basic classes and the helper classes. Not all main classes have a project.

The main project has currently over 550 project items.

How do you use version control with binary files?

Files are files.

I donā€™t do the cleanup where Xojo changes 100 files when only a couple of classes are changed. For comparing different versions of files I use Arbed. But I need to do that only a couple of times a year.

Industry standard tools donā€™t suit everyoneā€™s needs, as with anything.
My flexibility is well served with my habits, better than with someone elseā€™s tools, for example.
Never had a lack of features, but have the simplicity (nothing to install, nothing to pay, nothing to set up, can work without internet connections).
As for human errors, you learn a lot with having them.

When using with binary projects it is not searcheble and the code reuse is really hard job while xojos structure is not really allowing it completely. The use of github makes no, absolutely no sense with binary projects, in that case you can do a simple database with check in and check out. But That is not the clue of github.
Anyhow I prefere another form of structure in development environment. They could take a look to JetBrains, Netbeans, Eclipse.
And more fast stgring functionality would be nice. Even the B4J IDE is faster as emulated wine running on Linux than xojo 2020R1.1. So I think there is a need to rethink and reengineer parts of the IDE to have also the ability to bring up coding with Github or even SVN in a really usable and usefull function.

1 Like