In AppStudio 7, we introduced a new format for saving projects. The old format, using the .nsx file, tried to store as much as possible into one file: source code, forms, controls, properties and more. The resulting file was large, complex and had a number of limitations. Furthermore, it still didn’t hold everything. Images, code modules and other stuff were stored externally.
AppStudio 7 replaces the .nsx file with the much simpler .project file. It keeps only the high level information about the project. Code, forms, elements and properties are saved in separate folders. This has a few advantages.
- Individual files can now be edited using your favorite editor. Your changes will appear next time you launch AppStudio.
- Projects can be searched more effectively. Global searches can now easily locate strings in the project.
- Version Control tools now work on AppStudio projects. Git, Mercurial, VSS and others can help you keep track of changes to projects. Many companies require the use of version control on all projects.
- Multiple developers can work on the same project, since they are not all updating the same file at once.
One of the requirements of the new format is that each project have its own folder: only one project per folder. A folder holding an AppStudio project will end in .appstudio. For example, a project folder could be named Project1.appstudio. (AppStudio will automatically add the .appstudio when you save the project for the first time.)
Here’s an example. This is how a project directory looks for an AppStudio 6 project:
Here is the same project in AppStudio 7:
Some of the differences:
- MyProject.nsx has been replaced by MyProject.project
- The name of the folder has been changed from MyProject to MyProject.appstudio
- The forms are now in the ‘forms’ folder.
- The controls for Form1 are in the Element subfolder.
- The code for Form1 is in Form1.bas. (It would be Form1.js for JavaScript).
- Form1.json contains the properties of Form1.
- The files in properties used to be in .nsx.
Have questions? Post them to our web board!