Introducing EPiServer Framework
|Number of votes:||4|
The release of EPiServer CMS 6 also introduces the new EPiServer Framework. EPiServer Framework contains common UI and API functionality intended to be used by all EPiServer products. This article outlines the EPiServer Framework core features.
EPiServer Framework comprises:
- Initialization System
- Dynamic Data Store
- EPiServer OnlineCenter
A common initialization system is introduced for EPiServer products and 3rd party modules - the initialization will be the shared initialization system from EPiServer CMS 6 and EPiServer Community 4 onwards. During initialization of the EPiServer application, the initialization system uses a specially compiled version of Microsoft's Managed Extensibility Framework (MEF) which scans through assemblies in order to detect custom modules which should also be initialized. MEF is an attribute-based discovery system and in order to have a discoverable initialization module you need to add certain attributes to your class [InitializableModule] or [ModuleDependency(...)]. See the technical note Initialization for further information.
Dynamic Data Store
Dynamic Data Store (DDS) offers an API and infrastructure for saving, loading and searching of both compile time data types (.NET object instances) and runtime data types (property bags). This functionality has been sought after for some time and we are confident that it will provide developers with an easy and logical way to store and retrieve various data types.
As DDS is fairly powerful functionality I encourage you to read the documentation (blog posts, code samples, Dynamic Data Store tech note) and to follow the recommended ways of using the technology before commencing development.
Related to the DDS in EPiServer CMS 6 is the Page Objects functionality. A page object is a normal .NET object instance that can be used to associate objects with a CMS page. The underlying storage for the objects is the Dynamic Data Store functionality. A page object can be implemented and used in a variety of ways, see the Page Objects technical note for further information.
Another feature of DDS is that you can export and import items in the DDS through the regular CMS export / import mechanism. Only programmatic support for selecting which items to export exists in the first version of EPiServer Framework. This import/export functionality will also work when mirroring an EPiServer website.
EPiServer OnlineCenter is a new UI framework for EPiServer products providing easy navigation and integration of EPiServer products and 3rd party products. OnlineCenter contains two main components:
- Global navigation - allowing editors to access EPiServer CMS and other products from the top menu and
- Dashboard - a plug-in area for EPiServer products and custom gadgets.
The global navigation helps users navigate different integrated products such as EPiServer CMS, EPiServer Community, and EPiServer Mail, but also third party products or modules which would like to expose their interfaces to the logged on user.
The global navigation can be customized (it’s a new plug-in area) and it’s possible to insert the menu into both (custom) web forms and MVC views.
The menu is designed to be oriented on products and modules, so that each top menu item represents a product while the sub level menu contains the actual views/functions/parts of the product.
The dashboard serves to aggregate site information and expose important functions to the user. One example is a list which shows recently changed pages so that the editor quickly can get back to the work where they left off.
The dashboard is made up of tabs, zones and gadgets. Gadgets can easily be created (ASP.NET MVC technology) and plugged into the dashboard so that the user can quickly access them. A gadget is a self contained item and is responsible for its own rendering and behavior. A gadget can either contain functionality that can be used within the gadget interface or simply link to other products integrated in the framework.
In order for developers to quickly learn how gadgets work we provide a Gadgets Developer Tutorial and a code sample to download. The OnlineCenter is shipped with a number of gadgets; there are also many other gadgets available to download and install - see the contributions from the EPiServer Gadget Contest (note that these gadgets were developed for the pre-release version of EPiServer CMS 6). Several of the gadgets thoug have been updated and can be downloaded from codeplex (these gadgets are EPiServer CMS 6 RC1 compatible). For further information on developing for the OnlineCenter and gadgets see the OnlineCenter Development Document.
- See the online EPiServer Framework SDK (The OnlineCenter resides in the EPiServer.Shell namespaces).
- EPiServer Framework has its own versioning which will be incremented when other products are released.
- License Management is now handled by EPiServer Framework, this may affect third-party modules that use the EPiServer APIs to verify their (third-party) licenses.
- EPiServer Framework includes support for communication between EPiServer CMS 6 websites (global event handling), which amongst other things is used to update nodes in loadbalanced environments.