Thursday, 16 October 2008

EPiServer Customer and Partner Day 08

London's first EPiServer Customer and Partner Day ran yesterday with great success. We had a significant turnout, fantastic speakers and interesting breakout sessions. I heard nothing but positive feedback throughout the day.

I just want to say a big thankyou to all those that contributed in some way.

For anyone that was unable to attend, I have been told some of the session notes will be available and I will post a link once I have a location.

Tuesday, 22 July 2008

New Create+ Forum

The new Create+ package forum is already available, I'm very happy with how quickly these have been setup.

Find it here: http://world.episerver.com/Forum/Pages/Forum.aspx?id=21605

EPiServer CMS 5 R2 and Visual Studio 2008

While reading up about the new dynamic property functionality in R2 I noticed a small mention that VS 2008 will be fully supported in R2. Only one thing to say to that... Yay!

In the meantime it also points to this great blog entry by Fredrik Tjärnberg on how you can get the EPiServer tools working in 08 now.

Saturday, 5 July 2008

X3 How To Series: How to get content function properties on a page

Given a page or a page collection you may need to find a property which exists within a content function on that page (if that function has been added). An example is a news summary where the heading, date and summary are coming from properties within a body content x3 content function on the child pages.

Use bits of the code below as required for your specific needs.

foreach(PageData page in collection)
{
//Add Dropit.Extension.Controllers
if (PageDataManager.IsExtensionPage(page))
{

ExtensionPageData extPage = ExtensionPageData.Load(page.PageLink);
IList<ContentFunctionData> functions = extPage.GetAllContentFunctions(page.PageLink);

foreach (ContentFunctionData functionData in functions)
{

//functionData is lazy loaded.
functionData.Load();

//access each property by indexer
if (IsValue("Heading", functionData))
{
heading = functionData.Property[
"Heading"].ToString();
}

//OR

//iterate properties
foreach (PropertyData property in functionData.Property)
{
//do something with properties
}

}

}


}

Thursday, 3 July 2008

X3 How To Series: How to get the page reference of a content function


You can access a content function just like a page within EPiServer using the following piece of code. I used this in an xform x3 control to set the statistics information.

Statistics.PageLink = new PageReference(ContentFunctionData.ContentFunctionLink.ID);

Wednesday, 2 July 2008

X3 Forums & Community Support

I'm currently working on a large site implementation involving the new x3 functionality. It has been great learning the capabilities of x3 however I miss the community support that is available with EPiServer.

So I had a chat to a couple of people and for those out there who are working with x3, you'll be happy to hear there will be a restructure of the EPiServer world forums to accommodate the new package structure and x3 will sit somewhere within this with Create+. This should be happening sometime after the summer.

In the meantime I will be posting here my learnings from developing with x3. If anybody has any comments, suggestions or links to other x3 developer blogs then please share with us.

EPiServer Developer Summit 2008

The Friday of the Partner Summit we split off for a full day developer summit which I thoroughly enjoyed. There were some really good sessions and some great speakers. Below is an overview of a few I went to.

For more information you can download the presentations from the partner site here: http://partner.episerver.com/News-Events/Events/Past-events/Partner-Summit-2008-Presentations/

Don't forget to checkout the photos and video while you're there too!

What's New in EPiServer CMS 5 R2 (Roger Wirz)
  • Lots of editorial changes
  • Can now perform form management in Firefox & Mac
  • Added features to help manage and sort forms
  • New form builder layout; can import & export forms, ability to export as xml and modify.
  • Advances to image editor; inbuilt cropping, resizing, flip, rotate, greyscale etc
  • Dynamic content; feed properties and content from somewhere else, can build own plug-in types
  • Report Center; various reports including unpublished pages, published by me, modified pages, expiring/expired pages. Plug in area so can add your own reports.
  • Content Channels; can bulk update data in EPiServer e.g. xml data with schema
  • Convert page type
  • Custom page provider; enterprise feature only, can have content stored outside of EPiServer database, e.g. stored as xml. Can build your own page providers.

Migrating to EPi5 (Johan Bjornfot)

Migrating Areas
  • Data, File Systems, Page templates, custom properties
Prerequisites
  • Must be 4.62 and target must be CMS 5 SP2
  • SQL Server 2005
  • Form properties must be converted to XForms
Conversion Times
  • Object store - ~30 mins / 10,000 obj
  • Native file system - ~ 10 mins / 1 GB
  • Link migration - ~25 mins / 10,000 pages (more for translation pages)
What can't be migrated
  • Oracle based sites
  • Users and access rights
  • Mirroring state
  • Workflows

Performance Troubleshooting (Steve Celius)

80% of download time usually comes from client site

Finding slow areas
  • Analyse IIS logs (check time_taken, num requests per min, Visual Log Parser)
  • Fiddler
  • Performance Monitor (check cpu, req/s & req queue)
  • JetBrains dotTrace Profiler
Large List Problem
  • Large collection of pages kills performance
  • Dynamic properties take up loads of performance
Solution
  • Split up page lists to less than 250 per subtree
  • Cache the list
  • Limit dynamic properties
  • Less of a problem in EPiServer CMS 5
Find pages with criteria is most resource intensive operation.
  • Cache results from these and other queries. Check out Steve's CacheFramework.
  • Use output caching
  • Cache is invalidated on page publishing

Site Maintenance Using Windows Workflow Foundation (Johan Bjornfot)

Built an example workflow sending tasks between two sites, a source site and a translation site.
Used contentChannel to push pages between the two sites.

Built a second example workflow that searches for pages about to be unpublished and gives the owner the chance to extend it.
You can set a time limit between loops in WWF
Can debug workflow through normal web process

Content Channel & Page Providers (Magnus Strale)

Content Channel
  • Import pages and files
  • Allows one way updating
  • Requires configuration
  • Pages and files

Page Providers
  • Data resides in original store
  • Fully integrated in EPiServer
  • LocalPageProvider and RemotePageProvider in EPi CMS R2
  • Requires Enterprise license
  • Requires coding and configuration
  • Pages only

Sharepoint Connector
  • One way communication initiated by sharepoint
  • No support for access rights
  • GUI for configuration