Sitefinity 5.3 has just been released. This is our 11th official release for 2012, and with it, we've tried to address as much feedback from the support channel as possible. We have also included some much requested features, so this is our Christmas present for you.
It's been a great year, and now, it's time for you to enjoy the 5.3 release with all of its goodies. Here's a full list of them:
- Support for shared content in Page Templates (PITS)
- Support for Permissions in Content blocks for better control over the publishing process
- Editing shared content now bypasses Pages workflow resulting in significant performance improvement with sites with a lot of pages and content blocks usage
- Improved usage statistics calculation to speed up Content blocks backend screens (tracking which block is used on which page/template).
- Multilingual Support for the Module Builder - Making fields localizable in custom content types created with Sitefinity’s enhanced Module builder, allows you to deliver the same content in multiple languages. The feature supports localization of short, long and single/multiple choice fields. Preview of dynamic content items and fields editing are also part of this release. (PITS)
- New method in TaxonomyManager RecalculateStatistics() - Recalculates the taxonomy statistics for the specified type and providers, making sure that the statistics returns the actual marked items count.
- Sitefinity now uses by default sequential Guids(instead of fully random Guids) for all database records ids. This helps to avoid fragmentation of database indexes and improves write performance and scalability in Ms SQL server. The site administrator has the option to switch to random Guids usage in DataConfig.config -> GuidGenerationStrategy setting
- The module is not installed by default to save resources where not used.
- Any target instance should now be enabled as such and respectively, synchronization to it can be disallowed.
- Site Sync now effectively transfers large media blobs (up to 2 GB, because of an IIS restriction) - without consuming any additional memory.
- Non-media data (encoded in XML) is transferred with gzip compression
- External blob storage providers blob data is not synced by default (intended to be shared) – only the metadata. This can be overridden by setting to true the siteSyncBlobTransferEnabled parameter on blob storage provider or blob storage provider type level in the configuration.)
- Overall sync speed improvement (some tests result in 30% faster sync).
- Pages, their controls and properties are sent in a single request to avoid transactional inconsistencies.
- A progress bar during synchronization.
- A new Synchronization.log is written during the process.
- Synchronization summary information is stored into the database and shown on the last (summary) screen
- Sequential GUID support. (Read more)
- Inventory Management - Merchants can enter inventory quantities at the product level or at the product variation level and have the option to display the product or even allow purchases if the item is out of stock. Inventory quantities will be reduced from products or product variations after an order has been placed with successful payment. Optionally, merchants can show products on their online store that are out of stock to help increase SEO rankings. Also, out of stock messages will display informational messages to the consumer when a product is no longer available making for a user-friendly shopping experience. You will also enjoy a new inventory report with export to Excel capabilities.
- Discounts & Promotions - Merchants can create promotions targeting a specific customer, new customers, existing customers or even for a group of customers who’ve purchased a product that was assigned to a role. Also, a merchant can offer a promotion for the first 100 customers to place an order from their online store.
- Create SEO friendly URL’s for products - When products are created or saved the URL will no longer have the dates leading to a clear, descriptive URL for the products in your online store.
- New Events exposed - OnProductInventoryChanged: For developers, an event is fired when the inventory quantity is updated allowing the execution of custom code for such things as sending an email notifying the merchant to order additional items or updating a backend inventory system.
- The users can now track their inventory (PITS)
- The users have the ability to restrict the number of times a discount can be used (PITS)
Performance optimizations of the Sitefinity backend
- There are several performance optimizations in the Sitefinity backend. The most important performance optimization is related to the backend WCF services. Several WCF services are improved to work in “Multiple concurrency mode” and utilize much better the web server processor resources. The optimization results in much better throughput of the system, when a lot of backend users are simultaneously creating and updating content. The optimized modules are News, Events, Documents, Videos, Images, Dynamic modules, Blogs.
- Filter expression in the dynamic content widget is not applied
- Taxonomies statistics not updated when deleting taxonomy field
- Filtering dynamic items by choices field values is not working (PITS)
- Choices fields options are not displayed properly in language other than English -> strange symbols are displayed if the options are set in Cyrillic or Arabic
- Localization of content items made by a module created with Module Builder.
- Deleting items created by Module Builder does not clear taxonomies statistics from the database (PITS)
- ML: Content Block widget > Select share content dialog > content that is not in use is marked as "Used on at least one page"
- Shared Content : Translating a page with shared content blocks doesn`t preserve the shared label on the content blocks copied to the translated page (PITS)
- ML: Shared content > When using more than 2 languages the shared content version does not switch automatically to that language
- Content block widget is not refreshed when content block is deleted
- Cannot delete empty shared content used by page - results in error "Workflow rules do not allow to delete"
- Duplicate and delete shared content results in error "You are trying to access item that no longer exists. The most probable reason is that it has been deleted by another user."
- It is possible to create a content block without a title through Content block widget
- ML: Shared content block > “Exception has been thrown by the target of an invocation.” when you duplicate Content block widget
- ML: Content blocks > message “count of pages have been successfully updated” doesn’t display if you click on the Edit link in the grid and change content for no default language
- ML: Links in content blocks disappear (PITS)
- ML: Content block widget displays the shared content although this content was deleted through the administration
- Sharing in Content Block widget in edit page disappears for pages originally created in monolingual
- ML: Content displayed by Content block widget is wrong when the new language version of the page is added through the language toolbar
- ML: Translating split pages originally created in monolingual doesn`t copy the content (PITS)
- Shared Content blocks decrease the performance of the content blocks section in the backend and the selector (PITS)
- The huge memory consumption during synchronization of media content.
- Cannot sync media content (images, video, docs) stored by the Azure blob storage provider.
- Failed items are retried as part of the subsequent synchronizations.
- If an item fails to sync to one of the target servers, it's marked as failed for all target servers on synchronization details.
- In multilingual mode, after syncing an element, on a destination site it cannot be published again.
- Error if the URI scheme is missing. (PITS)
- Activating and deactivating a custom module multiplies some of the options in search indexes and feeds
- Unpublishing synced page removes it from the search index in multilingual mode
- Indexing documents does not work correctly in multilingual mode
- Reindexing doesn't work with Oracle
- Feeds created when creating blogs does not work in multilingual
- Creating feed for dynamic content with main field different than Title results in mappings problem in multisite mode
- RssFeed mapping is not working correctly when adding multilingual long field in dynamic content
- Unpublished dynamic content items are visible in RSS feeds (PITS)
- Feed with forums and news in it produces error sometimes
- Injection of custom MVC controller factory is not possible
- The ViewBag is lost after a request to the controller in Sitefinity MVC (PITS)
- Switching the view mode of the Users backend page between Grid View and List View does not remember sort state
- Missing sorting option on the Username, Email and Registration columns of the Users List View
- The sorting expression parameters to the server are swapped (i.e ASC is DESC and vice versa) in case user tries to sort the Users Grid View by the Last login column (PITS)
- Can’t sort the Users Grid View by Name in case the Users Grid is filtered by Role
- The ability to change the order of category is not working in case user moves a category to the bottom location (PITS)
- Refactoring the recalculation algorithm used of Taxonomy statistics
- Using multiple libraries providers for images doesn`t get the full sized image (PITS)
- Multilingual images not showing correct titles. (PITS)
- If authenticated user(who had used the Remember option during the login process) close the browser and open it again, the user is not authenticated. (PITS)
- “Blog List” widget displays as links blogs which does not have default page (PITS)
- “Blog List” widget does not display the date of the last post in the list (PITS)
- The sound of the video is still playing after closing the video (PITS)
- Clicking on the Actions column of the Pages Grid throws an error
- Accessing a secure page using http instead of https in the url results to redirect to the https page but any query string parameters are lost
- Can’t move a child page to become a regular page if system is in Multilingual mode
- Administration > User files: cannot open Permissions screen
- Custom Fields > Bad Encoding (PITS)
- Email Campaigns: the issue is not sent if its text contains link that exceeds 255 symbols
- Canceling changes still persists changes in email campaign template (PITS)
- Email Campaigns - Campaigns - A/B tests "Winner" column not displaying proper title (PITS)
- Selector dialog hangs when opened from a widget on a page with a culture code with more than 2 symbols
- Filtering a News widget by Category and pagination cannot work together when UrlEvaluationMode is set to UrlPath (PITS)
- When you deactivate Responsive Design module, the personalization console results in error "The configuration 'ResponsiveDesignConfig' is not registered"
- "Image library could not be created" error (PITS)
- Page selector - if you delete the selected page, you receive an error "You are trying to access item that no longer exists. The most probable reason is that it has been deleted by another user." (PITS)
- Forums: "Telerik.Sitefinity.Libraries.Model.DocumentLibrary, Telerik.Sitefinity.Model was not granted ManageDocument in Document for principals" error if you post a forum thread with attachment
- Forums: ForumsView - Pager and UrlKeyPrefix do not work together
- Permissions > Content modules: if you navigate without permissions, you receive 404 instead of 403
- Interface Labels & Messages: Search doesn't recognize international characters (PITS)
- The fluent API facades no longer automatically commit the transaction in the Dispose method, as it is called unconditionally by definition, and the old behavior was causing the transaction to be committed even during exception propagation. The SaveChanges method should always be called explicitly and your code should be updated whereever it relies on the old implicit commit behavior.
- In an attempt to preserve the current settings of most users, during the upgrade to 5.3 the module will be (re)enabled. If you have disabled it, you'll need to disable it again after the upgrade. (It will be disabled by default for new installations.)
Multilingual (ability to customize UrlLocalizationStrategy)
- IUrlLocalizationStrategy changed
- Changed Initialize() method to accept IUrlLocalizationContext parameter
- UrlLocalizationContext implements IUrlLocalizationContext
- DefaultCultures property is removed – use GetDefaultLanguageCultures() instead;
- IncludeSubfoderPrefixForDefaultLanguage property is removed – it is specific for the SubFolderUrlLocalizationStrategy and it is passed as a parameter; “includeSubfoderPrefixForDefaultLanguage” to the Initialize() of the strategy in IUrlLocalizationContext. StrategySettings.Parameters collection;
- UiCultureSettings is removed – use GetAllLanguageCultures() and StrategySettings instead to build the UiCulterSettings map for the url strategy;
- LanguageCultures is removed - use GetAllLanguageCultures() and StrategySettings instead to build LanguageCultures map for the url strategy;
- The List View of the RadGrid in the Users page has had some of its labels changed:
- The label “SecurityResouces.Username” has been replaced with “Labels.Username” & “Labels.Roles”
- The label “SecurityResources.NameEmail” has been replaces with “Labels.UserFirstAndLastName” & ”Labels.Email”
- Removed PermissionChildren property from ISecuredObject interface. Where it was needed - directly get the items from the data provider (DataProviderBase. GetPermissionChildren(Guid parentId));
- Removed PermissionChildren property from build-in Sitefinity content types (News, Events, Blogs, Libraries, Forums, etc);
Removed the following public members:
- Items created in monolingual are not searchable in the backend when switching to multilingual. Workaround – re-save of all items in multilingual will make them available in the search results
- Classification/Assets dynamic field: Switch from multi to single mode needs a precondition. Existing items should contain only one value for the specified field.
- Inventory does not work with Buy Now widget