Umbraco Architecture

377 views
Skip to first unread message

ghr....@gmail.com

unread,
Apr 6, 2014, 4:46:29 PM4/6/14
to umbra...@googlegroups.com
Hello Everyone
Excuse Me If my question is not professional or maybe very armature
I have just downloaded umbraco source code , open it in vs2013 ,
well I was wondering if I there is any explanation of different umraco projects (core , datalayers,cms) on net , so I can grasp of concepts umbraco is developed by.
 
thank you
 

Aaron Powell

unread,
Apr 6, 2014, 6:37:41 PM4/6/14
to umbra...@googlegroups.com
I'll do my best explanation of it:
 
  • Umbraco.Core
    • Anything that's important from the main parts of Umbraco since v6. This contains repositories, services, publishing, etc. Pretty much anything you're really interested in will be within this assembly
  • Umbraco.Web.UI.Client
    • I think this was the original v7 UI prototype which morphed into the new v7 back office (because anything written as a prototype won't stay as a prototype)
  • Umbraco.Web.UI
    • Umbraco "itself". When you hit / or /umbraco on your install this is where everything comes from. All the HTML for the back office will reside in here, and the 'umbraco' folder itself is where the back office resides. Note - there's plenty of legacy code still in here, much of the pages are ASPX with code behind
  • Umbraco.Web
    • This is the code for the web-specific parts of Umbraco, so how routing happens, SurfaceController discovery/wire-up, Macro rendering, etc. This is where the code that talks to the services will reside
  • UmbracoExamine.*
    • I'm assuming the .Azure & .PDF.Azure are there for some workarounds to make Umbraco Examine work better in Azure. The others are for the Umbraco implementation of Examine, the Lucene.NET API wrapper. Examine is a project on its own, UmbracoExamine is just an implementation of it that understands Nodes and how to import them into Examine
  • umbraco.MacroEngines
    • I think this is just the Razor macro engine and originally was created to run Razor macros without MVC (but probably still used for that purpose today)
  • umbraco.businesslogic
    • The legacy "core" of Umbraco, well at least part of the legacy core, I never could work out the difference between umbraco.businesslogic and umbraco.cms.businesslogic. Simply put you shouldn't need to go into this project
  • umbraco.cms
    • More of the legacy "core" of Umbraco. If you've ever worked with the legacy Umbraco API's they mostly came from here. CMSNode is the root of everything, all concepts (Documents, DocumentTypes, Macros, Media, etc) extend this class and it would talk to the DB. Again you should be able to avoid t his
  • umbraco.controls
    • Custom ASP.Net WebForms Server Controls that were used by the back office. Most of them should be considered legacy with the v7 UI
  • umbraco.datalayer
    • The old data layer. This was a very thin wrapper around SQL Command and would expose a way to write direct SQL against the Umbraco database. Again this should be avoided as there is a new data layer in the form of PetaPoco (see Umbraco.Core)
  • umbraco.editorControls
    • Here are your data types, well at least the legacy ones, I don't know if they are really used as of v7
  • umbraco.interfaces
    • A project that exists for the sole purpose of having another DLL to manage. It contains, you guessed it, .NET interfaces! And I'm pretty sure they are all superseded since v7 came out, and honestly I don't think I ever changed a line of code in there
  • umbraco.providers
    • These are custom .NET ProfileProviders for the legacy membership in Umbraco, both back office and site members. They are really just implementations that delegate the calls through to the appropriate (legacy) Member of User class. With the new membership service in v7 I don't know if these are used any more
 
Well I think I got that all right, others can correct any errors or provide any more detail where I've skimmed it.
 

Date: Sun, 6 Apr 2014 13:46:29 -0700
From: ghr....@gmail.com
To: umbra...@googlegroups.com
Subject: Umbraco Architecture
--
You received this message because you are subscribed to the Google Groups "Umbraco development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to umbraco-dev...@googlegroups.com.
To post to this group, send email to umbra...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/umbraco-dev/5e0f31bf-bc91-4c42-939c-7fa7618dc451%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Per Ploug

unread,
Apr 7, 2014, 6:41:47 AM4/7/14
to umbra...@googlegroups.com
Umbraco.Web.Ui.Client is the active backoffice project, it contains nothing but client-side assets, which are then combined/minified/etc  into Umbraco.Web.Ui on each build.

Aaron Powell

unread,
Apr 7, 2014, 6:44:34 AM4/7/14
to umbra...@googlegroups.com

The readme still refers to it as a prototype ;)

Per Ploug

unread,
Apr 7, 2014, 7:03:06 AM4/7/14
to umbra...@googlegroups.com
whoops, better change that then :) 

Shannon Deminick

unread,
Apr 13, 2014, 11:08:26 PM4/13/14
to umbra...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages