Evaluate Asp.Net Enterprise CMS (Sitefinity vs N2CMS) - content-management-system

We are looking for a Asp.net CMS to integrate in our existing Enterprise-Webapplication. Some requirements:
Full integration in Visual Studio 2010 and our existing Application (so no Umbraco)
Common ASP.NET Web Forms Developing practices (Global.asax, Masterpages, User-/Custom-Controls)
Security (FormsAuthentication, custom Membership-/RoleProvider)
Very flexible and extendable (good API)
Lightweights CMS with good performance (thousands of simultaneous requests)
Easy content editing
At the moment we are looking at Sitefinity and N2CMS.
I really like the N2CMS approach (Integrate CMS engine in application) but is it mature enough for "real" usage scenarios? Is there another alternative to N2CMS?

Yes, N2 is mature. Company I work for is using it for more than three years now for various projects, and it is still our platform of choice. Best thing about it is that it is not CM System in a classic manner but rather CM Framework with several layers, meaning you have many things implemented, but they are not part of the core. As a result, you can change almost anything that is not usually changeable in other CMSes.
Also, whole architecture is organized in such a way that you can easily override almost any system behavior with your own implementation. Example? Imagine you reached 100s of news entries under News folder in site tree, and you decide to completely hide them from site tree, instead implementing plugin for manipulating them. Solution? Attribute-decorated class with 10 lines of code for hiding items in a tree based on your custom rule expressed in C# code.
I think N2 is pretty polished product and that you can go for it without too much worries.

We too are using N2. We've used it for a campaign site and now we are building our companies corporate website and the 20-or-so country specific subsidiary sites.
It is very fast to develop on (if you are a .net programmer it is a treat, an html-guy might find it difficult). Extremely flexible and extensible. And so far it seems to be very mature and stable. It has less features in terms of workflow-management than e.g. sitecore, but then again most customers put a lot of emphasis on those things, when they evaluate options, but end up not using them. So I don't think that is a problem.
The problem we are having is that it doesn't properly support preview, so website editors cannot preview their changes before publishing them. It is supposed to be done at some point, but there is no word on when.

Full disclosure, I work for Telerik and I'm the Sitefinity Evangelist.
Full integration in Visual Studio 2010 and our existing Application (so no Umbraco)
This is a difficult item to claim with a blanket statement.
I don't know much about your existing application. Our customers have accomplished a lot of Sitefinity integrations with various applications. This could be done through web services, custom controls or simply accounting for external URL's in Sitefinity's sitemap. Feel free to post to our Sitefinity forums for recommendations for your specific scenario.
Regarding Visual Studio integration, Sitefinity includes Telerik RadControls and OpenAccess ORM. We also try to align ourselves closely with traditional ASP.NET technologies.
Common ASP.NET Web Forms Developing practices
Sitefinity Templates = ASP.NET Master Pages
Editable CMS regions = ContentPlaceHolders
Sitefinity Widgets = ASP.NET Controls
Sitefinity Themes = ASP.NET Themes
We make the marketing claim "if you know ASP.NET, then you know Sitefinity". However, realistically all products comes with some learning curve. As much as possible we try to align ourselves with the experience ASP.NET developers already have.
Security (FormsAuthentication, custom Membership-/RoleProvider)
Sitefinity's authentication is based on traditional ASP.NET Membership & Role providers. We've included a couple (Sitefinity & Active Directory) but you can extend with your own.
Very flexible and extendable (good API)
Our API is LINQ enabled and we also have a Fluent API. We also have a full RESTful web service API.
Lightweight CMS with good performance (thousands of simultaneous requests)
Our own Telerik web sites run on Sitefinity, and many of our customers support web sites that handle a large volume of traffic.
However, I'm not sure what constitutes "lightweight". Many CMS's have little overhead, but also do very little. We've tried to deliver a lot of features and end-user friendliness with Sitefinity. This comes at the cost of some overhead.
Managing the balance between a CMS that "helps you" and "gets out of your way" is a constant challenge. The best I can promise is that we're aware of the challenge and we're doing our best to deliver effective results.
Easy content editing
Judge for yourself. Even better, download the product and let your content editors experiment. We welcome the comparison. Over & over again, this becomes our differentiator.
--
Hopefully this post doesn't sound like a lot of evangelist BS. I've tried to be accurate with my answers. Best of luck with your project.

Related

How to use DreamWeaver with a dynamic site or CMS

A client I'm working with has a large CMS installed (Kentico) that they use for various sites. For their intranet they want to downsize to a simpler web system.
The site involves authentication (Active Directory), groups, and potentially some server-side code.
The client's on-staff web designer, who's in charge, really wants to be able to use DreamWeaver to manage/design the intranet. This is almost non-negotiable, and could be considered a requirement.
I'm not really sure what DreamWeaver allows. Being ignorant to DreamWeaver, I always saw it as a web-designer platform for static websites, or in use with php.
How feasible is it to use DreamWeaver to manage an intranet site that requires authentication, groups, etc., along with server-side code? Also, are there any CMS's that easily integrate DreamWeaver? Anything in .NET?
Dreamweaver is mostly a front-end tool that was made for coding HTML, CSS, and JavaScript and being able to preview the design as you wrote your code. As an Adobe product, the real emphasis there is on design: it's made to make visualizing the front-end of a website easy. It's a good starting point for a lot graphic designers to step into web development (it's where I started a few years ago), but you'll rarely find a veteran web designer that still uses it. You'll certainly not find any .NET devs using it who know better.
Now, there's nothing wrong if that's this person's favorite tool. However, Dreamweaver is NOT the right tool for working with .NET applications like Kentico. This would be akin to someone wanting to build a house using nothing but bricks and mortar. Sure, you'll be able make the outside look nice, but there's a lot more to a house than just the siding.
If your client has their heart set on Kentico, then they should look into working with Visual Studio. The community edition is free to use, even for commercial applications. I believe the difference between community and pro editions is that pro editions allow you install plugins and extensions and integrate with other tools whereas community edition is just the vanilla IDE.
Dreamweaver can still be used as their HTML, CSS and JS editor. It may have added support for other languages, but that's irrelevant when we're talking about .NET applications. Visual Studio is Microsoft's IDE built specifically for working with .NET apps, and there's really nothing better (especially if you have a pro license and install Resharper from JetBrains). Many other devs will agree with me on this point.
EDIT: I forgot to address the other part of your question about Dreamweaver and other CMSs.
This series of video tutorials about working with Dreamweaver and WordPress should give you a good idea of what Dreamweaver is capable of. Notice when the narrator is actually using Dreamweaver and what he's using it for.
Jerreck's comments are great, and I'll just add a slightly different spin on them:
NET and Visual Studio live in the realm of developers. We use both for our core, cloud-based application, which is deployed in Microsoft Azure. Think: LEFT brain. I've worked with development teams for a long time. It is a rare developer who is also a strong designer. That's not a complaint; just an observation.
Dreamweaver lives in the realm of the web designer, who needs to manipulate HTML and CSS to achieve the effect they wish. Many of these designers ALSO start their designs in PhotoShop before moving them over to HTML and CSS. Think: RIGHT brain. I've worked with designers of all stripes for a long time as well. It is a rare designer who is also a strong developer. That's not a complaint; just another observation.
The ideal workflow starts with the designer (like the one at your client who needs to use Dreamweaver), who then passes his or her work (along with the HTML and CSS) to the developer, who in our case implements it in .NET -- so this is where Jerreck's comments miss the mark a bit.
While I know nothing of the designer at your client, I can tell you based on my experience very FEW designers ever make the leap to Visual Studio, nor should they. Most will know HTML reasonably well. Some will know CSS -- though too many of them still depend on outdated tables to create their designs. A few can code with JavaScript or PHP -- though many will cut and paste code that will work for them without actually understanding HOW it works.
Now add to this content management. This isn't really for the designer OR the developer; it's for the people who have to maintain the site (who might otherwise design like welders and write code like plumbers; because that is sometimes what they actually do).
The best content management systems are WYSIWYG, and allow the author or editor to easily add or edit content. Most CMS users do not user Dreamweaver OR Visual Studio, and many of them use free (or purchased) templates for their pages (or have a designer and developer build templates).
If your client needs CMS and it must be in .NET, you might check out DNN (formerly known as DotNetNuke). Most CMS also offer a wide range of plugins that can enhance function (such as assuring responsive design, tying in to a shopping cart or providing authentication for users).
I'd say your work ahead is going to be spending some serious time defining requirements.

DotNetNuke, Umbraco or Orchard [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
First off please have patience for this long winded post. I wanted to get all the pertinent information (as I see it) out to you.
I have a decision to make and would like your input. I have recently taken on the task of taking over my daughter's skating club's website. They have a custom site written in asp pages and don't have anyone to support it. I want to move their site to a CMS system so it doesn't take a developer to maintain or make changes to it. We also want to add some custom pieces to it like a registration form for the club and some other custom pieces around marking down scores and viewing stats and such.
I am a .Net developer and have been developing in SharePoint for some time, but don't feel that SharePoint is a very good fit for them. Our current web host is GoDaddy. I don't yet have the details of the contract with them yet so can't comment on the service we have with them.
I have been looking at three CMS's at the moment. DotNetNuke, Umbraco, and Orchard. All are good and all have pros and cons as far as I can see. I am currently leaning towards DotNetNuke for the following reasons:
Umbraco appears to be a "create from scratch" system with no templates to apply (I apologize if this is incorrect, but it is based on the information I received). I am not a guy to develop the visual aspects of a site, so would rely heavily on templates and such.
Orchard sounds like it might be a good fit, however I have never developed in MVC before. Most of my .NET has been straight ASPX. I am not opposed to learning MVC and have had it on my list for a while, but I don't know if I have the time to learn and port over the current site.
Orchard also appears to be a bit heavy for a normal user (explaining content types and such). I want something others can take up when I pass on the responsibility.
So I am wondering what you all think. Even with learning MVC would Orchard be the best platform for us based on the information I have provided? Should I stay with DotNetNuke as my choice? I would like to mention that I did consider Sitefinity and would have had it at the top of my list, except we are a non-profit and don't necassarily have the budget for a paid CMS.
Thanks again and I look forward to your thoughts.
Well, the ultimate choice will vary on your business need. They all do the same thing, but how they achieve the goal is quite different.
Umbraco - It utilizes the Model, View, Controller (MVC) methodology. This obviously presents an assortment of benefits. However, the methodology to build a product can be quite extensive and even the layout to modify data can be quite cumbersome.
DotNetNuke - Uses a more familiar technology, Web-Forms. This has an assortment of benefits that go a long with it. Including a market, documentation, permission, and ease.
I've never used Orchard so I can't comment- but I can comment on the other two. To show you how I came to my conclusion to use which Content Management System hopefully it will point you in the best direction.
My project that I worked on required a lot of non-technical people to utilize our new product. It has a lot of functionality and features that were required; the biggest however was ensuring the following:
Ease
Intuitive
Control
Speed
Those were our four primary categories. I'll attempt to outline what each area means-
One of the largest pitfall of a Content Management System is that they tend to do more then you require. So the question becomes which product will bend while maintaining my core goals be. For that reason our company chose DotNetNuke because by nature DotNetNuke isn't a Content Management System it is a very powerful Framework.
What this particular product does is focus on a lot of key aspects so a developer doesn't have to waste a lot of time in maintaining but rather in developing.
Ease - A non-technical user is able to view a page; then edit the content in place on that page. Which allows you to incorporate a What you see, is what you get mentality. For the non-developer they get the all familiar Email or Word Editor.
Intuitive - In DotNetNuke 7 they've modified the menu structure for editing. You can actually disable other users to make it actually show less, do less, and still maintain the highest level of control. The user won't get lost in editing the page.
Control - Now this is what is nice, you can regulate each and every control for your user. So you can allow certain content to be regulated and other data not to be.
Speed - It has a market, so you can implement other developer modules. But it also includes a lot of documentation- it may appear cumbersome at first but is quite easy to pick up. Which makes the initial start time relatively painless.
But what do all of those mean to you?
Simple, it means you can develop a beautiful elegant page quite quickly. But since you can restrict several tiers of access you can ensure the page content can be edited by someone other then you- But it won't jeopardize any of your development / content. As you control whom and what is modified.
If your familiar with Microsoft .Net then it will be quite easy to learn; I'm sure other products can accomplish those same goals. But DotNetNuke did it easier which met our goals. It allowed us to not worry about excessive issues or support to enter our company; as the user understood it in such a way that issues don't arise.
That is why we chose DotNetNuke it will boil down to your preference. My experience with the product, community, and marketplace have made me love this product and not chose another. As I can leverage the Core API when needed; so Development, Maintenance, Administration became a breeze for whatever my imagination may produce. But should a developer ever not be present the site and it's quality will not hinder when I leave.
There is a selection of starter kits available in the package repository on the community website and also a few of them can be applied directly during installation of Umbraco. Also in the package repository you will find a wide selection of other packages which you can use on your site to enhance and add additional functionality.
It is true that Umbraco does not come pre-installed with "themes" as such like some other CMS's but this is the beauty of Umbraco, you have a clean slate to work from if you choose. It enforces no requirements on your markup or styling so there is absolutely nothing to stop you using a free or purchased template from any one of the template libraries online such as Creative Market, Template Monster etc etc.
Umbraco has an incredibly friendly, helpful and active community on both the forums and Twitter.
I work with all three and would tell you to use DotNetNuke over the other 2. The primary reason is that if you are developer, Orchard and Umbraco are fine... but you may or may not be the final or future content manager in the future of the club and want to be able to hand the site off to someone. DotNetNuke has the larger community and would be easier for the future admins to learn as well as get support for.
DNN will give you the development options you want, but give the content editors the easier system to work work... and keep you from having to support the site if you ever move on.
don't forget that Sitefinity does have a free community edition: http://www.sitefinity.com/try-now/free-asp-net-cms
it does have limitations, but for simple sites like this it might be just what you need, plus if they ever get a budget someday they could upgrade to the Small Business Edition by just buying a license and get more features and less limitations on the content and page limits.
worth a look.
otherwise, in my opinion your choice depends on who is going to be maintaining the site. If that is you and you'll always be in charge, pick whatever platform works best for you as a developer.
If on the other hand you have to make it drop-dead easy, pick the platform that is best for end users, that based on your knowledge of the user, would require the least amount of training (Sitefinity CE has my vote on that one!)
I hope this is helpful!
I would highly recommend going with DotNetNuke for the sheer reason that the community and available modules for the platform far surpasses any of the other options.
If you want to do MVC style development, you can with DNN using the WebAPI approach for services, but if you don't want to, you can skip that altogether.
The amount of Free and Paid extensions for DNN grows on a daily basis, available in the Store or Forge. You can also search both of these locations right from within the product itself.

Choosing a CMS: EPiServer vs Orchard vs SiteCore vs Umbraco

Increasingly, I have noticed the number of Content Management Systems in use. I have some familiarity with SiteCore. I have read some literature on Umbraco. I only just got wind of Orchard the other day. I have only heard positive feedback about EPiServer. I am soon to move into a role that uses it.
Do these differ vastly in features and price? What has led you to choose one (or several) over the others?
EDIT
I did a brief review of so-called free CMSs here: On Free Microsoft Compatible Content Management Systems
Reasons I ditched Orchard when developing a 50k page website:
The Orchard CMS import tool is simply too slow. It would only accept
small batches at a time. Initially, it took eight minutes to import
1000 records. So, working on that principle I expected that it could
take seven hours to import all the records. Unfortunately, I started
to receive performance issues as more records were inserted into the
database. I even started to reduce the batch size, which helped only
temporarily in the early stages. (See Saying no to Orchard)
I can only comment mainly on Sitecore and a bit on Umbraco from my knowledge of others using it:
Sitecore is an enterprise level web CMS with an "enterprise price tag." It's very extensible, has a lot of developer/community support, and is very developer friendly. The structure of content is based on a tree of nodes with parent-children relationships. Sitecore is well known in the WCM community as a leader in content management and is rated very well by companies sch as Forrester Research, etc.
Based on my previous research and conversations with friends, Umbraco is very similar to Sitecore. It has a lower price compared to Sitecore but its not a complete rip off. Umbraco is also built on ASP.NET like Sitecore.
Here's a three-part series on Sitecore vs. Umbraco from a developer.
Of the ones you mention above, I have only used Umbraco and Sitecore to build with and am certified in both. I like the way they allow me to build systems that really work well for my customers. They both have a feel that they simply give you building blocks to create your masterpiece instead of "modules" of functionality plugged in that give you a blog, forum, etc. They make it really easy to share content throughout the site and create really nice admin experiences.
Umbraco's community is really great. They both struggle a little on the documentation side IMO, but Umbraco's videos really help and the community is quick to help. Also, if you're talking cost then its free (Umbraco) vs. quite expensive (Sitecore).
But the reality is that each developer has their own taste and the style of CMS they like to work with. Ultimately, its the team that has to build the site that really matters most when it comes to how each CMS performs for the end user.
In addition to the links above, here are a couple blog posts that may help you get a feel for the different systems:
Orchard & Umbraco - Introduction (part 1 of 4) - Aaron Powell
Sitecore vs. Umbraco Terminology
Good luck!
I mostly work with EPiServer and Sitecore, and I can tell you the difference in short:
Sitecore has broader architecture and more powerfull UI. CMS is deeply configurable and highly extensible, it has clever publishing and caching system, powerful search and page editor. But it doesn't provide much out of box and UI is pretty old, slow and hard to learn. So this will be a long journey until you understand it good and make a good support of all its features for editors.
EPiServer is easy, friendly to users and developers. It provides an essential bunch of features out of box, has easy UI and page editor, good drag-and-drop experience, easy personalization. It is code-first, distributed with NuGet, provides dependency injection for its services, out of box MVC support. But it's not so extensible and configurable, has pure search (without expensive EPiFind module) and generally lower-featured comparing to Sitecore. So it's good for small/middle websites, but can be an obstacle in complex solutions.
Both have similar tree-item concept, rich documentation, pure public module system and hard UI customization. Both expensive and not open source.
As I know, Umbraco is pretty similar to EPiServer and Sitecore, but free and open source. Of course you get less features, more bugs, not much docs and no free support.
Orchard is really different comparing to other three CMS. It is module-based like Wordpress: you use standard or public modules and themes, instead of writing the whole website from scratch. You create your own themes and modules to customize the website and CMS. So entire CMS is highly extensible and provides a lot of free community modules. But in the same time you lose control and learning curve is much longer. Orchard is free and open-source, entirely MVC-based, UI and API are well done, but it can be hard for both developers and editors to understand it.
Wordpress vs Episerver:
http://tedgustaf.com/blog/2011/2/comparison-of-episerver-and-wordpress/
OK so the guy who wrote that is an Episerver consultant but it's interesting and balanced.
All the different web content management systems have different strengths. So which one is best for you depends a lot on what kind of sites you create, what kind of budget you have and what you think matters the most in a CMS.
For example, Orchard and SiteCore are VERY different systems.
I'm a bit biased as I work there, but I believe that Webnodes CMS have several important advantages over the systems you mention.
Keywords: Relations between content, actual classes for the different content types, custom LINQ provider for all data access, expose all content as an OData endpoint etc.
Microsoft used our CMS to demonstrate OData at Mix11. Video from Mix 11

CMS: Build or Buy? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
This question is a little subjective, however, it aims to give me a bit of information about whether it is better to build or buy.
My company is looking to enter the world of CMSs for our clients websites, do we provide an open source one, or do we build our own model from scratch?
If you buy, which do you use?
If you build, how does your architecture differ?
EDIT: The CMS we are looking to use isn't to maintain our own website, it is something we can offer our clients and pinned onto websites we are custom building for them, it needs to be something that we adapt and manipulate easily for many different website designs and purposes.
How about using opensource one? :-)
Today the only reasons to develop new CMS are:
1) non-usual requirements (deadly rare)
2) You just like to code "your own CMS" (c)
If none is the case, take opensource one.
Personally, I have my own CMS for all my private & commercial purposes, but this was mostly just for programming fun. If you need to deliver, you have to use existing products.
The company I work for wrestled with this same question recently. This depends a lot on your client's expertise and needs. It's generally not advisable to build your own CMS unless you're using it to offer something very novel.
Drupal has lots of plugins available giving a great deal of customizability. It's handy in the same way that most CMSs are in that you can use PHP files as your templates and code them outside of the CMS.
Wordpress has the best user interface of all the CMS's I've used (Drupal, EE, Wordpress, Joomla). If you need to program plugins it's also very well documented and (when the plugin is finished) provides a drag-and-drop interface for the client to make changes to their own web site easily.
I'm currently in the process of moving our site from EE to WP.
Well I can build a simple CMS in less than a day (and everybody can do that with any good web framework). So it depends on how complex it is and how much the open source solutions can do what you want your CMS to do. I generally avoid to use open source CMS because it is usually an overkill compared with my usual client's needs but that's me. Most open source CMS (drupal, joomla, wordpress) have many features that most people simply don't care and they clutter their user interface, so I prefer to build my own as far as it is simple instead of using an open source and struggling to add a new feature and make it scalable.
First, to address your build or "buy" questions - you would be crazy to build. The resourced needed to support code you write as it changes to meet each clients needs will end up costing you a fortune in the long run. It's hard to beat the resources of thousands of developers that many of the big projects have. Does your firm have a security specialist? How about a QA team that constantly searches for ans squashes bugs? Unless you are trying to do a one off, highly specialized application, pick a CMS and go with it.
Next, as far as being able to implement the CMS across many types of sites, that is entirely dependent on your firms developers. If your developer knows XYZ CMS, then he should be able to take any design and make it work for the CMS. Any good CMS has the design layer completely separated from the content and code so the design should not be limited by the CMS in any way. It's just a matter of learning the particular templating system employed by the CMS of your choice.
Last, I am surprised that no one has mentioned the solution to your wanting to limit the amount of control your clients have over their sites. As mentioned you can go the SaaS route and never give the client access to the administrative back end of the site. Any of the good CMS projects offer front end editing. This will allow your client to add/remove/edit the content on the site without giving them access to anything structure or design related. You can completely control the admin, layout, and functionality while the client simply controls the content only, which seems like what you are trying to accomplish.
This depends heavily on what you need, but many CMSs are a platform that you can build upon, getting the best of both worlds.
Wordpress has a very rich plug-in framework.
If you are ok with Windows servers, SharePoint has an extensive plug-in/extension architecture.
I don't think there's any reason to build from scratch unless you are planning to compete in the CMS market.
Do not reinvent the wheel. It takes really a lot of time and money to make a CMS.
If I were you, I would go with an open source CMS, start building custom stuff and contribute back what you can (this is how the company works where I work).
My choice is Drupal, because of the rich set of contribs, excellent flexibility/extensibility and good security.
I think it depends on how many clients are supposed to use the CMS.
We have only one client and built a proprietary CMS which we heavily customize to the client's specific needs.
It also gives us a strategic benefit since this client can hardly migrate his web sites to another company now.
If you have a couple (> 2) of clients who are supposed to use the CMS, IMHO an open source CMS would be the best choice.
Can you develop a new CMS as good as some other ones that have been around for years and hundreds of people have worked on it's development?
That's a question I always ask myself at the start of every website buliding project.
There is surely a good open source platform that meets your requierments and that you can improve.
I suggest these:
Liferay : for large organisations and advanced projects it's written in java. I personally love this CMS. Big places like NASA use it and my company used it for a project, it was great.
Plone : Same as above - language = Python
EZPublish for large organisations but not as advanced as Liferay - language = PHP
Joomla and drupal for normal websites.
As a design agency, presumably with a number of customers with live websites that constantly need to change that are taking manpower away from new projects,
My first question would be if I intend to migrate my existing customers to the CMS based version of their site
Then, What are the commonalities/differences in your customer sites?
If there is a lot of commonality (in the back end code as opposed to the front end design), then maybe integrating a basic article editor is all you need?
Look at how a CMS is going to affect your design flow, Your designs will then be CMS 'Themes', that'll be a learning curve.
I'm not trying to discourage you from Buying or Building a CMS, but the decision will be completely decided by your companies situation.
Personally I use Joomla and DotNetNuke. I'm a developer not a designer, so I buy off the shelf themes and modify them. I also had no existing clients when I started out. I decided to use a CMS specifically because I could buy themes, and secondry to that was the client modifying the articles.
I cant think of an open source CMS that doesn't provide everything that most companies would need.
you get the benefits of bug fixes, little deployment time and ease of documentation.
When selecting the CMS try to use one that is not too bulky or not too popular.
most CMS allow for easy expansion so if a client has special needs then its easy to add functionality.
A reason that you start to build you're CMS could be because the landscape of CMS systems is big (and you can't make up your mind on one system to put in all you're energy).
Do you want a simple CMS for a website, an integrations framework or personalization / social media.
As there are a lot of OS CMS out there, I wouldn't recommend you to start from scratch. Check for research EG:
http://www.slideshare.net/OpenSourceCMS/451-group-future-of-web-content-management-open-source-cms
Also check the OS license of products and how this could affect your projects.
Good luck!
Lots of good responses already, but I don't see anyone talking about the real users, the customer who is paying for this site.
One reason a CMS product is often better is that it can give you a lot of help material, usability refinements and add-ons that you won't get when you build it yourself. More importantly for the end-users, it can mean they extend and add to the site without needing to get IT to give them permission (and the run-around on budget/resources) to do so.
Another issue is that if you build it yourself, then that is the only copy of that software that is being security tested and probed. A product will have been through more penetration tests and probing.
On the other hand there are a wealth of CMS' out there and it can be confusing if you do not know what you want. The CMS Matrix is a good site for comparing all sorts of CMS' to find one that suits your needs.
I work for a CMS vendor, Elcom Technology, so I am slightly biased - but I have also used WordPress, SharePoint, DotNetNuke, Joomla and Drupal to various levels of degree and they all offer a big step up over something home-built.
A very important reason why you may want to choose something that is already made (FOSS or commercial) is that someone else may be able to support it.
PS
I've used CMSMS on various projects. It has enough user control to let them edit, but not mess with the layout and stuff.

How difficult is it to build a website in Sitecore CMS

I have got one project where I need to build a site in Sitecore CMS.
I have never used that CMS.
I want to know that if my programming skills are good because I don't know ASP or ASP.net but do know PHP.
The sites are simple html pages with no logins and processing.
Can I do it few weeks?
I was a PHP person when my company switched to Sitecore, although we had an ASP.net developer.
99% of what is done in Sitecore is achieved without any .net programming requirement. A website consists of data templates, which are defined in the Sitecore desktop environment (much like Windows, but in a browser). Data templates define the fields that each type of page has, the workflow it is in and other content-centric things. Renders are then attached to the template - these are xslt files which take the data provided by the data template and format it into (x)html.
I'd recommend getting enrolled on the Sitecore Developer Training - this is a one day course which will get you fully set up and ready to start building.
http://www.sitecore.net/en/Training.aspx
Sitecore v6 is easier to build with than v5. There's also SDN (sdn.sitecore.net) which has a large amount of documentation and examples.
Also, as Sitecore is only available through Sitecore Partners, you should have access to a knowledgeable Sitecore Professional.
Seems like it's real easy.
http://www.sitecore.net/en/Products/Sitecore-CMS.aspx
Sitecore Makes it Effortless to Create Content and Experience Rich Websites
Sitecore helps you achieve your business goals such as increasing sales and search engine visibility, while being straightforward to integrate and administer. Sitecore lets you deliver sites that are highly scalable, robust and secure, and is built to simplify your life, automate your processes, and let you deliver results faster.
Seriously, this question can't be answered as is. Sitecore CMS can be used by business users with no dev experience and it can be used by developers to do more complicated things. How complicated it is to use Sitecore depends entirely on what exactly you're trying to do. It might be easy, it might be complicated, but without more details it's impossible to know.