Solution and project structure
How the Visual Studio solution is structured and what is the functionality of each project. This also describes the end goal of how we'd like the solution structured.
The goal of the Umbraco project is to be left with only a few Visual Studio projects:
Achieving this goal will take quite a lot of time by slowly migrating over old code and refactoring it into new code under new namespaces and projects. This cannot all happen at the same time but starting down this path now means that we can realize this goal sooner.
- Contains all functionality in Umbraco that does not pertain to the Web. For example, it contains any classes and objects that could be used in a console application.
- Assembly: Umbraco.Core.dll
- Does not reference ANY other project except for umbraco.interfaces
- Contains all functionality in Umbraco pertaining to the web.
- Contains all of the legacy code (including code behinds) that exists in the umbraco.dll file under the old namespaces but this code will slowly be migrated over to the new namespaces
- Assembly: umbraco.dll
- Unfortunately due to the legacy code this project cannot produce a consistent DLL called Umbraco.Web.dll so we are stuck with umbraco.dll until maybe one day when 'the goal' is achieved we might be able to make a switch but this is a low priority.
- Legacy webforms files have their codebehind files in the Umbraco.Web project. If these legacy webforms files need to be worked on, we can migrate their codebehind files to the Umbraco.Web.UI project as we see fit.
- ALL NEW ASPX, ASCX, ASMX and any other webforms file that requires a codebehind will exist under the Umbraco.Web.UI project
- MORE IMPORTANT -> BECAUSE THE NAMES OF THE FOLDERS ARE NOT PROPER CASE YOU WILL NEED TO ENSURE THAT THE NAMESPACE IS OF THE CORRECT CASE. SO WHEN YOU CREATE YOUR ASPX PAGE, THE NAMESPACE NAME MIGHT BE: Umbraco.Web.UI.umbraco.settings . YOU NEED TO CHANGE THIS TO: Umbraco.Web.UI.Umbraco.Settings
- See here for the sub-structure details of this project
- Contains all of the files used to create the v7 AngularJS backoffice application
- This project is part of the solution as a basic 'website', it does not compile
- Contains all unit tests for Umbraco
- Uses NUnit for unit tests
The code in the legacy projects will eventually be migrated and refactored with correct naming and code conventions into the new projects and namespaces