Grouping code by feature – managing big projects
As you have seen in the main.js
file, we are using Durandal conventions. This means that all our view-models lie in the viewmodels
folder and all our views lie in the views
folder. When we have a big project, having all the files in the same folder can be difficult to manage.
In this case, we remove the viewLocator.useConvention();
statement from the main.js
file. This acts as an indication to Durandal that all the views are in the same folder as the view-model.
We are going to group our project by features. We will define these features in our project:
catalog
cart
order
product
shell
They will contain the code for each feature. Services, models, and other components will be as we had when we used conventions. Take a look at what the folders look like:
We need to update some code. The first step is to update the main folder, setting the new ID of the shell module:
app.setRoot('shell/shell', 'entrance');
Then we should do the...