0
votes

We are reengineering our web site and are thinking of using Umbraco for building a CMS web site. Here is the braod architecture we are thinking of using :-

  1. Development Architecture :- Integrate Umbraco in Visual studio project using NUGet package manager. Here both ASP.NET MVC5 and NUGet package manager will be used in the same solution but as different web projects. To elaborate it more there will be following two projects :-

a. First Project for Umbraco Back Office Site where content writers will be creating pages, administrators will be creating Document Types, Templates etc

b. Second Project for ASP.Net MVC team which will be creating Partial Views, writing business rules etc. All the macros created in this project will then be integrated in to the pages to be created in Umbraco Back Office Site.

  1. Deployment Architecture :- Single site will be created in IIS in which Umbraco back office site and the site for the outer world will be hosted, i.e. all the DLLS related to both the projects described above will be copied to the single physical folder on the web server. For Umbraco back office site we will be creating a special url which will not be accessible to the outer world. Changes in Web.config of the ASP.NET MVC project will be copied to the Umbraco back office site web.config.

Please have a look at the this broad architecture and let us know what are the pros a cons of this architecture

1

1 Answers

0
votes

Umbraco can't really be split out in the way that you're describing. The Umbraco front and back end are highly coupled, you can't have one without the other. In your example, you'd effectively have two instances of Umbraco pointing at the same database. You'd get into all sorts of trouble trying to merge the two together.

A typical Umbraco project structure for larger projects that I've seen would be a solution something like:

  • Web Application Project for Umbraco - contains all Umbraco related stuff
  • Project for code extensions for Umbraco, e.g. custom controllers, custom business logic, you may have several of these, say for example for custom data access etc
  • A front end project that makes use of Grunt or Gulp to implement a build process for compiling SASS/LESS, minifying JS and optimising images and copying them into the web project for deploy