Deliver superior customer experiences with an AI-driven platform for creating and deploying cognitive chatbots
Deliver Awesome UI with the most complete toolboxes for .NET, Web and Mobile development
Automate UI, load and performance testing for web, desktop and mobile
A complete cloud platform for an app or your entire digital business
Detect and predict anomalies by automating machine learning to achieve higher asset uptime and maximized yield
Automate decision processes with a no-code business rules engine
Optimize data integration with high-performance connectivity
Connect to any cloud or on-premises data source using a standard interface
Build engaging multi-channel web and digital experiences with intuitive web content management
Personalize and optimize the customer experience across digital touchpoints
Build, protect and deploy apps across any platform and mobile device
Rapidly develop, manage and deploy business apps, delivered as SaaS in the cloud
The content you're reading is getting on in years
This post is on the older side and its content may be out of date.
Be sure to visit our blogs homepage for our latest news, updates and information.
One of the most powerful features of Sitefinity 4 is the ability to use the CMS platform itself to modify its own Administration Backend. This means you can use Sitefinity to edit Sitefinity, creating pages on the backend as easily as you do on the front end.
This presents a great extensibility point, because it allows you to create modules on the fly by simply creating a page in the backend and dropping a custom administration user control onto the page!
I prepared a video demonstration walking through this process from start to finish with a basic "Hello, World" module. Take a look then read on for more details.
Watch Video on Telerik.TV
For a Page-Based Module, you'll need to implement at least two widgets: One for the Administration, and one for the Public view.
You can implement these any way you wish, or reuse existing controls you've already developed, connecting using any data source method you wish (object, dataset, sql, xml, etc). As long as the user control is self-contained, it should work as a widget.
The same goes for the public view. You an implement separate widgets for list/details view, as long as you handle communication between them at the control level, such as using query strings to share data back and forth.
In order to be able to drag these controls onto the page, you need to register them in the toolbox. For help with this topic, see the following documentation: Adding Controls to the Toolbox.
Note that you do need to add the admin widget to the toolbox as well in order to be able to drop it on the page. However you can immediately remove it from the toolbox after installing it on the page. In addition, you could also utilize Configuration Policies to only allow specific users to see the admin widgets.
Since a Page-Based Module has two components (admin/public) you'll of course need to add two pages, one in the front end for the public view, and one in the backend for the admin view.
The Backend Page Editor (Under Administration > System > Backend Page Editor) allows you to quickly add a new backend page to the Sitefinity Administration at any location, such as under the Content menu or even at the top level, as I did in the video demo.
Because these modules are Page-Based, modifying the administration or public view is as simple as editing the underlying user controls. Make your changes, recompile and your module will be immediately updated.
Uninstalling your Page-Based Modules is also a breeze, since they are simply pages in the Sitemap. Simply use the Page Editor to delete the pages, and remove the items from the Toolbox.
Be sure to delete the controls from any public pages that use them if you are also going to delete the public user controls. You can also leave the public user controls in place so that they can continue to be used even after deleting the administration page.
Page-Based Modules are a great way to easily extend Sitefinity with custom functionality. This is especially true if you've already implemented a solution and want to reuse it in Sitefinity.
Next time, we'll take this a step further, and wrap this process into an actual Sitefinity Module, complete with Install and Uninstall methods so that your modules are completely self-contained. The result is a module very similar to the "Intra-Site" Modules from 3.x, only much simpler!
Until then, try out Page-Based Modules on your own Sitefinity sites and share your experiences with us in the Sitefinity Discussion Forums.
View all posts from The Progress Guys on the Progress blog. Connect with us about all things application development and deployment, data integration and digital business.
Copyright © 2018 Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.
Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks for appropriate markings.