I am working on a Startup which website is being done with MVC.
We are not sure about the best architecture for it and also the best solution so we can upgrade it to ASP.NET VNext when it comes out (BTW, any prediction about the ETA? Would be really helpful so web can plan our work).
So I decided to seek advice here ...
The project has the following needs:
- A MVC web site with different languages;
- A CMS so that the team can insert content in the database;
- A few Quartz jobs that query the database daily and find users to which an email should be sent.
- A blog parallel to the website.
- An API for in the future create mobile applications.
Initially the project was simpler (only website and cms) so we considered an MVC application with the CMS placed on an MVC area.
Now we also see other options:
- MVC, CMS and Blog each being a different MVC application where the CMS and Blog are in subdomains.
The API would be a Web API application and the Quartz.net could be a simple ASP.NET MVC application where jobs are started in App_Start
In this situation each application would connect to the database by itself.
They would share a class library which contains EF entities, repositories and services classes.
I am not sure what problems might arise when having different applications connect to one database.
- The same as one, all MVC applications, but they would all connect to the API which would be the only one to connect to the database.
I have never done this but I think having the Website and the CMS connecting to the API would force the API to be really complex.
- Place everything on one application leaving only the API for mobile and the Quartz in a simple MVC or Console application.
Or any other suggestion you might have ...
We are also looking what would be the best approach in terms of ASP.NET VNext ...
But we don't have much information about it.
Could someone please advice me on this?
Thank you very much