What is Sitefinity?
Sitefinity CMS (https://www.progress.com/sitefinity-cms) is a content management system (CMS) that you use to create, store, manage, and present content on your website. Content and pages in Sitefinity CMS are multilingual and you can use one Sitefinity CMS instance to manage multiple sites that can share content.
Progress Sitefinity is named a 2018 Gartner Peer Insights Customers’ Choice for Web Content Management.
Sitefinity CMS has the following essential components:
Pages and Page templates
Pages represent the canvas on which you build and structure your website. In addition, pages contain the administrative and content authoring tools you use to manage your website, create and edit pages, browse and organize the structure and appearance of your website.
You define the functionality of the page by adding widgets, such as login and navigation, as well as content. The widgets in the Content widget group are used to display content created with the content modules.
Page templates define the layout of a page, while you use themes to style the page.
Build-in and Dynamic modules
You create content using the Sitefinity CMS built-in content modules or using dynamic modules that you have created. A module represents a backend component, from which a user can create, delete, or modify certain type of content items (content types). The content you create using content modules is reusable, so other users can view, edit, and publish it. You then display content items on pages, using widgets.
Widgets and Widget templates
Content and functionality of Sitefinity CMS pages are defined through widgets. Anything you want your page to do, you must do it with a widget. Widgets allow you to display the content you create and configure how you want your content displayed. Sitefinity CMS comes with a set of built-in widgets, which can be directly used in the pages you create. You can customize these widgets and create new ones.
Widget templates define the functionality and layout of widgets - how they behave when displaying content or other features. You can easily modify widget templates with the built-in editor.
After you create the layout of your page, you proceed with populating the page with content. Sitefinity CMS content is easy to create and reuse. Once you create news, an event, or other content item, it is stored in the Sitefinity CMS project and other users can view, use, and edit that content.
You can also upload images, videos, and other files that you store in libraries. Content, created with the modules, is displayed on pages with the help of widgets. Sitefinity CMS has built-in modules for creating various types of contents, such as news, events, and blogs. Each type of content has a dedicated widget used to display it.
Utilities and services
In addition to content items, Sitefinity CMS is shipped with a number of services that facilitate building and using your website. Such services include internal search feature, feeds module, recycle bin, sitemap generator, etc. All these features increase your performance and help you manage the site infrastructure.
Integrated SEO tools improve content discoverability in search engine results.
Localize URLs optimize search results, no matter the language. When creating new pages, simply adjust the URLs to best match your localized keywords, then Sitefinity delivers content in the appropriate language. The localized URLs also allow search engines to easily crawl all language versions of the website, optimizing your SEO results.
Customizable URLs Boost Website SEO
Progress Sitefinity has a suite of integrated SEO tools that ensure you get the most out of your website with improved discoverability in search engine results. The Sitefinity content management system gives you complete control over URLs. It allows you to customize URLs to create a stable, SEO-friendly URL architecture which improves your website's search engine visibility.
Input title tags, meta descriptions, meta keywords and header tags in one step using Sitefinity, while the built-in spell check will minimize mistakes. You can improve your internal linking by establishing relevant relationships between resources and pages. Sitefinity also allows you to block search engines from indexing any page you want to disappear from search engine results.
Set Canonical URLs within the CMS
Progress Sitefinity CMS empowers content authors and marketers to manage and reuse content across multiple pages and to set canonical URLs without help from developers. By defining the canonical URL, a meta tag is generated on a page level, which instructs Google where to find the preferred, original content URL. The page authority and ranking potential are then consolidated into a single URL, elevating your search engine ranking and with it your website’s visibility.
Find Missing Titles and Descriptions
The integrated SEO filtering tools allow site administrators to check for missing titles and descriptions. The tools provide an efficient way to review and edit pages in order to improve search results.
SEO Best Practices for Mobile Content
Sitefinity allows you to generate superior mobile experiences on any device, all sourced from the same content. This is great for SEO since Google loves Responsive Design and recommends it because it produces one URL for your website instead of many (one for mobile, one for desktop, etc.). This means higher traffic to your URLs and higher credibility from Google.
After you have built, tested, and released your website, you can take advantage of a number of marketing tools that Sitefinity CMS offers. You can use the Personalization module allows you to create different content to be served to different types of users. You can manage and compare newsletters with the Email campaigns module, and monitor your website traffic with Sitefinity CMS Analytics.
Connectors to external systems
Sitefinity CMS has a number of synchronization options with which you can create complex synchronization scenarios. You can synchronize data between Sitefinity CMS servers, SharePoint sites, cloud storage, SalesForce, and Marketo.
Sitefinity's multi-layer architecture is designed and built around the key concepts of extensibility, interoperability and integration, and flexibility. This is achieved by:
- Abstraction patterns that hide the implementation and storage location details
- Various extensibility points
- Public API for all the system components and services that build Sitefinity's out-of-the-box modules.
The following diagram illustrates the application layers in a website running Sitefinity:
Sitefinity's N-tier application architecture allows stacked groups of system components isolated in layers, so you can make changes in one layer independently of the other layers.
The following sections describe each application layer in more details.
By default, Sitefinity CMS uses relational SQL DB storage for storing content and system data. The database layer for relational storage is implemented with the Telerik Data Access ORM, which delivers support for Microsoft SQL, Oracle, and My SQL databases. When storing media and documents, Sitefinity CMS enables you to use various file and blob storage providers, as well as services. For example, database, file system, Azure blob storage, Amazon S3, and so on. We recommend that the data persistence layer is a separate server deployment.
In Sitefinity CMS, provider patterns serve to abstract the storage location and the communication protocol for storing and retrieving content and system data that used by Sitefinity CMS modules. By default, Sitefinity CMS uses relational database storage providers, implemented with Telerik Data Access ORM, for all modules. In addition, Sitefinity CMS also supports non-relational database storage. For example, users and roles can be retrieved from non-relational storage like LDAP (Active Directory) and, as a result, Sitefinity CMS has LDAP provider for users and roles. You can also use other storage providers for media files like images, videos, and documents and store them on external non-relational locations. Each module, for example News or Blogs, has a base abstract provider class that you need to implement to have a custom storage provider for the specific module at hand. Thus, you can store data in non-relational database storage or a database storage that is not supported by Data Access.
Managers represent the business logic API. You use managers when working with the content and system data. Each module has its own manager class that provides the functionality for querying, storing, updating, deleting, and other more complex content-related tasks. Managers provide you with transactional unit of work API with which you can batch operations and commit it as a single unit. You can also combine separate manager operations in a single 2-phase commit transaction across modules and storages. When working with a manager, there usually is an underlying data provider, in which the manager delegates any CRUD operations. Managers hide the complexity of selecting the appropriate data provider, controlling the lifetime of transactions, supporting multisite environment, and so on. In addition, the layer of the developer productivity API facade, called the fluent API and located on top of the managers, simplifies even further common operations, resulting in less code lines and more readability.
REST HTTP web services enable external applications and clients to access and manage Sitefinity CMS content and system data over the HTTP protocol.
Sitefinity CMS web services give access to content retrieval, updating, and publishing. Sitefinity CMS also exposes its configuration and workflow as REST services. Most of the services in Sitefinity CMS are implemented in WCF. Some of the more recently developed REST services, for example inline editing and related data, are based on the service stack framework.
You can use system services as .NET API for Sitefinity CMS modules extending the system. System services are core components that expose the following functionality:
- Email notifications
- Full text search
- Geo location
- Personalization (segmentation of users)
- Publishing to external systems
- Content workflow
- Digital commerce
You follow the implementation abstraction as pattern, so you can replace most of the system services with custom implementation.
HTTP handlers are the most commonly faced application layer, exposed by Sitefinity CMS. This layer serves all HTTP requests for rendering content, which are mostly generated by the browsers. HTTP handlers serve requests to render HTML pages, stream media, such as images, videos, documents, and others, for example the PageRouteHandler and the LibraryHttpHandler.
Before serving client requests the handlers check security-related issues and ensure content is properly protected. The page handler is one of the major components, as it serves browsers requests by first routing the request to the appropriate page by considering page URL, language, site, personalization segment, and so on. Next, the page handler makes sure the page is generated and compiled. Finally, the handler executes and potentially caches the output.
The most common clients are HTML browsers. Sitefinity CMS supports a variety of browsers, but there are some restrictions that apply for the backend. For more information, see System requirements.
Another developer productivity tool is Sitefinity CMS VSIX. It enables more convenient integration and deployment when developing with Microsoft Visual Studio and Sitefinity CMS.
A Sitefinity CMS module represents a functional sub-system of the CMS. Modules are highly decoupled entities and rely solely on the CMS infrastructure or on some of Sitefinity CMS core modules. That is, modules can be installed or un-instantiated separately and can package their own user interface, data storage, public API, public REST API, configuration, workflow, and so on. Most of Sitefinity’s functionality is wrapped as modules, for example News, Blogs, Libraries, Forms, E-commerce, and so on.
Modules usually leverage all the layers of the CMS architecture.
Sitefinity CMS Eventhub is an API where developers can subscribe for various system events that notify about activities completed in the system, for example updating of content, serving of page requests, unauthorized access, and so on. By hooking to these events, you can customize the system, for instance integrate with other systems, send custom notifications, or apply authorization and validation.
Depending in client needs there are several Sitefinity editions in place (https://www.progress.com/sitefinity-cms/editions):
- Professional Edition (Web Content Management Solution for Sites and Portals)
- Online Marketing Edition (Experience Personalization and Optimization Solution for Lead Generation)
- Enterprise Edition (Web Content and Experience Management Solution for Digital Operations at Scale)