Version 3 of the flux.net platform is presently in development, and it's taking a whole new approach to how we traditionally manage content. V2 and earlier always worked on the premise that a page was an item of content, V3 is changing this paradigm and is considering content to be individual pieces of functionality that consume data. A page therefore won't be "written" per-se, as it is in v2, it will instead be composed from elements that make up the whole.
The content management piece of the application will focus on the structural management of the site - the templates that make up the site, the page relationships and structure. From there, the pages will be composed by placing web-parts in the different publishing zones, with different web-parts available for different functions. Content pages no longer have the concept of type specific data structures, instead content is created within different modules of the application and exposed to the content management facility through web-parts. This allows for greater content re-use and re-purposing.
An example might explain this more clearly. Lets say we have a simple corporate site with;
- a home page
- will list the latest 5 press releases
- will display with some general content
- a news page
- will list all of the companies press releases in a paged format
- allows user to drill into a news article to read the full body.
To create this in v2, you'd create multiple content types for homepage, news aggregation page and news detail page and code all of the appropriate functionality into the rendering templates for the content type. This makes it a little difficult to re-use content as needed, moving the responsibility to the developer to create the render templates correctly and adequately define taxonomies. In v3 however content is separated from the actual templates completely - to create this site in v3, one would;
- Define an ASPX template that governs the look and feel of the web site, exposing various content zones where content can be placed. (Of course many different templates could be created)
- Define 3 pages in the content management system using this template, and the following hierarchical structure;
- Homepage
- News Listing
- News Detail (not shown on menus)
- On the homepage, add a "Generic content" web-part for the general content and use the HTML editor it provides to write the general content on the site. Also add a "News summary" web-part and configure it to show the latest 5 news articles - also set it's "detail" link to the news detail page.
- On the news listing page, add a "News Listing" web-part to display a paged list of all news articles - set it's "detail" link property to the news detail page.
- On the news detail page, add a "News detail" web-part to display the details of a selected news article.
- Use the news module to create news articles.
The data that makes up the various parts of the site is managed through vertically oriented modules, and then exposed via the web-parts engine. The initial set of modules planned for v3 includes;
- News Articles - define categorised press releases and news items to appear on the site.
- Blogs - multiple blogs will be able to be exposed through the site
- Events - let people know what's going on and when
- Files - share downloads with site users
- Membership - a core membership system for the site users and administrators, extensible by other modules. Send emails, updates and notices etc.
- Forums - let your members talk to each other.
- Surveys - ask users to feedback on different things and capture statistics.
- Images - define image galleries
- Lists - anything that can be described as a list (links, favourite sites, FAQs) can be defined in this module and exposed to the site
Of course flux wouldn't be flux without massive extensibility, and v3 is no exception. The development framework that all of the above is built upon will allow developers to extend flux to meet every need they have. When this is finished, I'm hoping that flux will continue to be the powerful platform that it is today, whilst offering a lot of functionality out of the box tied to excellent opportunities to extend and enhance.