Some ideas on possible architectural solutions:
1. Combine both in one web application with one database
pros:
You have everything under one project configuration, and therefore avoid tweaking the project settings twice.
You can reuse the code without copying files or link files to another directory, which can sometimes be troublesome.
minuses:
- Security, functionality that can lead to inverted things in your system, is found under the same roof with user code, so there is a high probability that functions related to the administrator can be used by an attacker.
2. Separate web applications for Admin and Main applications, but use a common database
pros:
- You share code with different contexts in different applications, keeping things simpler and the user experience in both of them more concise.
minuses:
- Since the second reason for existence is to manipulate data and the main application, it will have to read and influence the data used in the main application; therefore, gives you less overhead.
This would be the best option in most scenarios.
3. Separate web applications with separate databases
I canโt understand why you want to do this when the second application is meant to process the first and the contents of the database. If you intend to use a large amount of data in a second application that is not relevant to your main application, this would be a reasonable option.
4. Combine both, but deploy separate instances, one of which works as Admin, and the other as the main application
minuses:
source share