Showing posts with label web development. Show all posts
Showing posts with label web development. Show all posts

Wednesday, 6 February 2013

A Beginners Guide to Popular CMSs - Part 1: Open Source

Image representing Drupal as depicted in Crunc...
Image via CrunchBase
From the first time online publisher to the multinational corporation, a significant proportion of the websites that exist on the world wide web today, perhaps around a third, are constructed using what are broadly known as Content Management Systems or CMSs. There are a vast array of CMSs available to any potential web site owner - many free, some commercial products. The following article looks at a few of the most popular, their strengths and weaknesses and what their technical requirements are from a web hosting platform.

What is a CMS?
The abbreviation CMS is short for Content Management System and the name conveys what is at the heart of these tools - they are systems which web authors can use to manage the content of a web site or web application. Many of the forerunners of today’s CMS were created as simple off-the-shelf packages which allowed users to run their own blogs and the concepts are still inextricably linked. However, from humble beginnings most have evolved to offer much more than that, to the extent that they are now heavily used by the even the most experienced web developers as the building blocks of advanced websites, utilising extensive support communities and wide ranging plugins and modules. They can therefore provide the uninitiated with an easy route into online publishing within minutes but also provide advanced users with valuable efficiencies and reliability in contrast with coding websites from the ground up.

The three most widely deployed content management systems on the world web today all use PHP (PHP Hypertext Processor) as the server side scripting language (the code that is run on a server and determines what data is delivered when a web page is requested). The first part of this article looks at these three CMSs.

WordPress
This CMS is recognised as the most used CMS on the web with estimates that it comfortably accounts for over a half of all CMS builds - almost two thirds in some surveys. The CMS began life as a blogging platform and is still, in its basic form, orientated towards this function, however a broad array of plug-ins and themes means that it also has the potential to be used for more complex web sites. Therefore, WordPress has become massively popular with personal bloggers and corporate web developers alike.

  • Created: 2003
  • Original use: Blogging platform
  • Licence: Open Source (GPL)
  • Popularity*:
    • 59% of CMSs
    • 17% of Websites
  • Server-side script: PHP
  • Database systems: MySQL
  • Hosting OS: Various
  • Benefits/Features:
    • Easy to create basic website and/or blog
    • Large community support
    • Extensive plug-in system for additional functionality
    • Customisable themes which change functionality as well as appearance
    • In-built CSS and PHP editing
  • Concerns:
    • Basic themes can make basic sites appear similar
  • Examples:
Joomla!
Formed as an offshoot of the older CMS Mambo in 2005, Joomla has gone on to be the second most used system on the web accounting for around 1 in 10 CMS builds (1 in 40 of all sites). It is particularly popular with those looking for a (free) powerful yet simple system that requires little or no knowledge of code but that allows flexible control over the site’s look and feel.


  • Created: 2005
  • Original use: CMS
  • Licence: Open Source (GPL)
  • Popularity*:
    • 10% of CMSs
    • 3% of Websites
  • Server-side script: PHP
  • Database systems: MySQL; MSSQL; PostgreSQL
  • Hosting OS: Various
  • Benefits/Features:
    • Flexible template functionality to easily customise the look and feel site wide
    • Inbuilt SEO & tracking capabilities
    • Large extensions library to extend functionality and templating options
    • Often available as a one click installation from web hosts
    • Good usability for beginners/non-developers
  • Concerns:
    • Lacks ability to format uploaded media such as images
    • Lacks versioning to store and revert to old versions of content
  • Examples:

Drupal
Created originally as a forum platform, Drupal has become very popular due to its flexibility and is now used to build a wide array of website applications. The ‘out of the box’ Drupal build is known as the core and allows the user to add content to build a simple website, blog or forum, but the site is supported by an extensive community and it is the add-on modules that they create which gives Drupal its potential. Drupal is therefore commonly referred to as a content management framework due to its reliance on add-ons for functionality.

  • Created: 2001
  • Original use: Message Board
  • Licence: Open Source (GPL)
  • Popularity*:
    • 8% of CMSs
    • 2% of Websites
  • Server-side script: PHP
  • Database systems: Various
  • Hosting OS: Various
  • Benefits/Features:
    • Modular design for adding and managing additional functionality
    • Extensive number of modules available to enhance functionality
    • Taxonomy system for organising and display related content
    • Large community for support and module development
  • Concerns:
    • Can be demanding on hosting platforms due to Queries
    • The administration pages in older versions aren’t user friendly
    • The core installation is light on functionality (see benefits)
  • Examples:
    • http://www.whitehouse.gov/
    • http://www.economist.com/

If you are interested in getting a site built in one of the CMSs mentioned above then you can visit Digital Design London or for those looking for a hosting platform for their new site, visit VDC Hosting.
Enhanced by Zemanta

A Beginners Guide to Popular CMSs - Part 2: .NET & Commercial

Having provided an overview of the three most common PHP based CMSs in the preceding installment, the following begins with two of the most prevalent systems to be based on the .NET framework for their server-side scripting, and concludes with a further two commercial systems which are also amongst the web’s most popular.

Although most CMSs are based upon the open source PHP server-side scripting language, as mentioned in the first part of the article, there are still a significant number that utilise coding and languages based within the .NET framework, as developed by Microsoft...

DotNetNuke
This is the most widely used of the .NET based systems on the internet today as well as being one of the most stable and developed because of its relatively long history. It is maintained by the DotNetNuke corporation as an open source project and is currently available under free open source licences and enhanced commercial licences. The CMS itself utilises modules to extend functionality and skins to manage theming/templating for the look and feel of a site.
  • Created: 2003 (2002 as IBuySpy)
  • Original use: CMS
  • Licence: Open Source (MIT) / Commercial Proprietary
  • Popularity*:
    • 2% of CMSs
    • <1% of Websites
  • Server-side script: ASP.NET
  • Database systems: SQL Server
  • Hosting OS: Microsoft
  • Benefits/Features:
    • Versions available to suit beginners and advanced developers
    • Modules for extending functionality
    • Allows multi-site management from one installation
    • Community support available
    • Commercial support available (see below)
  • Concerns:
    • Cost of commercial versions and modules
  • Examples:
Umbraco
The second of the featured .NET CMSs is Umbraco. This system is perhaps more targeted at web developers as it requires some knowledge of coding to get up and running, but for those who use it, it can provide high levels of flexibility in realising web designs because it utilises only standard frameworks, languages and protocols rather than introducing any limitations. As with the DotNetNuke, it is available in both a streamlined free open source licence and enhanced commercial versions.
  • Created: 2004
  • Original use: CMS
  • Licence: Open Source (MIT) / Commercial Proprietary
  • Popularity*:
    • <1% of CMSs
    • <1% of Websites
  • Server-side script: ASP.NET
  • Database systems: SQL Server; MySQL
  • Hosting OS: Microsoft
  • Benefits/Features:
    • Provides a .NET framework for developers
    • Uses standard templating formats and protocols
    • Flexibility for site development and customisation (see above)
    • Commercial support available
  • Concerns:
    • Limited out-of-the-box for beginners/non-developers
    • Limited user management capabilities
    • Cost of commercial product
  • Examples:


The most deployed CMS, including the three for the article’s first installment, tend to be based upon open source frameworks and therefore free - a fundamental factor behind their popularity - whilst others offer enhanced commercial versions open source packages (see above). However, there are a good number of commercial CMS products available to consumers and some of these are amongst the most used on the web, despite their costs.

vBulletin
One of the longest lived of content management systems still in use on the web, vBulletin is in truth most suited to delivering message boards and forums, and is the most popular system for doing so, however it also brings an extensive array of functions into play and can easily be used for wider web development. Indeed it is particularly suited to building websites and blogs with good message board integration.
  • Created: 2000
  • Original Use: Message Board
  • Licence: Commercial Proprietary
  • Popularity*:
    • 3% of CMSs
    • 1% of Websites
  • Server-side script: PHP
  • Database systems: MySQL
  • Hosting OS: Various
  • Benefits/Features:
    • Specifically designed for forums and discussion boards
    • Provides blogging and CMS functions in addition
    • Rich with forum features and blog integration
  • Concerns:
    • Cost of licence
    • Requires PHP editing during install
    • Number of functions can be overwhelming
  • Examples:
ExpressionEngine
This powerful CMS was developed by EllisLab back in 2004 taking inspiration from an earlier attempt at a blogging platform and delivers a wealth of well developed functionality as well as flexibility owing to years of commercial development combined with underlying open source frameworks.
  • Created: 2004
  • Original use: Blogging Platform/CMS
  • Licence: Commercial Proprietary
  • Popularity*:
    • 1% of CMSs
    • <1% of Websites
  • Server-side script: PHP
  • Database systems: MySQL
  • Hosting OS: Various
  • Benefits/Features:
    • Commercially developed and supported
    • Open source framework allows custom development
    • Good and easy user management and administration capabilities
    • Rich in functionality both out of the box and with add-ons
    • Allows multi-site management from one installation
  • Concerns:
    • Expense/cost of licences and add-ons
  • Examples:
If you are interested in getting a site built in one of the CMSs mentioned above then you can visit Website Design London or for those looking for a hosting platform for their new site, click here.
Enhanced by Zemanta

Thursday, 27 September 2012

A Beginner’s Guide to Different Website Technologies and Their Hosting Requirements

Part 1: Mark Up and Code

When you begin to size up the multitude of web hosting options that are available to you in the market it is important to bear in mind what specifications your website will demand from your hosting platform. This is particularly salient if the web site is yet to be built and you are considering how to do so. The following article takes a beginners look at the technology that goes into building a website and then how that technology will affect the requirements of your hosting platform.

HTML and CSS - Page Display
In its simplest sense a web page is essentially a document which can be viewed over the internet. It lives on a web server, a computer whose job it is to show the page to the rest of the world. The structure and layout of the content in that document or web page is specified using what is known as mark-up and more specifically HTML (HyperText Markup Language). This is the most fundamental building block of a website and basically labels and classifies every element, or block of content, on the page and therefore the order in which they should appear.

The appearance of each element can be specified on each individual page within the HTML but is instead usually set using another type of mark-up on one or more separate Cascading Style Sheets (CSS, documents often referred to as just Style Sheets). Because these sheets sit apart from the actual HTML document they can tell how elements or groups of elements should appear across multiple web pages rather than just one.

There are different versions and standards of both HTML and CSS markup but the technologies do not affect the type of hosting platform (web server etc) that the website needs as they are simply interpreted by the internet browser software on each user’s machine to display the web page.

Content, Databases and Server-Side Scripting
The content that actually sits within each HTML element can be stored within the web page document itself if it is text, or alongside the web page document file, on the web server, if it is another type of file such as an image, a video or a PDF that the page links to or displays.

If the web page needs to be dynamic however, that is to display different content to a user each time it is displayed depending on the user’s particular requests or input, the content will be stored in a database on the web server which then allows the relevant content to be used to construct the web page on the server every time it is requested, before being displayed to the end user. Most websites also therefore use a language which tells the web page what content from the database to display depending on what the end user has requested - this is called a server side scripting language. As an example, this language could be used to display content on the same page which is different because it is a Tuesday compared to the version of the page which is displayed on a Monday.

Web pages can also include code (within the page) which allows them to change in accordance with user inputs after the page has been displayed to the user. This is called client side scripting but it does not affect the hosting requirements as the code runs on the user’s computers within their browser and not on the server. The most common example of this code is JavaScript.

However, the management software which is used to organise the database system, as well as the server side scripting language which is used to control which content is shown, can both place restrictions on which operating system needs to be used within your hosting platform. The choice of operating system will broadly be between Windows and Linux (open source).

Amongst the most common database management systems for example are MySQL, PostgreSQL and Microsoft SQL Server; the first two of which are open source and supported across both platforms. However, SQL Server is a proprietary Microsoft system which requires a Microsoft Windows operating system. The most popular languages used as server-side scripting language are PHP (PHP: Hypertext Preprocessor), Perl (a more general programming language) and Microsoft's ASP.NET (part of their .NET framework). Languages such as PHP or Perl are again supported by an open source community themselves and so are compatible with both operating systems, however, ASP.NET is restricted to running on a Windows platform.

It is important therefore to check which systems and languages your site is running and consequently which operating system your hosting platform will need to include.

Part 2: Content Management

Every website needs to be managed, either by its users or its webmasters/owners, with its content, appearance and functionality updated, removed or added. The systems and technologies used to create and then managed the site and its content will be core to determining the technological requirements of the hosting platform that the site needs.

As mentioned in the previous article, the content of a web page can be stored in that web page/HTML document if it’s text that doesn’t change, within the website’s folder structure on the server if it is a separate file (images etc), and/or in databases if the web page needs to be dynamic in terms of which data it displays.

File Access - FTP
All website builds will require the access to manage the underlying files that sit on the web server, such as the HTML files, CSS files, content files (e.g., images and PDFs) and code files (e.g., PHP, ASP etc). As a result all web hosting platforms should come with a way of transferring files to and from the web server and most of these use what is known as FTP (File Transfer Protocol). Some hosting packages include a web based interface for ‘uploading’ files instead or as well as FTP access for those with more basic needs, however, for web developers making extensive and regular code changes on their site, FTP is essential.

In its simplest sense FTP is an internet protocol which allows users to add, replace or delete files on a remote server across the internet in a similar fashion to files on a local network, but using an FTP software program instead of Windows Explorer for example. It is worth bearing in mind though that traditional FTP does not encrypt the information that it transfers and so if you are working with sensitive or private information or files you will need to check that the hosting provider supports a secure version/equivalent of FTP.

Content Management Systems
An increasingly large proportion of the sites on the internet are in fact built using what is known as a content management system (CMS) and if you are yet to build a site you will need to consider whether you would be best to use a CMS and, if so, which one and what the hosting implications are of that choice. In short, a CMS is the ‘back end’ of a site which allows users to login and change the content that appears on the front end. As a result they can be, and usually are, used to initially construct the website too.

For less experienced web developers or administrators with no programming experience, a CMS will allow them to add, modify and remove content without needing to use code or mark-up, sometimes using tools such as a WYSIWYG (What You See Is What You Get) editor to show the user exactly what they will be changing as they do so. The content that will be managed through a CMS will usually be on-page text but can also include files such as images, multimedia and PDFs (sometimes negating the need to use FTP) as well as the appearance and layout of pages (usually using templates to apply the same appearance to multiple pages).

In addition CMSs give experienced web developers the core building blocks of a website so that they can go on to manipulate the code to the functionality they need and the markup to achieve the look they want. Where a CMS does not offer a particular piece of functionality in its core build (out of the box) there is often a module which will have been created by its community of web developers and which can be installed in the CMS to achieve the functionality. If there isn’t, experienced developers can create their own modules and contribute them back to the community.

The concept of a CMS is very closely linked to the idea of blogging software and most of the internet’s more common CMSs began life as software intended to allow users to easily post their own blogs online. Bespoke CMSs can be built by web developers to create and manage a website, however, a large number of these CMS-built websites use off-the-shelf CMSs which can either be downloaded and installed as open source packages or purchased as proprietary systems. As with all such software and systems, open source CMSs will tend to be free and supported by community but less controlled, whereas the proprietary systems will have more structured support but will carry a cost.

As CMSs need the ability to display different content on pages depending upon what the user requests, and as they use themes and configurations to apply templates to multiple pages, they rely on dynamic page creation and consequently the use of databases and server side scripting. By far the most popular off-the-shelf CMS in use on the internet today is WordPress which is built using MySQL database technology and PHP as its server-side scripting language. As a result it is able to run on both Windows and Linux, as are Joomla! (PHP & MySQL) and Drupal (PHP and a variety of database programs) amongst the other more popular CMSs. Contrastingly, the most popular CMS that is restricted to running on Windows servers is Umbraco as it is built using ASP.NET.

There are a number of other factors you will need to consider before deciding which hosting platform to go for, whether you choose a dedicated and managed hosting package for a large site with high traffic volumes and security issues, or a shared server platform for simple static brochure site, but these will be addressed in more detail in following articles.

© Stuart Mitchell 2012

If you want to find out more about choosing the right hosting platform for your website you can visit Managed Hosting or for help in building your site, Web Design London.
Enhanced by Zemanta

Tuesday, 31 January 2012

Designing an Accessible Website - Part 2

Having considered the central concepts behind making a website accessible and the overarching reason why accessibility should be a thread that runs through all website builds, the second part of this article covers the potential benefits of accessibility to your organisation and the principles that you will need to factor in to your website builds to ensure that they are accessible.

Benefits
From a business or organisational standpoint there are a series of reasons that advocate making accessibility central to a website build. The W3C broadly categorises these as follows:

  • Social Benefits - Accessibility is particularly important for organisations that are socially responsible/have a remit which is promoting a social cause, to boost their reach and the credibility of their cause, as well as being fundamental to those whose sites’ actual target audiences will rely on accessibility measures.
  • Technical Benefits - Accessible sites which are consequently more streamlined, simple in their construction and more accurately and efficiently coded can lead to better performance levels and manageable server loads (under high volumes of traffic), increased compatibility with other services and lower maintenance requirements.
  • Financial Benefits - There are economies of scale to be benefited from when implementing accessibility standards in the original build of a site as opposed to retro-fitting it at great expense further down the line. As mentioned above accessible sites may be less complex and therefore cheaper to build whilst their simplicity and clarity can also help SEO performance, usability and reduce the cost of maintenance. Additionally, the increased reach and market share of an accessible site across all abilities (as well as mobile and legacy tech users) can bring in higher revenues.
  • Legal & Policy - Despite the number of legal cases remaining very low, website accessibility is still driven, although not prescribed, by legislation such as the EU’s Human Rights act and the UK’ Disability and Discrimination Act. Within these frameworks individual companies and organisations can be dictated by policy, from the requirements surrounding government and publicly funded sites to the internal standards of private companies.


Areas to Consider
There are a number of bodies who promote web accessibility and have therefore published guidelines on accessibility but perhaps the most recognised as an ‘industry standard’ is the W3C with their latest set of Web Content Accessibility Guidelines (WCAG) 2.0.
The WCAG 2.0 guidelines are constructed around the four basic principles of a site being Perceivable, Operable, Understandable and Robust.

Perceivable - Users with varying abilities should be able to perceive the content on your website either directly, or via assistive technologies, without the loss of meaning or increased difficulty. To achieve this you should consider providing text alternatives for all non-text content to allow visually impaired users to perceive content via screen readers. As a minimum the text alternative for all non-text content should identify what it is but to provide greater accessibility it should go further and replicate the purpose of, and information conveyed by, the original content. Examples include descriptions of visual elements and/or transcripts of videos and audio for greater accessibility.

The content should also be presented (and structure) in a way which can be successfully interpreted in different browsers and assistive technologies, whilst being clearly distinct from its background/surroundings and therefore suffering no visual or audio interference.

Operable - The website should be easy to use, with navigation that is consistent and simple so that users can find their way around the site without confusion, whilst also being navigable using just a keyboard. Furthermore, users should be able to control how much time they have to read content, or use functions, and content should not risk causing the user harm by posing, for example, an epilepsy risk.

Understandable - In accordance with the concept of being perceivable, all users should be able to read all content and it should always appear in predictable and relevant contexts to avoid confusion. In addition, all content should make sense in its context and be informative so that where necessary users will know what they need to do to use the website and its functions successfully and correct any errors that they may encounter.

Robust - Finally, the website should be compatible with, and therefore pose no barriers to, technologies and tools that all ability users may use in conjunction with the web site. Examples of such assistive technologies include screen readers and text only browsers. To this end, standards in coding and mark up (HTML etc) as set by the W3C should be adhered to so that all parts of the website can be interpreted by current and future tools built with these standards in mind.

Bearing in mind the requirements and principles of accessibility throughout all stages of a website build is ultimately worthwhile for a wealth of reasons. It is not only the most efficient way of satisfying the legal requirements of your site but it also plays a vital role in increasing the size and reach of your website as well as significantly advancing your credibility as a socially responsible organisation. With a healthy awareness of the issue far more of the potential of your site can be unleashed.

If you are interested in finding out more about designing accessible websites then you can visit Web Design London

Designing an Accessible Website - Part 1

While designing and building a website to look as appealing, interesting and informative as possible it is easy to lose sight of the full spectrum of users, each with varying levels of ability, who may be attempting to access your content. Not only may you be risking the missed opportunity to connect with a wider audience who have some form of impairment, but you could even be construed as discriminating against the less able if your site is not designed or built with a healthy awareness of accessibility at all times.

Many of the techniques and considerations that are important for an accessible website are particularly pertinent when actually coding the site, but in order to ensure their implementation can be successful at this stage, accessibility principles should be prominent throughout the process, from the planning and designing, to the final testing of the new site.

Objectives & Audience
The idea of accessibility in website development is to allow as many users as possible with varying abilities to use your site with no loss of content of function. When considering the accessibility levels you wish to achieve on a new website you should always keep a clear perspective on who you are trying to open your site up to and therefore what abilities you may need to cater for.

The disabilities that you will need to consider can include visual, auditory, vocal, movement and cognitive impairments and many permutations therein. It is ultimately impossible to build a website to be accessible by every single potential user but there are basic and achievable steps which can be taken to ensure that your site is accessible for the vast majority. Ultimately the extent to which you make your site accessible may be limited, or at least impacted, by the original purpose of the website and in some cases the purpose of your site may actually conflict intrinsically with some accessibility requirements. It is therefore the balance between purpose and accessibility that you need to establish when designing your site. As an example, a piece of functionality which has the sole purpose of testing a user’s ability to recognise images in a limited time frame will by definition, and understandably, fall short of certain accessibility criteria because the user is unable to pause the content to allow themselves adequate time to fully perceive the images.

It is also vital to remember that many less able users will rely on assistive technologies such as screen readers to help them access online content and one of your aims will often be to ensure that the site is compatible with these programs to provide the full experience.

Defining the size and extent of the audience that could be reached by an accessible site is very tricky because it is not simply a case of defining and differentiating between the conventional tags of ‘able’ and ‘disabled’ users. Doing so would be drawing a line in the sand and there are many users who a) may be classed as being disabled but have no impairments when online (e.g., a user who has lost the use of their legs can still be fully ‘able’ on a computer), or b) would not be classed as disabled but may have conditions such as colour blindness which limit their ability to use certain sites to their full potential.

Furthermore accessibility issues may also be encountered by users who are elderly and beginning to suffer from perceptual or cognitive impairments, young children, non-native language speakers, mobile device users and people using legacy technologies. Research by Microsoft has hinted that the proportion of the population who experience some factor which inhibits their use of the internet could be as high as 57%.

The second part of this article highlights the advantages of making your website accessible to these audiences and outlines the principles you will need to follow in order to do so.

If you are interested in finding out more about designing accessible websites then you can visit Web Design London