Umbraco doesn't seem to be the right tool for developing medium/large portal?
Let me start by saying that this post isn't meant to be provocative or to troll the Umbraco community! I'm looking for some honest input from the community.
I consider myself an Umbraco novice, but about 6 years back i've built two websites, so i do understand the fundamentals of the Umbraco CMS. Since then i have built many sites in other CMS'es.
A customer has asked my company if we can built them a medium/large portal for their corporate site. I have done some research to figure out if Umbraco can (or should) be used for this.
Umbraco setup: 1 Umbraco installation will need to contain about 10 different subsites/domains. Each subsite will have its own set of document types, templates, CSS, masterpages, pages and usercontrols. But they will also share some functionality. We will be using about 30 different templates to start with.
The reason why i am considering Umbraco:
It's Open Source, thus no license costs
It has a large and active community
In the past i found it easy to work with for small/simple sites
It supports both Webforms and MVC. The company is work for is currently developing using webforms, but the switch to MVC is coming closer :)
But i'm having serious doubts if i should use Umbraco for this task.
I will try to explain my doubts below.
The Core CMS doesn't seem to cover the basics (IMHO). For example:
It seems to lack the possibility the use folders to organise a large amount of document types, templates, pages, and usercontrols. Both in the CMS backoffice and on the filesystem. I asked a question about this in this forumpost about document types and templates.
Package Manager missing Easily creating/updating/syncing doctypes/templates and files between CMS installations is an absolute MUST. I know Courier is available as a commercial addon. Is this a rock solid product these days? (Older version was kind of unpredictable and unstable for a commercial module) (I Also remember reading something about third party tools like uSync and uSiteBuilder, but did not get around to look at them in depth)
Decent multilanguage functionality missing - workaround provided by using seperate tabs per language (meh!) - workaround with using seperate content tree per language (this can be a valid solutions sometimes.) - Vorto project looks promising! I would like to see similar functionality in the CMS core.
Umbraco lacks the functionality of grouping input fields together within a tab - Archetype looks promising! I would like to see similar functionality in the CMS core.
Lacks decent builtin validators for usage in document types. I would expect more validators out of the box. For example: - Is Required - Regex - Is integer - Is decimal - Range - Email - Max length
Detecting broken (internal) Links functionality is missing.
Minor personal inconveniences (no big issues)
Some "data type" settings should be present on a document type.For example: When creating a document type field, i would like to select a "content picker" datatype and specify the startnode on the document type itself. (Instead of creating a seperate data type when i want a "content picker" to have a different startnode).
Umbraco is unclear about source control best practices (IMHO) - which files should be in source control (and which not)? - which files will actually change after installing a package? - i have found some workarounds using different locations for source + IIS site - haven't found similar like this documentation for another CMS
Images are stored on filesystem - I would really like to store user generated content (including images) in the database. It also makes it easy when working with multiple developers on the same project. - I did find a workaround for handling multiple developers scenario in combination with images (for example: using virtual folder for images)
My preliminary conclusion/opinion
Out of the box the CMS kinda feels "not up to the task" when building a structured portal containing multiple sites/subdomains. (and that it will get messy on the filesystem)
My gut feeling tells me that i would have to use workarounds for structuring the installation, (to much) custom coding to the CMS itself and/or use third party addons for what i consider basic functionality.
It may sound silly, but i'm not really comfortable using third party Umbraco addons (for basic functionality) because it raises many questions. For example:
Are these third pary tools supported by the core team?
Will they break when the Umbraco installation is updated?
What's actually happening beneath the surface? (business logic and data storage wise)
Do the third party tools support Webforms and/or MVC only?
Am i the only one that feels this way? Are my findings incorrect? Did i perhaps miss some core features/functionality? Do you think Umbraco actually is the right tool for the job? (if so, why?)
You have found solutions for (almost) all of your problems already and that's exactly the way people currently build Umbraco web sites: they take the stable core of Umbraco that is really good at providing content editing options to website editors and really good at providing implementors (you) to implement all of their custom needs and bring together the right tools for the job in their final solution. We explicitly want people to think about what components to use because you should be using the components that make the most sense for your customer: the end-user that will be entering the content on your site.
For things like multilingual and archetype: yes, we want to offer functionality like it out of the box, but we also need time to put that into the core properly, which takes time, time is limited when you're working with 4 or 5 people on that core. So we're very grateful and happy that there's a lot of people building those packages and we learn a lot from those packages and we take that experience of what does and does not work into account when adding new functionality to Umbraco.
Specifics:
We have limited folder support, templates and user controls can be put in any folder you want (you just will have limited backoffice access to them, which should be fine as it looks like you're a visual studio user), for document types you can make inherited doctypes of which the "top" one is just a dummy doctype, not ideal but it'll do the job. For pages..? Not sure, you create your pages in any structure you want them to be in
Package manager.. Eh, you have seen Developer > Packages, haven't you? A right click and you can create packages yourself and include whatever you want
Multilanguage: maybe Vortex, maybe a custom solution (google for it, there's as many solutions as there is developers and everybody seems to want to do it slightly differently)
Archetype is great, just use it
We have required and regex. Do not put too many restrictions on these fields though, people will HATE you for it and be discouraged to actually start filling content. Other validation options can be added by creating your own custom property editors for that
Detecting broken links: try Concierge and/or SEO checker.
Some "data type" settings should be present on a document type: create your own data type (use existing ones for inspiration)
Umbraco is unclear about source control best practices (IMHO): Again, there is a shitload of wildly different opionions about it. Google for gitignore and hgignore files, they're out there. A lot of it is also personal preference though.
Images on disk: There's options to store items in the media section on AWS storage, I don't have links at hand but there's a few packages that cover this scenario. IMHO: databases should not be used to store binaries, a slightly better option is to store them in source control (which is what most people do)
Not up to the task for portal systems: Umbraco is a Web Content Management System, not a portal builder system. You can build portal systems with Umbraco though. If you need a completely out of the box solution then just use Sharepoint, that's what it was made for.
Are these third pary tools supported by the core team? - No, 3rd party tools are not supported by us, but we have a wonderful eco system of packages which are mostly open source and most developers do support very well
Will they break when the Umbraco installation is updated? - They shouldn't do, that would mean we introduced a breaking change which we only should do for major new versions
What's actually happening beneath the surface? (business logic and data storage wise) - Most of these packages are open source. If you have specific questions the community would love to help
Do the third party tools support Webforms and/or MVC only? - It depends, for most packages it doesn't matter whether you use WebForms or MVC, but in rare occasions things are specifically only built for one or the other. Ask these questions for each specific package, most of the time if there's no specific statement about it, both are supported.
So, with all this said, again, we don't pretend to be in the business of developing portal software, we make a CMS and it serves a lot of people very well. We also stress that Umbraco is best used for tailor made solutions, not for generic one-size-fits-all solutions.
First of all, thanks for anwering my questions (again).
I would like to start by responding to the conclusion of your post:
"So, with all this said, again, we don't pretend to be in the business of developing portal software, we make a CMS and it serves a lot of people very well.
We also stress that Umbraco is best used for tailor made solutions, not for generic one-size-fits-all solutions"
The company i work for does exactly that: we develop custom webapplications for our customers. These solutions often include a CMS as part of the solution. At the moment we are still rolling out our homemade CMS for every project. But this means we must also invest valuable time into maintaining/extending the CMS. It's the main reason we are looking for an existing CMS to offer to our clients.
My company is at a crucial point were it will decide which CMS will be used in our future projects. (ranging from small monolingual sites to large multilingual webbapps)
We're not looking for one-size-fits-all solutions, but just a CMS that covers (what we consider) the basics.
I have been keeping an eye on Umbraco for a while. The CMS has great potential and the community is very sympathetic, yet i haven't had the confidence to deploy it for many of our projects.(but we have many awesome clients we could/want to introduce to Umbraco :)
If Umbraco was just a bit more extensive out of the box, then it would definitly be the default CMS we would incorporate in our solutions.
I guess it's a matter of perspective as our definition of "basic CMS functionality" may be different from others.
The functionality i'm talking about:
Multilanguage (language switch in backoffice that facilitates the
modification of the page fields + url slug for the specified
language)
Archetype (or something similar)
Courier (or something similar)
I'm sure the ecosystem is cool, and the third party builders are smart people, but i'm gonna have a hard time convincing management to use Umbraco when basic functionality is missing out of the box.
This also means that buying (complete/confidence) support is not a viable option because basic functionality is added by 3rd party tools which aren't supported by the core. (The dependency on third party packages doesn't feel right.)
We don't have a priciple/rule against using third party packages. We would consider them for additional features like blogs, forum, SEO checker or 301 redirects.
Sebastiaan, you have been very helpful and patient when anwsering my questions. Many many thanks for that!
It's also the reason why i wanted to provide some insight on which factors play a role in the process of selecting a CMS for my company.
I hope you'll find the feedback somewhat useful. :)
Anyway, my company hasn't decided anything yet, so i'll do some more R&D work on Umbraco.
Cheers,
Erik
Specifics:
We have limited folder support, templates and user controls can be put in any folder you want (you just will have limited backoffice access to them, which should be fine as it looks like you're a visual studio user),
for document types you can make inherited doctypes of which the "top" one is just a dummy doctype, not ideal but it'll do the job.
You're right, i can structure my templates the way i want in Visual
Studio (using subfolders). But then how do i assign a template to a
document type? (Because when trying to assign a template to a doc
type, the umbraco backend seems to ignore the templates that are in
subfolders)
Package manager.. Eh, you have seen Developer > Packages, haven't you? A right click and you can create packages yourself and include whatever you want
My bad. I mixed up the terminology. I know Umbraco has a Packages
section where one can install packages. I was talking about the
ability for syncing doctypes/template between installations out of the box. (I'm reading kinda negative feedback
from people that have used Courier)
Archetype is great, just use it
Last time i looked, it was an alpha release. Thats a no-no for
production websites. :)
We have required and regex.
Other validation options can be added by creating your own custom property editors for that.
Fair enough. I'll have a look at it.
Detecting broken links: try Concierge and/or SEO checker.
Thanks. I'll have a looksy.
Images on disk: There's options to store items in the media section on AWS storage, I don't have links at hand but there's a few packages that cover this scenario.
IMHO: databases should not be used to store binaries, a slightly better option is to store them in source control (which is what most people do)
Cool. Although it would be nice to have a web.config switch that
provided the developer a choice were to store binaries. Consider it a
feature request :)
Not up to the task for portal systems: Umbraco is a Web Content Management System, not a portal builder system.
You can build portal systems with Umbraco though. If you need a completely out of the box solution then just use Sharepoint, that's what it was made for.
Uhm, i guess my words were poorly choosen. I know that Umbraco is a
Web Content Management System and that it's possible to manage multiple
website with Umbraco. I'm trying to find out how easy/hard it is to
manage multiple websites within 1 umbraco installation and what the
limitations are.
Umbraco doesn't seem to be the right tool for developing medium/large portal?
Let me start by saying that this post isn't meant to be provocative or to troll the Umbraco community!
I'm looking for some honest input from the community.
I consider myself an Umbraco novice, but about 6 years back i've built two websites, so i do understand the fundamentals of the Umbraco CMS. Since then i have built many sites in other CMS'es.
A customer has asked my company if we can built them a medium/large portal for their corporate site.
I have done some research to figure out if Umbraco can (or should) be used for this.
Umbraco setup:
1 Umbraco installation will need to contain about 10 different subsites/domains.
Each subsite will have its own set of document types, templates, CSS, masterpages, pages and usercontrols.
But they will also share some functionality. We will be using about 30 different templates to start with.
The reason why i am considering Umbraco:
The company is work for is currently developing using webforms, but the switch to MVC is coming closer :)
I will try to explain my doubts below.
The Core CMS doesn't seem to cover the basics (IMHO).
For example:
Easily creating/updating/syncing doctypes/templates and files between CMS installations is an absolute MUST.
I know Courier is available as a commercial addon. Is this a rock solid product these days?
(Older version was kind of unpredictable and unstable for a commercial module)
(I Also remember reading something about third party tools like uSync and uSiteBuilder, but did not get around to look at them in depth)
- workaround provided by using seperate tabs per language (meh!)
- workaround with using seperate content tree per language (this can be a valid solutions sometimes.)
- Vorto project looks promising! I would like to see similar functionality in the CMS core.
- Archetype looks promising! I would like to see similar functionality in the CMS core.
- Is Required
- Regex
- Is integer
- Is decimal
- Range
- Email
- Max length
Minor personal inconveniences (no big issues)
When creating a document type field, i would like to select a "content picker" datatype and specify the startnode on the document type itself.
(Instead of creating a seperate data type when i want a "content picker" to have a different startnode).
- which files should be in source control (and which not)?
- which files will actually change after installing a package?
- i have found some workarounds using different locations for source + IIS site
- haven't found similar like this documentation for another CMS
- I would really like to store user generated content (including images) in the database. It also makes it easy when working with multiple developers on the same project.
- I did find a workaround for handling multiple developers scenario in combination with images (for example: using virtual folder for images)
My preliminary conclusion/opinion
Out of the box the CMS kinda feels "not up to the task" when building a structured portal containing multiple sites/subdomains. (and that it will get messy on the filesystem)
My gut feeling tells me that i would have to use workarounds for structuring the installation, (to much) custom coding to the CMS itself and/or use third party addons for what i consider basic functionality.
It may sound silly, but i'm not really comfortable using third party Umbraco addons (for basic functionality) because it raises many questions. For example:
Am i the only one that feels this way?
Are my findings incorrect?
Did i perhaps miss some core features/functionality?
Do you think Umbraco actually is the right tool for the job? (if so, why?)
Cheers,
Erik
You have found solutions for (almost) all of your problems already and that's exactly the way people currently build Umbraco web sites: they take the stable core of Umbraco that is really good at providing content editing options to website editors and really good at providing implementors (you) to implement all of their custom needs and bring together the right tools for the job in their final solution. We explicitly want people to think about what components to use because you should be using the components that make the most sense for your customer: the end-user that will be entering the content on your site.
For things like multilingual and archetype: yes, we want to offer functionality like it out of the box, but we also need time to put that into the core properly, which takes time, time is limited when you're working with 4 or 5 people on that core. So we're very grateful and happy that there's a lot of people building those packages and we learn a lot from those packages and we take that experience of what does and does not work into account when adding new functionality to Umbraco.
Specifics:
So, with all this said, again, we don't pretend to be in the business of developing portal software, we make a CMS and it serves a lot of people very well. We also stress that Umbraco is best used for tailor made solutions, not for generic one-size-fits-all solutions.
Hope this helps.
Hi sebastiaan,
First of all, thanks for anwering my questions (again).
I would like to start by responding to the conclusion of your post: "So, with all this said, again, we don't pretend to be in the business of developing portal software, we make a CMS and it serves a lot of people very well. We also stress that Umbraco is best used for tailor made solutions, not for generic one-size-fits-all solutions"
The company i work for does exactly that: we develop custom webapplications for our customers. These solutions often include a CMS as part of the solution. At the moment we are still rolling out our homemade CMS for every project. But this means we must also invest valuable time into maintaining/extending the CMS. It's the main reason we are looking for an existing CMS to offer to our clients.
My company is at a crucial point were it will decide which CMS will be used in our future projects. (ranging from small monolingual sites to large multilingual webbapps) We're not looking for one-size-fits-all solutions, but just a CMS that covers (what we consider) the basics.
I have been keeping an eye on Umbraco for a while. The CMS has great potential and the community is very sympathetic, yet i haven't had the confidence to deploy it for many of our projects.(but we have many awesome clients we could/want to introduce to Umbraco :) If Umbraco was just a bit more extensive out of the box, then it would definitly be the default CMS we would incorporate in our solutions.
I guess it's a matter of perspective as our definition of "basic CMS functionality" may be different from others. The functionality i'm talking about:
I'm sure the ecosystem is cool, and the third party builders are smart people, but i'm gonna have a hard time convincing management to use Umbraco when basic functionality is missing out of the box. This also means that buying (complete/confidence) support is not a viable option because basic functionality is added by 3rd party tools which aren't supported by the core. (The dependency on third party packages doesn't feel right.)
We don't have a priciple/rule against using third party packages. We would consider them for additional features like blogs, forum, SEO checker or 301 redirects.
Sebastiaan, you have been very helpful and patient when anwsering my questions. Many many thanks for that! It's also the reason why i wanted to provide some insight on which factors play a role in the process of selecting a CMS for my company. I hope you'll find the feedback somewhat useful. :)
Anyway, my company hasn't decided anything yet, so i'll do some more R&D work on Umbraco.
Cheers, Erik
Specifics:
We have limited folder support, templates and user controls can be put in any folder you want (you just will have limited backoffice access to them, which should be fine as it looks like you're a visual studio user), for document types you can make inherited doctypes of which the "top" one is just a dummy doctype, not ideal but it'll do the job.
Package manager.. Eh, you have seen Developer > Packages, haven't you? A right click and you can create packages yourself and include whatever you want
Archetype is great, just use it
We have required and regex. Other validation options can be added by creating your own custom property editors for that.
Detecting broken links: try Concierge and/or SEO checker.
Images on disk: There's options to store items in the media section on AWS storage, I don't have links at hand but there's a few packages that cover this scenario. IMHO: databases should not be used to store binaries, a slightly better option is to store them in source control (which is what most people do)
Not up to the task for portal systems: Umbraco is a Web Content Management System, not a portal builder system. You can build portal systems with Umbraco though. If you need a completely out of the box solution then just use Sharepoint, that's what it was made for.
is working on a reply...