Composite C1 2.0 SP1

Topics: General, Release notes
Coordinator
Oct 27, 2010 at 2:44 PM

Composite C1 2.0 SP1 is now available, both here on CodePlex and via our download page. It will hopefully show up in the .NET 4 enables parts of Windows Web App Gallery (WebMatrix and Web Platform Installer 3.0) within a week or two.

The only bad thing about this new release is that we "lost" the great ratings and reviews here on CodePlex, so please consider rating us again so newcomers keep getting a good impression :-)

What’s new?

Here is what we have been up to the past weeks:

We have fixed a couple of issues related to the setup experience where security settings (typical for web hotels) and very long paths to the web root folder would yield a setup check failure.

We have added a brand new source code editor – SkyWriter from Mozilla. It’s based on the html5 canvas tag, so you better not be using IE if you want to see this. Use Mozilla Firefox, we are still working on Chrome support.

Faster previews. Much faster. We had a 5 second timeout on the client before preview requests were submitted, back from the days when we supported IE6. We have removed this and that’s nice indeed.

CRUD to the XSLT people! The C1 Function system (the little yellow lightning) now automatically create Add, Delete and Update functions for all your custom data types – in effect you can write (or XSLT generate) function markup which manipulate data.

Inline C# Functions. This is a great tool for spiking or the lazy remote coder – you can define a new C1 Function where you write C# code within the C1 Console. A preview tab let you see the result or good info on any compile errors you might have. If you add parameters to your function you need to also add them on the parameters tab – we hope to get some auto sync between code and the parameter editor later.

We have cleaned up our “localization files” containing the UI strings form the C1 Console – we had quite a few stings that were not in use. This we did so people who would like to translate the UI to their own language do not spend time on garbage. If you would like to translate the C1 Console to another language let me know at we will tool you up.

New function for page cache control: Composite.Web.Response.SetServerPageCacheDuration. The "Composite.Web.Response.SetServerPageCacheDuration" function enables you to change the time a page is publically cached on the server. You can decrease the cache duration or completely turn it off - but you cannot increase it if another setting have set a lower value (lowest value is used).

You can use this function to have general high cache duration on your site, but set a low/none cache duration on specific pages or (typically) function output. For instance you can minimize cache durations for pages showing content that users can update.

        <!-- disabling the page cache -->
        <f:function name="Composite.Web.Response.SetServerPageCacheDuration">
            <f:param name="MaxSeconds" value="0" />
        </f:function>

        <!-- ensuring that the page is never more than 10 seconds old -->
        <f:function name="Composite.Web.Response.SetServerPageCacheDuration">
            <f:param name="MaxSeconds" value="10" />
        </f:function>

The CustomUrlAction element you use in Tree Definitions (custom trees and apps for the C1 Console) now able to send data driven parameters with the URL. Pretty obvious feature we didn’t get in there initially. Syntax info added to docs.composite.net

C1 Function Composite.Web.Server.ApplicationPath added. New C1 Function Composite.Web.Server.ApplicationPath - takes no parameters, returns the path to the Composite C1 application root. Typically '' (empty string == root), but if you run the website in a sub folder the path will be like '/MySubApp'.

C1 Function Composite.Utils.Guid.NewGuid added. New C1 Function Composite.Utils.Guid.NewGuid - takes no parameters, returns a new random Guid.

Windows Azure rated fixes. While working on getting Composite C1 up and running on azure, we identified a few issues. Mostly related to proxy’ing (server port and the port 80 client request on are different numbers). These issues have been fixed in trunk.