Quick Take Review: Umbraco Web Content Management System II

Key Features and Ratings

Core Technologies

Umbraco is a Microsoft.NET solution. It runs on Microsoft Windows Server 2003 and up against SQL Server 2005 or VistaDB.

Built on the .NET framework 2.0 and using ASP.NET 2.0 and C#, Umbraco supports .NET Custom Control and .NET User Controls without having to do anything special. Controls are added to Umbraco using Macros. It fully supports ASP.NET Ajax using jQuery, Prototype, MooTools or another Ajax toolkit.

It also fully supports ASP.NET Master Pages. XSLT is used for generating dynamic lists.

You have full access to the Umbraco API which includes over 15,000 lines of code. The API is well documented. The event model for the content engine is also exposed allowing you to automate tasks based on the actions of content editors.

Designing Templates/Look and Feel

Umbraco does not have a custom template engine, so you do not have learn a new templating language in order to create websites. This is a plus in our opinion. The Umbraco team believes there are better tools already out there, tools that designers know well and are comfortable using.

UmbracoTemplate1.jpg
Umbraco Templates

For Umbraco, it's as easy as designing your website in your favorite tool like Adobe Dreamweaver, then cut and paste the HTML code into the Umbraco template editor (in the Back Office) and then in the spots where you want your Umbraco data, insert an Umbraco field and save. When a page is rendered using the template, the content is dynamically displayed.


UmbTemp_PageField.jpg
Umbraco Templates — Insert Page Field

Umbraco gives you 100% control over the design for your website. You don't need to worry about themes or skinning, the design can be anything you want. Hartvig believes that themes and skinning is often a sign of bad separation of content, functionality and presentation.

Modify vs Customize

Like any open source content management solution, you are able to modify the source. But like the Umbraco folks say, that's a big step to take and you run the risks of breaking future upgrades or breaking compatibility. Their motto instead is customize and extend, saying they have built every part of Umbraco to be extensible.

What About MVC?

Umbraco is heavily investigating the use of ASP.NET MVC — Microsoft's newest framework for ASP.NET — as an alternative for the front-end website. Hartvig says that the current engine is very close to the MVC model now.

Web Analytics

Umbraco does not have web analytics built-in. Hartvig believes analytics is not a trivial task and is best left to the experts. You can integrate any web analytics tool with Umbraco via web server plugins, access logs or JavaScript — think WebTrends and Google Analytics.

Content Entities

In Umbraco, the core or foundational concept is the Document Type.

Document Types describe the type of content that you can create in your website. Examples of Document Types include News Items, Articles, HomePage, SearchPage. Document Types are to Umbraco what content types are to another web cms and web pages are to another.

Document Types and IA

Understanding how Document Types work is the key to understanding Umbraco. Unfortunately, at first they are a bit confusing, because defining them is a mostly about modeling content but also a bit about the website's information architecture.

This blend of concepts and the related implications threw us for a little turn. However, if you can get these concepts under your belt, then the rest of the system is much easier to understand.

When you create Document Types you are also outlining the rough structure for the website's information architecture. Specifically, when you define a type, you must also specify where that type can live in the website's structure. Down the road, content authors and manager will not be able to over-ride this.

To put this differently, when you define the type you aren't exactly building the navigation, but you are placing limits on how the navigation can be defined.

In Umbraco, there's no delineation between content (like individual articles) and webpages (like HomePage or Article List page). You create Document Types for each type of content whether it's "real" content or a webpage with dynamic functionality and some metadata, etc. Hartvig says that this is a good thing and provides the flexibility needed when building a website.

In thinking about the blend of type definition and type usage it strikes us as a good model for small to mid-sized organizations with only one or a few authors and no "Editor" or "Administrator" to who controls the overall structure of the website. The initial system set up can be done by an expert and then the content managers can be left to their own devices and one need not fret that content instances will end up in the wrong place in the website.

For larger organizations it can also work, but if more powerful users want full control over the website's information hierarchies, they might find the blend of type and location to be a source of frustration.

Creating Document Types

Document Types are like SQL database tables. You create the Type and then assign a number of properties to it, indicating what the format of each property can be (text, rich text, drop down, etc) and if that property is required. This is pretty standard stuff for content management systems.

For example, an Article Document Type means that you can create one or more articles for your website.

CreateDocType.jpg
Umbraco — Creating a New Document Type

When you create a Document Type, you provide some basic information about it such as Name, Alias, Icon, thumbnail and description. The Icon is the image you see beside the content you create in the Content Section. The thumbnail gives you a quick view of what type of content you are creating when you create a new piece of content.

You can also indicate to have a template created automatically. All this does is create a template shell with the same name as the document type. You can actually have more than one template (view of the Document Type), but one is the default. The allowed templates section on the Info tab indicates which templates you can use for this Document Type.

Document Type Tabs

Sometimes you may have a lot of different properties for your content type. You can organize the way the content information is added by creating TABS for your document type. This is simply a way to organize the information you want to add without having everything listed on one single page. For example, you can have a tab for Core Content and one for MetaData.

Creating Properties

You define the properties for your Document Type in the Generic Properties tab and assign a TAB those properties will appear on.

DTProperties.jpg
Umbraco — Document Type Properties

Defining Structure

The Structure Tab for a Document Type lists the Document Types already created. Here you select the type of Document Types that can be created as child nodes under your Document Type.

The structure is really the navigation for your site. If you create a HomePage Document Type, then you would probably allow all other DocumentTypes to be created under it. But if you were creating a News Summary Page Document Type, you would probably only want a News Item Document Type to be createdunder it.

Security

Umbraco's security model is easy to understand. There are two parts to it. First, you can easily create users and roles in Umbraco.

Creating Users

When you create a user, you set up all the basics such as username, password, email, default language and role. In Umbraco, a user is assigned to one role only. You select what sections within the Back Office the user has access to and you can automatically redirect the user to Canvas Editing on log in, thus restricting them from the Back Office completely.

Umb_CreateUser.jpg
Umbraco — Creating a User

You can also restrict the area of content the user can work in by setting the Start Node in Content. If you set this node to something other than the top level, when the user logs in they only see the Content Navigation Tree from that Node down.

UserPermissions.jpg
Umbraco — Restricting Content Access

Creating User Types

There are several User Types created by default in Umbraco: Writer, Editor, Translator, Reviewer. For each role, you specify the permissions for that role.

CreateRole.jpg
Umbraco — Creating a User Type

When a user is assigned to a specific User Type, their actions are limited to those set by the User Type:

PermissionsMenuChange.jpg
Umbraco — Limiting Permissions by User Type

User Permissions

You can also set user permissions on individual pages.

SpecificUserPermissions.jpg
Umbraco — Defining User Permissions

Membership

You also have the ability in Umbraco to create Members Only areas for your website. In the Members Section of the Back Office you can create Member Types like Basic, Silver and Gold, Member Groups and view the Members who are signed up.

You can full control here over how to format Membership.

To assign a section of your website as Members only, you right click on the particular section and select the Public Access Menu Item. You actually have two options here. The first is to assign a generic username and password to the selected content. The second to assign a Group or Groups.

RoleBasedProtection.jpg
Umbraco —
Role Based Access Control


Content Versioning

Versioning of content entities is a core function of Umbraco. Every time you publish your content entity a new version is created and an audit trail is maintained. You can rollback to any version you want. There is no limit on the number of versions you have.

Umbraco_Versions.jpg
Umbraco — Content Versions with Visual Differences

When viewing a version of the content, you can view the difference between the current version and an older one. Content marked in red will not be shown if the version to rollback to is selected, content marked ingreen is new.

Also using Umbraco's event model you can easily clean up old versionsautomatically, or you can use Umbraco's free tools.

0 comments:

:a: :b: :c: :d: :e: :f: :g: :h: :i: :j: :k: :l: :m: :n:

Post a Comment