ebb
ebb

Reputation: 9377

Whether to use CMS or not

I've started to wondering whether ASP.NET Webforms/MVC even have a place in the web developers toolbox anymore... It seems that CMS systems like Umbraco have replaced the web developers job. Yes I know that those CMS systems are built with ASP.NET Webforms/MVC - however is there even any reason for learning those things if all you gonna do is to use a CMS system anyway? - Also I cant find any situation where a CMS system can be replaced by your own web application.

My question is therefore: Is there any reason for learning Webforms/MVC when using a CMS?

EDIT:

My question might be more like: When should I use a CMS, and when should I go and build my own web app?

Upvotes: 7

Views: 2342

Answers (7)

Ryan Mann
Ryan Mann

Reputation: 5357

Umbraco is a pretty bare minimum CMS. To customize it (e.g. Version 7+) you'll need to know Heavy MVC, JSON, XML, Sql, etc.

In fact a Site built on Umbraco 7+ is entirely based on MVC views you set yourself and assign to SurfaceControllers (which are MVC controllers) and all you are really getting is the ability for users to edit things about your pages and have Umbraco manage it for you in a DB.

In short you still need experienced web developers to build a site on Umbraco, they just save a lot of time by not having to build the entire backend from scratch.

You use Umbraco to organize Document Types that define what Templates (MVC Views) are used for rendering different types of documetns (e.g. Web Pages) and then you built the template from the ground up with 100% control over the HTML, Css, and Javascript that get's output.

Imo Umbraco is more of a Framework like Django than a complete CMS.

Sure you can build a site in Umbraco and not customize anything, but it would be a pretty cheesey site.

The whole point to Umbraco is to give skilled .Net Developers a good platform for building a site on top of it, but they still have to build it.

Now sharepoint would be more of a complete CMS out of the box that you can do a lot with, but let's see a few problems with SharePoint...

  1. Resource Heavy, eats 50+ Gig's to install
  2. Eats 16 GB of ram just to boot it up (Sharepoint 2013)
  3. Requires Sql Server 2008 R2 or equivalent (enterprise license, $$ chaching)
  4. Requires Windows Server ($$chaching)
  5. It's a monster basically, if all you need is a user editable blod platform... man what a waste of money. Foundation is free, but doesn't include things like the Blog Site Template, so you buy a server enterprise license ($$ big cachinge, 40,000$+ in some scenarios...)

Upvotes: 3

Simon Halsey
Simon Halsey

Reputation: 5480

Not every problem needs a CMS. In the same way not every problem needs a bespoke MVC/webforms website. It depends on what your requirements are. You pick the technology to solve the problem.

Build vs buy is the hardest decision to make. As a developer build always looks best. You can do better than that pile of carp they want to buy. Nevermind that you're reinventing the wheel, axel, cart, etc. To users/management buy always looks best. They don't have to think to hard about what they want and can have it now, not 3 months later after you write it. They forget it'll cost the same again to customise & make it impossible to upgrade.

I'll stop ranting now.

Upvotes: 4

jgauffin
jgauffin

Reputation: 101130

I don't think that Stack Overflow could have been built with a CMS. Does that answer your question? =)

Update

To answer your updated question.

If you want a regular corporation web containing news, articles, forum etc: Go ahead and use a CMS.

If you need to build a more custom web site like stackoverflow, a web interface for a system or anything like that: Built it using MVC etc.

I personally use a CMS for our corparate website and a MVC framework to build user and administration interfaces for our products.

Upvotes: 8

Scott
Scott

Reputation: 17247

The problem with CMS solutions, and I mean all CMS solutions (not just Umbraco, or other .NET solutions, but in any language) is that you will always pay a price for using them. You may gain more from the time-savings afforded by using the CMS, but there are trade-offs to consider:

  • You will sacrifice a great deal of flexibility
  • You could pay a significant performance penalty. Many CMSs load a large amount of modules and code to service every request, and much of this is not relevant to a particular page function. (though some CMSs are more monstrously heavy than others!)
  • The future of your project is tied to yet another vendor, and their own choices
  • Very often, you rule out the possibility of using other databases that might have better fit your customer's needs (Umbraco doesn't support PostgreSQL, Kentico only supports SQL Server)

Once you start using a CMS you will be tied into satisfying the architectural decisions and API of the CMS framework, and you could eventually be backed into a corner.

This can be particularly problematic if your 'site' is more of a web application than a pure content delivery site. In such cases it can make more sense to choose to build using the full flexibility of the web application framework, rather than risk getting backed into an architectural corner.

On the other hand, if you are building a web site that has potentially hundreds of pages, with a lot of user-contributed content and is much less of a web application, then often a CMS is the way to go, and makes a lot of sense. But remember, you now have two frameworks and two APIs to learn and manage (your platform's framework and the CMS framework).

Upvotes: 20

John Farrell
John Farrell

Reputation: 24754

Writing a CMS is like invading Afghanistan.

Everybody gets a turn but nobody wins.

Upvotes: 19

MarkXA
MarkXA

Reputation: 4384

A CMS (or similar application framework) will provide you with a lot of functionality out of the box, and many of them also have a good library of plug-ins. But you'll still need to write WebForms/MVC code if you want to add any custom features.

Upvotes: 1

BobC
BobC

Reputation: 412

Agreed. A CMS like Umbraco provides a (very) good out-of-the-box solution for the most basic applications. Any sort of specialized purpose is going to require additional programming knowledge. Anymore, though, and your major, if not primary need is going to be a good understanding of the business need. I think we're getting away from building the Legos themselves and on to building the neat toys with the Legos. Cheers!

Upvotes: 2

Related Questions