Skip to content

Composite C1 4.1

Compare
Choose a tag to compare
@pashakuzm pashakuzm released this 20 Nov 13:06
· 3483 commits to dev since this release

Composite C1 4.1 (4.1.5058.34326)

Getting started

If you are new to Composite C1 and want to install it: http://docs.composite.net/Getting-started

What's new in Composite C1 4.1

The following are highlights of major changes since Composite C1 4.0:

General user features:

  • Drag-and-drop images and files like PDF and Word documents directly from your own desktop and folders into page content
  • Allow you to install Composite Form Builder - an effective, extensive and easy to use tool for building web forms
  • "Open Cph" Starter Site upgraded to Bootstrap 3 - powerful mobile first front-end framework.
  • Seamless switch between content languages for users working with content in more than one language
  • Internet Explorer 11 support
  • Microsoft .NET 4.5 required - yielding across-the-board performance improvements and new developer features
  • Latest versions of TinyMCE (Visual Editor) and CodeMirror (Code Editor)
  • Audit logging improved: IP logged for logins. User and group add/edit/delete events logged. Workflow activity logging includes user names. Security changes to elements logged
  • Full support for multiple simultaneous media file providers

Developer features:

  • When writing Razor Functions or User Control Functions you will now get nicely formatted compile error or runtime exception feedback with call stack, C1 Function name, line number and failing code lines preview.
  • Your own static C1 Data Types (data types defined in pure code) which has the [RelevantToUserType("Developer")] attribute now show up on the Data Perspective in a new "Static Datatypes" folder. Below each data type you can browse data records and from there invoke an auto generated UI for CRUD.
  • Create your own 100% customized UI for the "Function Call Editor" for your own C1 Functions.
  • Use Razor to build custom C1 Console apps.
  • You can now edit .sass files from the C1 Console
  • You can now edit .asmx files from the C1 Console
  • Control JPEG image compression (image quality) for resized images individually via ?q=... on media URLs or via the default value in Composite.config. You may also use ?q=... alone to control image quality of a full sized image fixing "user uploaded giant JPEGs" issues easily.
  • C1 Function parameters generated from properties (Razor and User Control Functions) will now ignore properties where ‘set’ is private or the property has the attribute [FunctionParameterIgnore()].
  • C1 Function parameters may now be of type Lazy - Composite C1 will allow those to be set by C1 Functions of type Lazy and T - and those nested function will not be executed unless you reference Lazy.Value. This let you get "lazy parameters" in C# Functions, Razor Functions and User Control Functions.
  • Better developer feedback: C1 Function names embedded into CLR call stack when executing - making exceptions much more informative as to which (perhaps nested) C1 Function failed, if an exception is thrown.
  • Better developer feedback: the Function tester now shows entire exception info (stack trace, inner exceptions) when exception is thrown on "Result" generation - before only showed the exception message

Stability and performance:

  • This release fixes bugs uncovered in the 4.0 release and introduces performance improvements in the C1 Console in particular and in the system in general. The release also improves on the existing high quality of system and error logging. Performance, stability and the very kind developer feedback have been on our minds when building this release (as always).

Other:

  • Numerous bug fixes and minor improvements - for a more comprehensive list see change sets.

What's new in Composite C1 4.0

The following are highlights of major changes since Composite C1 3.2:

General user features:

  • Uploads up to 512MB accepted in the media archive
  • New “Block Selector” in Visual Editor – enables users to create styled div, blockquote etc. elements (not yet available in IE)
  • IE9 and IE10 run in standards mode and have very good performance
  • Support for older IE7 and IE8 dropped
  • IE10 has spell checking in all input fields (like Firefox)
  • When media files are updated (like uploading a new image on top of an existing one) all client caches are automatically invalidated
  • Drop down menus support searches
  • Free hand image re-size in Visual Editor - images resized server side
  • New URL combobox widget allows for both internal URLs and a typed URL
  • The C1 Console tree showing website pages now use the 'Menu Title' for labels
  • New starter site (bootstrap/less/razor)

Developer features:

  • Support for .NET 4 and .NET 4.5
  • ASP.NET Razor, Web Forms and Master pages are now 1st class citizens
  • Support for inline SVG in page HTML, function output etc.
  • Data Type Editor let you makes XHTML fields with one click.
  • Data Type Editor now enables you to control sorting on tree elements
  • Public API expanded - http://api.composite.net/
  • VisualEditor; code view; setting attributes on now kept and lifted to a rendered page.
  • Visual Editor picks up on CSS/LESS file changes and next load.
  • Support for CDATA sections - enables unstructured markup to be placed in function output.
  • New C1 Functions HtmlTitleValue and MetaDescriptionValue (namespace Composite.Web.Htm.Template) which will output the final title and description of a page.
  • Adding head element filtering (filtering on duplicate meta tag definitions, duplicate script and css includes).
  • Page Template supports Razor and Master pages with full C1 Console edit support in the Layout perspective
  • Razor Functions and User Control Functions known from C1Contrib built in, added to the public API and manageable from within the C1 Console
  • In the Layout perspective, new "Page Templates Features" allow you to maintain template elements (like footer texts, navigation and aside columns functions) in a code free environment.
  • Code editor has Razor syntax highlighting
  • ASP.NET Sitemap provider support
  • Copy XSLT Functions
  • OnStoreChange data event introduced for better scale out support
  • IFormLoginProvider and related types now exposed in the public API
  • RenderingResponseHandler and related types now exposed in the public API
  • Error boxes shown when a C1 Function fails on a page look better than ever. Highlighting the offending line etc.

Management:

  • New "HTTPS Enforcer" feature on the C1 Console (see change sets) - easy config to make the C1 Console either force HTTPS or be unavailable.
  • Installing and performing well on Azure Websites.
  • Now possible to delete (or not copy) the "/Composite" folder on a deployment.
  • The C1 Console's "Tools | Server Log" now offers filtering of event types.
  • XML data files serialize elements sorted by primary key. Makes use with code versioning systems easier.
  • Changes to XML data files are picked up. Data is reloaded and OnStoreChange is fired, updating all relevant Composite C1 caches.

Other:

  • Numerous bug fixes and minor improvements - for a more comprehensive list see change sets.

Upgrade guidelines

You can upgrade manually (copy files, modify xml in config files etc.) or you can automate the procedure using an Upgrade Package.

The manual upgrade guideline id posted below. It is intended for the tech savvy DIY developers and organizations.

The Upgrade Package is a paid service that provide you with upgrade support and a simple and painless upgrade path - you can upgrade directly from the web interface with a few clicks. Beside from making continuous upgrades easy you help fund the development of Composite C1. See https://www.composite.net/Plans-and-Pricing for details.

4.1

Manual upgrade 4.0 -> 4.1

Important: The guide below is for the technically well-informed “DIY” people out there. We suggest you consider one of two other options before you proceed with a manual upgrade.

If you need to upgrade a commercial website and want professional automatic tooling and support, go to http://www.composite.net/Plans-and-Pricing - the money your client pay here is used to fund further open source development, so that’s excellent!

If you are upgrading a private or community related website, send a mail to [email protected] with the Installation ID (C1 Console – Help | About Composite C1) and the URL of your site. And we’ll probably give you the automated stuff for free and all!

If you proceed with the guide below, please read it through first so you are familiar with the tools and steps needed to complete.

Requirements:

.NET 4.5 is required for running C1 4.1

1. Preparation

Download a clean 4.1 website (or 4.0) from GitHub.

https://github.com/Orckestra/C1-CMS/releases/tag/v4.1 or https://github.com/Orckestra/C1-CMS/releases/tag/v4.0

Stop the website on IIS.

2. Apply the file changes

Copy and replace the following files from the 4.1 instance to your website:

~\Bin*.* (!!!! Except Composite.Generated.dll !!!!)
~\Composite*.* (Just the files, not including the subfolders)
~\Renderers*.*

~\Frontend\Config\VisualEditor\Styles\core.css

Delete the following folders on your website, and copy them from the 4.1 instance:

~\Composite\content
~\Composite\controls
~\Composite\help
~\Composite\images
~\Composite\localization
~\Composite\scripts
~\Composite\services
~\Composite\styles
~\Composite\templates
~\Composite\transformations\

Copy ~\robots.txt if missing

3. Apply the config changes

  1. Edit ~/App_Data/Composite/Composite.config

Add a new attribute

imageQuality="80"

to

/configuration/Composite.Core.Configuration.Plugins.GlobalSettingsProviderConfiguration/GlobalSettingsProviderPlugins/add
  1. Edit ~/Web.config

Remove attribute

/configuration/system.web/compilation/@targetFramework

Remove attribute

/configuration/system.web/pages/@controlRenderingCompatibilityVersion

Add a new attribute targetFramework="4.5" to

/configuration/system.web/httpRuntime

Add a new element to /configuration/system.web:

<httpHandlers>
  <add verb="GET" path="sitemap.xml" type="Composite.AspNet.SiteMapHandler, Composite" />
</httpHandlers>

Add a new http handler named "SiteMap" to /configuration/system.webServer/handlers:

<handlers>
    <add name="SiteMap" verb="GET" path="sitemap.xml" type="Composite.AspNet.SiteMapHandler, Composite" />
    <add name="Wildcard ASP.NET mapping" preCondition="classicMode,runtimeVersionv4.0,bitness32" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" />
    <add name="Wildcard ASP.NET mapping (x64)" preCondition="classicMode,runtimeVersionv4.0,bitness64" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" />
    <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</handlers>

Finish: start the website on IIS