Multi-tenancy support: Umbraco vs Orchard Project - asp.net

I am currently using an older version of Umbraco (4.03) and I have several basic sites (mostly 1 pagers) running under the same IIS Application.
I have a shared hosting account with Winhost.com, which doesn't offer multiple site application roots, just domain pointers, so I'm limited to a single CMS installation that supports multi-tenancy.
The Umbraco multi-tenancy setup is a bit hacky and I really need to upgrade. It seems that Orchard is more focused on multi-tenancy support. My Umbraco installation has some issues with shared skins, which has always been a little annoying.
So, the basic question:
Just based on the multi-tenancy scenario, has anyone had experience of both Umbraco and Orchard that can give me an opinion / comparison? If so, is the new version of Umbraco any better than the version i am using with regards to its multi-site support?
P.S. I'm aware there are a few questions on SO already concerning comparisons between the two CMS projects but I am specifically interested in a multi-tenancy comparison.

Let me start by saying that Orchard is a brilliant CMS, from what I've seen of it so far I prefer it to Umbraco.
But one word of warning, I had problems running a very small Orchard site on cheap shared hosting (in fact I was also using winhost) because of app pool memory limits. Orchard is quite memory hungry and in my case would jump to around 100mb of memory within a few page views. Most shared hosting packages limit the app pool to 100mb so in my case it was recycling the app pool on every other page view. See this thread as an example. I ended up using Umbraco instead.
Sorry, I know this is a bit off topic and doesn't answer the multi-tenancy question. But test for this early on in development.

The latest version of Umbraco has essentially the same multi-tenancy setup as it had in 4.03. You can assign a domain to any content item directly under the "Content" folder in the Content section of the admin.
I have done a few multi-site setups with Umbraco and I can understand how the skinning piece gets interesting fast. We have used a CSS based solution to the skinning issue (select CSS files at the root). That seemed better than a whole different set of Templates for each site.
Any thoughts on how you would like it to work? Could be a good package in there somewhere.
Sorry, I can't answer the Orchard piece as I haven't used it and only have cursory knowledge of it.

Related

Architecture for Web-App development aimed at aiding interoperability between CMS systems. Has it been done?

I'm thinking about attempting to design a new framework architecture aimed at allowing a web app to later be easily ported into a system such as Drupal or Joomla while maintaining the independence of the original app such that updates to core functionality would require only one release or otherwise minimal extra work.
Before I start on this however, I would like to see what work has previously been done that comes closest to what I am proposing. So an answer to this question would come in the form of a reference to the most similar work or if possible a definitive 'no' that this has not been done before.
Clarification by example: MediaWiki is a common web app that has become one of the most highly recommended of its kind. However, site admins building their sites with Drupal would be required to hack MediaWiki in order for it to play nicely with Drupal in terms of sharing a user base for example. Imagine that MediaWiki has decided to do a complete rebuild of their system, what design could be used to make this interaction simply require a Drupal module or Joomla component and thus make MediaWiki available to more users?
I'm using MediaWiki as just an example, I think modules and components already exist that solve this particular problem but I hope I am able to get my idea across. It is a problem I have encountered many times during web development now that CMS systems are appearing more and more enterprise-like.
Thanks!
godwin
Content Management Interoperability Services (CMIS) is an OASIS Specification that you can use to imrprove the data portability and interoperability of a CMS. If your system has (or your provide) a CMIS interface, you can move content to / from other CMS systems that also provide CMIS interfaces.
See:
http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services
http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cmis

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?
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).
Writing a CMS is like invading Afghanistan.
Everybody gets a turn but nobody wins.
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.
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.
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...
Resource Heavy, eats 50+ Gig's to install
Eats 16 GB of ram just to boot it up (Sharepoint 2013)
Requires Sql Server 2008 R2 or equivalent (enterprise license, $$ chaching)
Requires Windows Server ($$chaching)
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...)
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!
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.

Best CMS to use on Windows Azure [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I've just started a new software consultancy business and I'm currently putting together designs for my website. We will be at a stage very soon to start converting these into a template for a CMS.
I have used http://n2cms.com before, but my designer has built many sites using WordPress, we recently built a site which worked very well and I was very impressed by the WordPress admin.
So I might be a bit risque and build my site in WordPress, host on Azure, even though my consultancy specialises in Azure & Silverlight :)
What's your thoughts? Can you suggest any other great .NET CMS's that would sway me away from WordPress?
Any suggestions much appreciated.
Cheers,
Ash.
P.S. Anything that uses Table Storage would be cool, and would be much cheaper!
I agree with Gabe that true Azure support from a CMS means leveraging the cloud's native queue, table and blob storage. I'll also add that a good Azure CMS should work out of the box when deployed on numerous machines sitting behind a load balancer (basically a must if you care about Azure's SLA).
I myself did a research similar to yours a couple of months ago and ended up using N2CMS in an ASP.NET MVC application. AFAIK, there is still no CMS to comply with the above definition of good Azure support, so I would recommend going with N2 if you use ASP.NET MVC. The learning curve is a bit steep, but you mentioned you've used it before so this shouldn't be an issue. However, the great architectural flexibility N2 allows and the fact it's open source were the decisive points in my case.
Regarding Wordpress, there's no arguing about the qualities of this CMS. Anyone who's used it (including myself) should be able to confirm that. However, deploying Wordpress on Azure still feels somewhat "hacky" to me. It will no doubt work, but I personally try to use native solutions and that's the reason I went with a .NET CMS on Azure and I always use Wordpress on Linux servers. I believe that's the right approach if you plan to maintain your application in the long run.
In the end, the choice you have to make is a trade-off between many factors like your in-house know-how, your preferred technologies, etc. If you need rather quick results and have Wordpress guys at the moment - go for Wordpress. If not - I recommend ASP.NET MVC with N2.
Well, at least that's my 2 cents :) Hope this helps.
Ash,
There is new free open source CMS called Composite C1. Just couple of weeks ago company released source code to CodePlex (before it's was 100% commercial). C1 provide you full control on layout (XHTML, XSLT) - your designer will love it... also it's build on .NET 4 and using C#, LINQ.. allows create quickly functionality..very flexible...and user friendly.. for example you can edit several pages at same time.. it's uses XML as data storage, so no need for database, but there is commercial module which allows easy move to SQL. Company having workshop today regarding Azure (check Community tab at the website) and looks like will take required actions in this directions (no time frame available).
DISCLAIMER: I work in Composite’s QA group, so this is not an unbiased suggestion ;p but I've moved my personal website to Composite C1 (from Umbraco) and quite happy!
The Orchard Project seems to have much potential if you want to be risque and still stick on the .NET application programming platform stack.
From the website:
"Orchard is a free, open source, community-focused project aimed at delivering applications and reusable components on the ASP.NET platform. It will create shared components for building ASP.NET applications and extensions, and specific applications that leverage these components to meet the needs of end-users, scripters, and developers.
In the near term, the Orchard project is focused on delivering a .NET-based CMS application that will allow users to rapidly create content-driven Websites, and an extensibility framework that will allow developers and customizers to provide additional functionality through modules and themes.
Truly supporting Azure means tackling the cloud storage challenge. As you mention, this means using native Azure storage (table, queue, blob) to persist data. To my knowledge, there isn't any CMS that has truly addressed Azure storage.
It's easy for a CMS to claim Azure support by using SQL Azure. This isn't true Azure support though. SQL Azure databases get capped at 50GB...which means they aren't infinitely scalable. Any solution that is using SQL Azure isn't infinitely scalable.
--
All this being said, I work for Telerik and we have an ASP.NET based CMS called Sitefinity. Version 4.0 of Sitefinity is coming soon and it runs using Azure & SQL Azure. If your database will never exceed 50GB, then this might work for you.
We've discussed creating support for native Azure storage in future versions of Sitefinity. However, I can't give an ETA.
--
Ultimately, I agree with others though; if you're happy with Wordpress, then use it.
Sitecore has a special edition that was design for Azure.
Sitecore Azure Edition
VIM4, Composite C1 is not support the IE10 for Windows8 CP. :(
This is meant to be a comment to Mark Good's answer, but since i don't have enough rep - having to post as an answer.
Sitecore does not have an edition called Azure, it is rather just Sitecore with the Azure module installed. We have talked to Sitecore before about this, and their sales engineers confirmed that was correct. It's semantics, but could be important in certain cases. Cheers!

What's a good CMS for an intranet site?

I know this question has been tossed around by many developers and designers. I just got finished with my companies intranet site using joomla 1.5 with a custom bulit template and modifying almost everything in joomla. It got me thinking if I should be using an enterprise CMS instead of an free open source CMS. I almost went with wordpress, but the company wanted joomla for there site. It was a great for me to jump into another CMS and learn, but is there a better CMS out there that meant for intranet or does it really matter at all?
Try OpenAtrium, its free.
http://www.openatrium.com
If you're planning an intranet project using a CMS, then you'll need to clarify a couple of requirements before choosing the right one. I have a blog post with some simple choices for choosing a cms for an intranet, more specifically on collaboration and community features. But other more basic requirements are:
Is there a technology stack that the organization prefers/uses? Does it need to be on-premise or cloud based? This will filter down the candidates
Is the Intranet for just posting read-only notices and information, or are community features (groups, lists, news feeds, etc)
Does the Intranet require SSO so that organization members can seamlessly interact with content based on their identity?
What sort of budget is available for the Intranet? All CMS installs have a cost, even the ones without any subscription cost.
Is document and file management an important requirement?
Are customizations needed for any specific Intranet functionality or connectivity to other systems?
Wordpress will do a simple intranet well, but will start to become more work if you start getting complex requirements around authentications, groups and social functionality. If on the LAMP stack and looking for more complex requirements, look at Drupal or Joomla. On the Windows/.NET side there have been suggestions in this answer already - the choices span from full commercial answers such as Sharepoint to those available open source and commercially licensed like Dnn.
Nowadays everything is called a CMS - tools to maintain websites, advanced portals, wiki's, and so on. The requirements for a "CMS" are drastically different for intranets and public websites, however.
Intranets usually have a high level of interaction, lot's of user generated content, different content types, and so on. More users need to be able to login to the system (basically everyone, not just the content editors) with different levels of authorization and different roles in general. Collaboration in general is much more important than with an average "public" CMS based website.
Furthermore you will usually want different types of plugins. Google analytics and SEO are much less important, you'd be more interested in some active user plugin, recent publications, integration with other internal tools (i.e. project management) and possibly exposing other datasources (databases, telephone directories, filesystems with internal documents), and so on.
In my personal experience, Plone is a good choice. It provides most of the above out of the box or through existing extensions and it has excellent integration possibilities with external systems. Cyn.in also provides a somewhat completer plone based solution.
If Plone's too much for you, you could consider some wiki-like system, such as TWiki or MediaWiki
As others have said, it will depend on your requirements.
If you are looking for something more in the enterprise space, then elcomCMS might be a good fit - it's .NET based though (not sure if that rules it out in your case), but has an API and other dev considerations.
Pretty strong as both a web CMS and an intranet.
http://www.elcomcms.com/Product/elcomCMS-Overview/Intranets
I have user long time drupal, but now I switching to WordPress it's much easier, if you don't want to create a community or something like this.

Thoughts on streamlining multiple .Net apps

We have a series of ASP.Net applications that have been written over the course of 8 years. Mostly in the first 3-4 years. They have been running quite well with little maintenance, but new functionality is being requested and we are running into IDE and platform issues. The apps were written in .Net 1.x and 2.x and run in separate spaces but are presented as a single suite of applications which use a common navigation toolbar (implemented as a user control). Every time we want to add something to a menu in the nav we have to modify it in all the apps which is a pain. Also, the various versions of Crystal reports and that we used tables to organize the visual elements and we end up with a mess, especially with all the multi-platform .Net versions running. We need to streamline the suite of apps and make it easier to add on new apps without a hassle. We also need to bring all these apps under one .Net platform and IDE.
In addition, there is a WordPress blog styled to match the style of the application suite "integrated" into the UI and a link to a MediaWiki Wiki application as well.
My current thinking is to use an open source content management system (CMS) like Joomla (PHP based unfortunately, but it works well) as the user interface framework for style templating and menu management. Joomla's article management would allow us to migrate the Wiki content into articles which could be published without interfering with the .Net apps. Then essentially use an IFrame within an "article" to "host" the .Net application, then...
Upgrade the .Net apps to VS2010, strip out all the common header/footer controls and migrate the styles to use the style sheets used in the CMS.
As I write this, I certainly realize this is a lot of work and there are optimization issues which this may cause as well as using IFrames seems a bit like cheating and I've read about issues with IFrames.
I know that we could use .Net application styling, but it seems like a lot more work (not sure really). Also, the use of a CMS to handle the blog and wiki also seems appealing, unless there is a .Net CMS out there that can handle all of these requirements.
Given this information, I am looking to know if I am totally going in the wrong direction? We tried to use open source and integrate it over time, but not this has become hard to maintain. Am I not aware of some technology out there that will meet our requirements? Did we do this right and should we just focus on getting the .Net streamlined? I understand that no matter what we do, it's going to be a lot of work. The communities considerable experience would be helpful. Thanks!!
PS - A complete rewrite is not an option.
Hmm, we're in the midst of a project to do something that sounds familiar. We're using www.sitecore.net CMS but you could use the Open Source alternative Umbraco again both of these will have a learning curve, but they're .Net apps and aren't targetted specifically at blogs. SiteCore ultimately can use normal .Net user controls if you want, though it's slightly against their model, but it works.
One thing I'll warn you of is SiteCore Must be the root of your website, it has to control the root of the domain (it has a urlrewriting module that needs to be at the root) and you can tell it to exclude certain folders where your applications might live. You can obviously put your navigation in a folder under the root of the site. Also note SiteCore's a .Net 3.5 application running under the 2.0 runtime.
Are your sub-applications.. Actual seperate applications in virtual dirs or something I'm guessing?
Depending on the nature of the .Net apps, you may find DotNetNuke to be a useful choice.
It's a CMS where you write widgets ('modules') in .Net, then add them to the pages of the CMS. In your case, you'd wrap your existing functionality in such widgets. I've done exactly this several times, and now that I'm used to it it's no big deal.
The downside is you have to learn to swim in the DNN environment, which (like any CMS) has a bit of a learning curve.
I'd have to know a lot more about your existing apps to be sure this is a plausible option. If it looks appealing, you should probably contact someone who's dealt with a situation like yours (such as myself) and go into detail. It's very easy to find yourself in a dead end with these CMS frameworks.
Edit: Like a product mentioned in a different answer, DNN has to control the top level of its subdomain -- all requests begin by going through Default.aspx and are then dispatched in various ways.

Resources