Composite C1 1.3 is here!

15 June 2010

Composite C1 1.3 released

Download Composite C1 1.3

Our .NET 4 based release of Composite C1 1.3 is ready and available via download and upgrade! We ended up spending 6 weeks longer than anticipated on this release, primarily driven by an extended beta test period where we had 3 different web agencies developing 5 solutions on our beta builds, two of which are among the most advanced and demanding sites we have seen developed on Composite C1 to date. All in all this make 1.3 our most battle hardened major release to date and we expect the extra time spent on beta testing to come back in the form of happy developers and end users.

Composite C1 1.3 is a major release. We moved to a new version of the Microsoft .NET Platform (.NET 4) and we completely refactored the entire AJAX layer in the C1 Console in order to raise the usability and UI experience. The remaining time we spent on adding the most requested end-user features and filling in the blanks in respect to C1 Console custom application development, performance, stability and instrumentation. We also laid the foundation for new packages for C1 like blogs and e-commerce. This release primarily brings new features to the developers and front-end developers should be close to happy by now in respect to rapidly building data driven applications in the C1 Console.

Before we dive more into the details of this release, I would like to stress this point: This is a major release – if you are going to upgrade a site, read the upgrade package description before you do so.

The 1.3 release in headlines

Below are the release headlines - after the headlines I will dive into more detail on the release, including some demo videos.

New user features:

  • Page Types, making it easy to add new feature-specific pages to a site, like a blog.
  • Page, media and image selection based on the familiar trees.
  • Keyboard navigation supported in trees
  • UI when running on Mac’s now more Mac-like

C1 Console UI development:

  • Page Types, package page meta data, functionality and layout making the user's life easy.
  • XML-based Tree Definitions for customizing Console trees, structure and commands.
  • Support for dynamic page meta data tabs and fields, based on page types.
  • Ability to edit Page Meta Data field definitions
  • Ability to add Page Meta Data field definitions to all websites

General developer features:

  • New Log Viewer enabling easy remote HTTP access to logs
  • Unhandled ASP.NET exceptions logged
  • The Function call editor shows nested calls in the tree structure (no more pop-ups) and the XML for function calls can be edited directly.
  • “View Image” on web pages no longer starts a download.
  • ShowMedia.ashx URL now accepts IDs with and without the Media provider name before the GUID.

Front-end developer features:

  • Generated XHTML pages have the head title element placed right (at the top)
  • Sitemap XML scoping features improved for better Level 2 handling.
  • The XML source for XSLT can be pasted to external tools for debug / test.

.NET developer features:

  • Powered by .NET 4 and ASP.NET 4, Visual Studio 2010 ready.
  • VS2010 integrated web server is fully supported.
  • Microsoft EntLib assemblies no longer custom built (breaking change)
  • SQL commands created by LINQ can be emitted in the log for easy inspection
  • App_Code may contain extension methods without interfering when the data type editor

Performance and deployment:

  • Application startup time reduced.
  • Page functionality executed in parallel, shortening page rendering time.
  • C1 Console load time reduced.
  • C1 Console dynamic UI like function editors and data type editors are faster and give instant feedback.
  • Bulk code compilations done in parallel, shortening initialization times.
  • When running in IIS 7 Integrated mode, the Friendly URL support requires no custom IIS configuration
  • Full-page caching disabled for users logged into the C1 Console

We will be releasing documentation on the new XML-based Tree Definition feature and the Page Type feature within the coming weeks, but check out the introductions below to get a head start.

.NET 4, ASP.NET 4 and Visual Studio 2010 Support

In April 2010 Microsoft released the next generation of .NET and with Composite C1 you can use it right away. This release has been fully developed on .NET 4 using VS2010 and all the .NET 4, ASP.NET 4, MVC2 etc. features are ready to use.

Page Types

The concept of ‘page type’ has been added, giving site developers control over meta data fields attached to a page type (and not just based on the page structure), what Layout Templates a page type should offer, if a page type is for new home pages or subpages, hierarchy of interrelated page types (enabling user guidance). Also supported is default HTML content to set on a page type and Page Folders / Applications that are automatically attached.

This enable the developer to empower users to do a guided selection of a page type when adding a new page, get page type related meta data fields to show up, get access to the Layout Templates that make sense for the selected page type, have default content handed automatically and get required page folders automatically attached.

A typical use case could be a "Blog Page Type" - to create a blog page, specific meta data fields and Page Folders for holding blog posts could be required, along with a Function call in the page content to render the blog. All these prerequisites can now be described as a page type, reducing the users work to selecting the "blog" page type when creating a new page.

[ Error ]

New logger

We have replaced the previous 'TCP Logger' which had to run on the server with a HTTP-based logger enabling developers and administrators to get verbose logging across networks. You can download the logging client here: LogViewer.zip 

When you start the logger, specify the URL to the site (like "http://www.composite.net/") and the administrative password.

The primary features of the new logger is remote support, better performance, filtering options and easy access to copy log data for debug purposes.

New Applications feature

It's now possible to define 'C1 Console Applications' via an XML document. The document allows a developer to declaratively define a tree structure consisting of 'static' folders, data folders and grouping folders which should empower XML-oriented developers to build trees exactly to their liking. Generic data commands (add, edit, delete, publish etc.) can be attached to elements and it's also easy to invoke your own ASP.NET pages of XSLT Functions to get customised editors up and running.

Features include:

  • IntelliSense (XSD) and validation with verbose logging
  • Flat XML file in ~/App_Data/Composite/TreeDefinitions/
  • C1 Console picks up on new files and changes automatically
  • Declare what structure you want using nested XML elements
  • Mix elements of different types in one tree
  • Define simple elements, data elements or data element driven grouping folders
  • Commands: add, edit, delete, custom workflow, ASP.NET page or XSLT Function
  • Use the C1 Function system to use or create advanced data filters
  • Use customized editing forms where needed
  • Sort items as you desire
  • Group by variable depth date driven folders, reference fields, ranges etc.

[ Error ]
[ Error ]

New tree based widgets for pages, media and images (with preview)

It has been a repeatedly requested feature that we should replace the simple drop-downs for selecting pages and media - on sites with many pages or media files the selector got very hard to use. Now selectors are tree-based, enabling users to browse the same structure as they normally do in the navigation area.

[ Error ]

Redesigned Function Call editor

The function call editor used in a number of key areas in C1 has been 'visually refactored' so it no longer uses pop-ups to configure nested function calls. It's now possible to see the entire tree. XSLT developers will also find it much easier to pass input parameters on to function calls.

XSLT caching and debug features

These features are also available in Composite C1 1.2 SP5, but so new they are worth repeating.

The Get(Data)Xml function calls now cache automatically - can be turned off, but it is on by default. The cache automatically flushes if data is changed and cache until then, which yields a huge performance gain on sites that primarily use XSLT and Get(Data)Xml functions, which a fairly typical development pattern in C1.

We have also added performance details on XSLT previews enabling you to measure the time it takes for your XSLT Function to execute. Measure the time to build up the XML input in whole and measure the time used to execute individual functions. Use the existing ”Test value” feature on input parameters for simulations and find your bottlenecks faster.

.NET 4 Parallelization improving performance

Developers hosting C1 on multi-core systems should find system startups and page rendering performance improved. The more cores, the better performance.

Major breaking change

Previously C1 has been shipped with the Microsoft Enterprise Library in assemblies that were built by us - they have been replaced with the 'official' assemblies that Microsoft ships with the EntLib source code. This should make 3rd party integrations easier if both systems use EntLib, but if your site contains custom built assemblies that referenced our custom built EntLib assemblies, those assemblies will 'break' after the upgrade.

If you have written your own .NET-based providers for Composite C1, we suggest that you:

  • Test that your providers can load and run
  • If required, rebuild your provider project in VisualStudio 2010
  • Use the assemblies (DLLs) that ship with Composite C1 1.3 when rebuilding

We acknowledge that a breaking change of this magnitude is problematic and will lend the support required for you to rebuild any custom providers you may have created.

Severity: High – if affected custom functionality will be broken
Impact: Low – only highly customized sites (custom providers) are affected.


comments powered by Disqus