What I’m looking forward to seeing at SUGCON 2023

sugcon-2023-banner-hotel

I’m really looking forward to SUGCON 2023 in Malaga in a couple of days time and have decided I’d take an more in-depth look at the conference sessions.

At previous SUGCON’s I’ve generally planned the talks I want to go to on the plane flight over, so this time I thought I’d try and do so up-front and share my thoughts on why.

Bear in mind that I’m a Sitecore Developer and Consultant so I naturally lean towards more technical tracks. You can find the full agenda here and you can read more about the sessions here.

Thursday

After the Opening Keynote by Steve Tzikakis and Dave O’Flanagan and the other initial sessions we need to decide on which of the parallel talks to attend. As usual there are a few clashes here, but these are my selections for the rest of the day:

Selected Talk Title Rationale Notable Alternative
3:10 pm – 3:55 pm
Martin Miles
Accelerate website builds with Headless SXA and XM Cloud
Martin has been Blogging a lot on XM Cloud over the past year and has a lot of Knowledge to share so I’m really keen to learn more about how to build headless websites with Headless SXA and XM Cloud and what Martin has learned from doing so. Andy Cohen
Innovations in Deploy
4:40 pm – 5:25 pm
Jason Wilkerson
SXA MVC & Headless SXA – a MOVING tale…
 Jason is always a really engaging speaker and I’m intrigued to know more about transitioning MVC-based SXA sites to a headless implementation of SXA. Thomas Stern
Hacking Sitecore
5:30 pm – 6:15 pm
Rick Bauer

Richard Seal
XM Cloud and Content Hub ONE Battle Royale
This sounds like and interesting session and having learnt a fair bit about XMCloud recently I’d like to know more about Content Hub ONE and how it compares. Vasiliy Fomichev
Crafting rock-solid secure composable Sitecore SaaS-based applications

Friday

There is an Content Hub ONE – Insights session to start the day but these are my choices for the rest of it. The first talk selection was a tough one!:

Selected Talk Title Rationale Notable Alternative
9:50 am – 10:35 am
Rob Habraken
Migrating advanced Sitecore implementations to XM Cloud
I feel this is a must-attend session for any Sitecore developer who might be working on projects that plan to move to XMCloud from XP/XM. Kiran Patil
Sheetal Jain
Upgrade path for a Monolithic Developer to a Composable Developer
11:15 am – 12:00 pm
Mike Edwards
Rendering your data in headless – 101 different ways
Mike will no doubt have a lot of knowledge to share on Headless so I’m interested to learn more about the different rendering patterns and pros and cons of each approach. Bart Plasmeijer
Keep the door open when transforming from Sitecore XM to composable DXP using XM Cloud!
12:10 pm – 12:25 pm
Chris Sulham
Grappling with the Many Heads of Headless
I’m interested to hear more about the considerations for headless and benefits and drawbacks to each. Mark Lowe
A Road Trip to Composable Canyon
12:30 pm – 12:45 pm
Sarah O’Reilly
Leverage Sitecore Connect for Sitecore CDP
I don’t know very much about Sitecore Connect yet (other than that it’s based on Workato) so I’m keen to learn more about it and how it works. Himadri Chakrabarti
What is Flexibility Over Features Philosophy in Sitecore OrderCloud Architecture
12:50 pm – 1:05 pm
Kingsley Hibbert
Mathew Evans
DevOps Composability in a Composable World
This session sounds very informative and not something I’ve really considered too much. Nicky Vadera
Using External Components in Content Hub 4.2
2:20 pm – 3:05 pm
Ramkumar Dhinakaran
Elakkuvan Rajamani
Leveraging XM Cloud APIs and Webhooks to powerup integrations
 Webhooks are a new feature in XMCloud and Sitecore 10.3 so it will be cool to see some examples of these in action. Daniela Militaru
Katharina Luger
Women in Sitecore Roundtable
3:15 pm – 4:00 pm
Sebastian Winslow
Jesper Balle
Sitecore Search: Real case PoC
 Search is tricky in a Headless world so I’m looking forward to learning about potential solutions and approaches to different search. Sebastian Winter
Sitecore Components in Action

Hope everyone who’s going enjoys SUGCON and hopefully I’ll see some of you there.

Creating Preview / Draft Sites in SXA using SPE

sorcerers-stone-banner

A few weeks ago I was tasked with providing the ability for content editors to be able to have a preview (or draft) site for SXA sites when using the CM Url. The requirement was to be able to view ‘Draft’ content/versions of pages (without publishing them) for stakeholders to be able to preview them before they are published to the CD instance.

In an Traditional Sitecore setup this is pretty easy, you would just edit the site definition config in the Sitecore config with a patch file to change the database used to Master when on the CM.
For SXA this is a bit trickier as the Site definitions are dynamically built by SXAs site manager when Sitecore starts up (or the SXA Site Manager is ran again in Sitecore).

However after reading around it seems it was possible to achieve what I needed to do. I had to duplicate the existing Site Grouping definition item and change the database that it uses to Master. See an example below:

draft-site-def

I also changed the environment to ‘Draft’ and added the following Patch file on the CM only, this tells the CM that the current environment is ‘Draft’ and to use Site Definition items with that environment setting:

 <sitecore>
    <settings>
       <!-- Environment name used by cm-->
       <setting name="XA.Foundation.Multisite.Environment" value="Draft" />
    </settings>
 </sitecore>

The last thing I did is change the name of the Site Grouping definition item and the title to include the word ‘Draft’. This was to make it clearer to content editors and stakeholders that they are editing/viewing ‘Draft’ content.

This results in each SXA site having two site Site Grouping definition items; the original (pointed at the Web DB) which the CD instance will use and the new Preview/Draft site that the CM instance uses:

draft-site-structure

Automating Creating of Draft Sites with SPE

As I needed to create Draft sites for quite a few sites I wrote an SPE script to do this for me:

 

Deleting Draft Sites

Should you need to remove your draft Sites (e.g during local testing) then I wrote a script for that too:

Site Ordering

One thing I discovered is that the order of the Sites in the SXA site manager matters. SXA will return the first one it matches based on Environment and the order defined here:
/sitecore/system/Settings/Foundation/Experience Accelerator/Multisite/Management/Sites

You therefore need to ensure the Draft site is above the original site grouping in the list. You can re-order these in the SXA Site manager using the up and down arrows but I had some issues with this not taking affect so instead I moved the draft sites up the list in the field they are stored in instead. As I had a lot of sites to do this for I actually ended up writing an SPE script to move all the draft sites to the top of the list:

 

Right-Click ‘Create Draft Site’

The above scripts were really useful to get the draft sites setup for the existing sites but I also needed a way to quickly add draft sites for new SXA sites in future. I decided an nice way or doing that would be using an SPE context menu script.

right-click-create-draft-site

Here is the script, make sure you place it here: e.g: /sitecore/system/Modules/PowerShell/Script Library/{YOUR SCRIPT LIBRARY}/Content Editor/Context Menu:

Get CM Url Function:

Move Draft Site Function:

Experience Editor Notification

draft-exp-editor-message

Again in order to make it clearer to content editors and stakeholders that they are editing/viewing ‘Draft’ content I decided an Experience Editor Notification would be useful. So again I turned to SPE to do this. I’m not sure if that many people know you can do this with SPE but it’s a really simple way to it with no C# code or config required:

Note that if you are using SPE 5 on Sitecore 9.02 or 9.01 then you will likely find there is a bug in the SPE config and you need to patch it like so to move the getPageEditorNotifications to the correct section of the config:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
 <sitecore>
 <pipelines>
 <group name="ExperienceEditor" groupName="ExperienceEditor">
 <pipelines>
 <!--patch to add SPE 5.0 PageEditorNotifications in correct config group-->
 <getPageEditorNotifications>
 <processor type="Cognifide.PowerShell.VersionSpecific.Integrations.Pipelines.PageEditorNotificationScript, Cognifide.PowerShell.VersionSpecific"/>
 </getPageEditorNotifications>
 </pipelines>
 </group>
 </pipelines>
 </sitecore>
</configuration>

The end result of this work is that I now had Draft site functionality setup for all required sites, quick ways to add new draft sites as needed and it is clear to content editors that the draft site content is in use on the CM.

Dedicated Preview Instance considerations

Obviously for some scenarios you might have wanted to have a dedicated Preview/Draft instance with an specific url such as www.preview-mysite.com and publish to an ‘Preview’ database publication target. The config for the environment and hostname would then be used here instead. However for our purposes using the CM url is fine as the access is restricted and cuts down on costs of an additional instance in Azure.

Useful Links

As usual there were some really useful blog posts which helped point me in the right direction with this and figure out what I needed to do:

https://ggullentops.blogspot.com/2019/04/publishing-target-in-sitecore-sxa.html

https://getfishtank.ca/blog/setting-up-multiple-hosts-sitecore-sxa-site

https://blog.senktas.net/2019/10/20/sitecore-powershell-extensions-integration-with-experience-editor/

 

Hopefully others will find this information and the scripts I’ve written for setting up Preview sites in SXA useful in future.

p.s – if you wondering why the Harry Potter image; well apparently it took J. K. Rowling 13 attempts to finally get someone to publish the Philosopher’s Stone so it nearly remained in Draft and never published!

My Sitecore Symposium 2020 Agenda

lonely-road-3

It’s Sitecore Symposium this week and It’s going to be a bit different this year. I attend Symposium in the USA most years and I’d usually be boarding a plane about now, this year (if it wasn’t for COVID-19) I’d be heading to Chicago. Instead the entire conference is Digital.

This means unfortunately I won’t get to catch-up with others in the Sitecore Community in person or get to do a bit of travelling which is a shame.
However there are some benefits though (other than it being a whole lot cheaper) which is that there a a lot of on-demand and breakout sessions which (if you purchase an all-access pass like I have) I believe you can access after the event. So unlike in the real-world you can catch up on sessions you’ve missed, in-light of this I’ve sometimes selected more than one clashing session.
An additional benefit I guess you’ll probably not have a hangover for those early Morning sessions either :-).

Anyway I’m looking forward to Sym and thought I’d share the sessions I’m playing on attending and why. You can find the full agenda here.

  Day 1 – Tue 27th


» 10:20 – 10:50am (CDT) – Sitecore business update with CEO Steve Tzikakis

Steve Tzikakis – Chief Executive Officer – Sitecore

– This is the first opportunity to listen to Sitecore’s now CEO. I’m looking forward to hearing what Steve has to say and his plans for the future.


» 11:45am – 12:45pm (CDT) – Influencer Roundtable with Microsoft: Integrating AI into your existing digital marketing strategy

Colin Wright – Director Strategy – Microsoft
Jonathan Weindel – Advanced Analytics Manager – Microsoft
Wina Wichienwidhtaya – MarTech Strategist – Microsoft Corporation

– I’m interested in seeing how other Sitecore customers are using AI and gaining further insights from Microsoft.


» 12:50 – 1:15pm (CDT) – Premium general session: The Road to Product Innovation

Desta Price – EVP Product Management – Sitecore
Tom De Ridder – Chief Technology Officer – Sitecore

– This is an all-access pass session and looks like it will give some insight into Sitecore’s plans for the future as well as the latest innovation’s in Sitecore 10. 


» 1:45 – 2:15pm (CDT) – Serialize your way to success

Charlie Turano – Product Manager – Sitecore

– I’ve installed Sitecore 10 and experimented with the new Seralization features but I’m looking forward to learning more about it.

OR

» 1:45 – 2:15pm (CDT) – 2020 and beyond: Integrating Sitecore with emerging technologies to wow your customers
Brian Henderson – Sitecore Architect – XCentium
Julia Gavrilova – Technical Director – XCentium

– Using Sitecore to power and Personalise 3D and AR technology sounds pretty cool to me so I’m intrigued to find out more.


» 2:20—2:50pm (CDT) – Real-time personalization in a true omnichannel world using JSS and Azure

Bas Lijten – Principal Architect – Achmea

– This sounds like an interesting approach and use of some of Sitecore’s newer features to fulfil some complex requirements.


» 3:10 – 3:40pm (CDT) – Containers & AKS: Taking Sitecore 10 to the next level

Bart Plasmeijer – Senior Software Architect – Sitecore
Rob Earlam – Technical Evangelist – Sitecore

– I’ve played around with the Docker examples for Sitecore 10 and have been impressed how quick and easy it is to spin up a development instance with Docker. I’m looking forward to hearing more and seeing how AKS can be used with Sitecore.

OR

» 3:10 – 3:40pm (CDT) – Content as a Service: A preview
Alistair Deneys – System Architect – Sitecore
Andy Cohen – System Architect – Sitecore

– I’m always keen to learn more about new Sitecore features so this session regarding Content as a Service (CaaS) should be interesting.

OR

» 3:10 – 3:40pm (CDT) – Insufficient facts always invite danger, Captain!
Neil Killen – Technical Director – Valtech

– Monitoring and performance of Containerized environments is all new to me so I’m looking forward to learning more about this.

  DAY 2 – Wed 28th


» 12:05 – 12:35pm (CDT) – Data privacy and Sitecore

Rob Habraken – CTO – We are you

– GDPR is tricky subject so I’m going to drop in on this session to make sure I understand all the touch-points to consider in Sitecore for the right to be forgotten.


» 12:40 – 1:10pm (CDT) – Sitecore AI: Auto Personalization Standard for Sitecore 10

Marcos Guimaraes – VP, Chief Data Scientist – Sitecore
Nancy Lee  – Principal Product Manager – Sitecore

– I’ve not really seen the Auto Personalisation in Sitecore 10 in action so I’m interested in learning more about this.

OR

» 12:40—1:10pm (CDT) – How to develop with the new ASP.NET Core rendering SDK
Nick Wesselman – PM, Developer Experience – Sitecore
Oleg Jytnik – Technical Lead – Sitecore

– I’ve been experimenting with the new ASP.NET Core rending SDK using the examples on https://doc.sitecore.com, but I’ve got a lot to learn still so I’m really looking forward to this session.

~ At this juncture I might do some yoga…no your right I probably won’t. I’ll likely just go and see if we’ve got any more biscuits in the cupboard instead. I’m just checking you’re still awake :-). ~

» 1.30 – 2.00PM (CDT) – Content Orchestration: A symphony between Content HUB and Sitecore XP using Content Hub Connector
Akshay Sura – Lead Platform Architect – Konabos Consulting
Sumith Damodaran – Sr. Product Manager – Sitecore

– Fellow MVP Akshay has been doing  a lot with Content Hub over the past few months so it will be great to learn more about Content Hub and Content Hub Connector.

OR

» 1:30—2:00pm (CDT) – Choosing the right option for building your Helix solutions
Shelley Benhoff – Lead Developer and Author – The Berndt Group

– Shelly has written some great Pluralsight courses so this session is bound to be informative.

» 2:45—3:45pm (CDT) – Failing Up: How to Take Risks, Aim Higher, and Never Stop Learning / Closing remarks with Paige
Leslie Odom Jr – Tony and Grammy Award-Winning Performer

Paige O’Neill – CMO – Sitecore

– The closing session of Symposium should be interesting and entertaining too.

On Demand

On top of all the live content there is a heap of On-Demand content too, I’m planning on watching some additional sessions on SOLR, SXA, Kubernetes, Content Hub, JSS, Upgrades and there are loads more for you to watch besides these.

It’s just as well I’ve taken 3 days off work to learn all of this. If you haven’t got a ticket yet then I think you can still grab one here. You’ll be missing out on a lot of interesting stuff if you don’t.

Creating Microsites In Sitecore without SXA

dynamic-sites-globe2

I’ve not used SXA in anger but have heard good things about it. Unfortunately due to licencing and timeframes it was not an option for me on a recent project where I was required to recommend and deliver an mechanism for quickly creating Microsites in Sitecore.

TLDR: If SXA is not an option then Dynamic Sites Manager might be a good alternative for you.

This meant I had 3 options:

1) Manual Configuration in the Sitecore Config
2) Use a Sitecore Microsite Module (such as the Multiple Sites Manager)
3) Write something custom to support adding Microsites dynamically

Manual Config wasn’t really an option as I knew that we had a number of Microsites to add and having a more flexible approach with less work and maintenance involved was important. I also didn’t want to write something custom as I knew this would be a time-sink involving solving problems other people have already had to with one of the Sitecore Modules available.

Dynamic Sites Manager To The Rescue

After a fair amount of research and experimentation I decided upon an lesser known Module called Dynamic Sites Manager built by Pete Navarra. As we are using Sitecore 8.2 I decided to use this specific version (1.9.1) from Github.
This happens to be the most recent release of the Module. It does work with Sitecore 9.0 too.

Pete has written one or two posts on the Dynamic Sites Manager but during the setup and of the module and configuration of the various sites I learned some useful tips I thought I’d share. On the project I’m currently working on we have two Sites that are live using the Dynamic Sites Module so far and both are functioning well.
Pete was also really helpful on Slack fielding all my questions so I wanted to return the favour and blog about it.

Reasons I chose Dynamic Sites Manager

  • It’s been written for performance, it uses the Site Provider Pattern and doesn’t just hook into the HttpBeginRequest pipeline (like the Multiple Sites Manager does) – this can cause caching issues
  • Microsites an be added and (most) configuration implemented purely within Sitecore
  • Each Microsite has a number of settings that mimic native Sitecore config for a Site
  • Content for the Microsites can be created wherever you wish
  • Roles can be configured for Microsite content as normal in Sitecore
  • Existing Layouts, Components and functionality already created in Sitecore can be used in Microsites
  • The module works with Sitecore 8.2, has been around for a few years and has had 8 releases so is quite mature.
  • I tested the module with Sitecore 9.0 today and it works so when we upgrade to 9.x It should continue to work correctly.
  • The code is open source on Github so we can fork it and change anything if we need to
  • It has been battle-tested on large sites with 100s of Microsites

Installing the Module

The first step is to download and install the Module. You can download it from the Market Place. The direct link for 1.9.1 is here.

Install the module using the package installation wizard as normal.

dynamic-sites-1.9-install-2

Once the module installation has completed open the DynamicSites.config.example config file  here: /App_Config/Includes/X.SharedSourceModules and rename  to DynamicSites.config.

dynamic-sites-1.9-install-3

 

 

 

 

 

This will enable the module and configure the default settings for the module, as defined at the top of the file this config file adds:

1) Event Handlers to Update Custom Chosen Templates with Dynamic Sites Base Template
2) Site Providers for both Dynamic Sites as well as a Switcher Provider.
3) Dyanamic Site Default Settings. All Dynamic Sites will inherit from these default properties.
4) 4 Sitecore Settings.

I’d recommend leaving this as it is for now and coming back to tweak settings if you need to.

Module Configuration

The next steps are to configure the module settings within Sitecore and create your first Dynamic Site.

You can set some general settings if you wish for the module here: /sitecore/System/Modules/Dynamic Sites/Dynamic Site Settings. You will probably find you can just leave most of the default settings here ‘as is’.

One thing you may want to consider doing is updating the Site Definition Template. The dropdown highlighted below allows you to set a custom template as the Site Definition template. This adds a Dynamic Site Definition Base template to the item and allows site configuration to occur on the item level:

dynamic-sites-1.9-install-4

This will likely be if you wish to customise the configuration settings in future.

For now you can just continue with using the Site Definition Template that ships out of the box with the Module.

Creating A Dynamic Site

For this example I’m going to do this on my local machine but if this was on another environment the process would be very similar. I have a site called ‘Demo Site 1’ which I’ll use for this example:

dynamic-sites-1.9-install-6

  1. Go to: /sitecore/system/Modules/Dynamic Sites/Sites
  2. Right click on the folder to Insert a new Dynamic Site Definition (I called mine ‘Demo Site 1’)
  3. Configure the Key Settings for your Site such as:
    – Hostname – the url which will be used for your Site
    Home Item – the Home item of your site (In my case: /sitecore/content/Demo Site 1)
    Port – this will be (I hope!) 443 for Live but locally you may be using Port 80 perhaps. If you using a self signed cert locally you can use 443 locally too.
    Database – this will likely be web for local testing (depending on if you want to view the published or un-published content)dynamic-sites-1.9-install-7

    Dynamic Site Custom Properties – you can over-ride any settings you wish that are usually on the <site> node in the Sitecore config here or you can add any custom properties you need to support. For example I had a custom cdn url property that I added which you can see below.dynamic-sites-1.9-install-8
  4. Add your binding in IIS to your Sitecore site, this is my local Sitecore 8.2 u7 instance:
    dynamic-sites-1.9-install-9
  5. Add a host file entry to the Site (on another environment this would obviously be handled with a DNS).
  6. Ensure your Website Homepage is in it’s final workflow step and Published. If all is well you should then see the webpage if you visit it in your browser (e.g: http://demosite1.local)

dynamic-sites-1.9-install-5

Supporting Preview / Published Sites

Our content editors wanted to be able to preview their content on the CM (Master) before publishing to CD (Web). I wasn’t sure on how best to handle this scenario so I reached out to Pete on Slack and he was really Helpful.

It turns out the best way to set this up is to create two Site Definition items, one for CM and one for CD. Both sites should have the Home Item set as the same (most other settings will be the same also).

The CM Site Definition item needs to be at the top of the list (above the CD Site Definition item – so it resolves first on the CM) and be set as un-publishable. Note I’ve pre-fixed my Site Definitions with CM and CD to easily identify them:

dynamic-sites-1.9-install-11

 

You then need to configure a different hostname for the CM Site (e.g: master.demosite1.local). If all is well you should be able to view the master site and see differences in the Master content:

dynamic-sites-1.9-install-12

Other Considerations

WFFM

One of the stumbling blocks I came across is that when configuring the default Web Forms For Marketeers form folder I got an error as it couldn’t find an ID. The issue was that I was including the brackets within the config in the Site Definition. Therefore ensure you remove the brackets like so:

dynamic-wffm

Unicorn

If you use Unicorn to sync your Sitecore items across environments. You may wish to sync your Dynamic sites and content via Uncorn. I settled on 2 different configurations to handle this.

A new items only configuration to deploy the Main Site Home Item only one like so (this is redacted):

<configuration name="Dynamic Sites New Items Only" description="Unicorn Config for new Dynamic sites items only (Existing items, deleted items or changed items are ignored)">
 <evaluator type="Unicorn.Evaluators.NewItemOnlyEvaluator, Unicorn" singleInstance="true"/>
 <dataProviderConfiguration enableTransparentSync="false" />
 <predicate>
 <include name="DynamicSitesNewItemsOnlyDemoSite1" database="master" path="/sitecore/content/Demo Site 1/Home">
 <exclude children="true"/>
 </include>
 </predicate>
 <dataProviderConfiguration enableTransparentSync="false" />
 <syncConfiguration updateLinkDatabase="true" updateSearchIndex="true" />
</configuration>

A main configuration to deploy component content folders and setting items to the site likes so (this is redacted):

<configuration name="DynamicSites" description="Unicorn Config for DynamicSites Items">
<predicate>
 <exclude path="/sitecore/content/Demo Site 1/Home" />
 <exclude childrenOfPath="/sitecore/content/Demo Site 1">
 <except name="Forms" includeChildren="false"/>
 <except name="Components" includeChildren="false"/>
 </exclude>
 <exclude childrenOfPath="/sitecore/content/Demo Site 1/Components/Banners" />
 <exclude childrenOfPath="/sitecore/content/Demo Site 1/Components/Promos" />
 <include name="DynamicSitesMediaFolders" database="master" path="/sitecore/media library/DynamicSites" includeChildren="true">
 <exclude childrenOfPath="/sitecore/media library/DynamicSites/Demo Site 1/Images"/>
 <exclude childrenOfPath="/sitecore/media library/DynamicSites/Demo Site 1/Files"/>
 </include>
</predicate>
<!--exclude the dynamic sites fields that will be different for each environment-->
<fieldFilter type="Rainbow.Filtering.ConfigurationFieldFilter, Rainbow">
 <exclude fieldID="{2E6EA147-39B4-48B9-B729-89DB73646518}" note="'Hostname'" key="Hostname" />
 <exclude fieldID="{671F0A96-8270-49C6-B25C-17A4A4EE5730}" note="'Port'" key="Port" />
 <exclude fieldID="{A9B6C54F-88CB-4A9F-9250-6B2B1D26B79C}" note="'Properties'" key="Properties" />
 <exclude fieldID="{E6869EFC-46EB-458E-9990-3DBF914E6F85}" note="'Database'" key="Database" />
</fieldFilter>
<dataProviderConfiguration enableTransparentSync="false" />
<syncConfiguration updateLinkDatabase="true" updateSearchIndex="true" />
</configuration>

Note the use fieldFilter usage here to exclude deployment of the environment specific fields such as the Hostname.

Caching

The caching for the Dynamic Sites module has been implemented using a custom Sitecore cache and therefore shows up in the Sitecore Cache.aspx page viewer. If you want to explore what is in the cache to debug any issues with Caching then you might want to use an tool to do so. I used this Cache Viewer SPE Module and it worked really well for seeing the cache for each Site. The cache key used is DynamicSites.SiteCache.

dynamic-cacheviewer

You should find that if you clear the cache then any settings you update should update and be reflected.

Default Context Database Issue

We had some issues serving some Dynamic Sites from the CD Server. The error we were seeing was:

ERROR An error while Initializing occurred
Exception: System.InvalidOperationException
Message: Could not find configuration node: databases/database[@id='master']
Source: Sitecore.Kernel
 at Sitecore.Configuration.DefaultFactory.GetConfigNode(String xpath, Boolean assert)
 at Sitecore.Configuration.DefaultFactory.CreateObject(String configPath, String[] parameters, Boolean assert)
 at Sitecore.Configuration.DefaultFactory.GetDatabase(String name, Boolean assert)
 at Sitecore.Configuration.DefaultFactory.GetDatabase(String name)
 at Sitecore.SharedSource.DynamicSites.Utilities.DynamicSiteSettings.get_GetCurrentDatabase()
 at Sitecore.SharedSource.DynamicSites.Utilities.DynamicSiteSettings.get_GetSettingsItem()
 at Sitecore.SharedSource.DynamicSites.Utilities.DynamicSiteSettings.get_SitesFolder()
 at Sitecore.SharedSource.DynamicSites.Utilities.DynamicSiteManager.GetDynamicSitesDictionary(Site defaultSite)
 at Sitecore.SharedSource.DynamicSites.Sites.DynamicSitesProvider.InitializeSites()
 at Sitecore.SharedSource.DynamicSites.Sites.DynamicSitesProvider.GetSites()

After some further digging into the DynamicSiteSettings class It turned out that for some reason the module was not finding the context database and so was falling back to Master in this block of code:

public static Database GetCurrentDatabase
 {
 get
 {
 return Context.ContentDatabase ?? Context.Database ?? Database.GetDatabase("master");
 }
 }

Our CD servers do not have access to the Master database so thats why the error only occurred on CD. To resolve this I branched the module and added a setting for the database fall-back instead of a hard coded ‘master’ value. This is set like so in the config:

<!-- Dynamic Sites - Fallback Current Database
 The database to fallback to when getting the current database 
 if Context.ContentDatabase & Context.Database are null
 -->
 <setting name="DynamicSites.FallbackCurrentDatabase" value="master" />

On our CD servers we set this to Pub where our published live content exists and this resolved the issue. This issue doesn’t seem to occur on an out of the box install of 8.2 u7 or 9.0 so It may be a nuance of our specific setup but if you come across if feel free to use my patched version.

Conclusion

We’ve only launched two Sites using the Dynamic Sites Manager Module so far but it’s working really well. Obviously you don’t get a bunch of pre-built components and some of the other Bells and Whistles you get with SXA but if you need  flexible, simple, well implemented, and full-featured Microsite/Dynamic Site solution which allows you to use your existing page templates and components then I can highly recommend it.

Thanks again to Pete for his hard work on this and his assistance. I’ll try not to ask him any more questions…

The Business Case & Considerations for a Sitecore 9.2 Upgrade

smoke-2551073_1920
I don’t often write Sitecore blog posts from a business perspective but I today I thought I would as I think some Sitecore customers are still on 8.x or 9.0 and are considering an upgrade to Sitecore 9.2.

With Sitecore 9.3 likely to be released later this year and mainstream support for 8.2 and below running out in December now is a good time to consider upgrading.

In this post I’m going to outline what the benefits of moving to 9.2 are and also the considerations you should make before embarking on an upgrade.

What are Benefits / Features of Sitecore 9.2?

This is usually one of the first questions that will be asked. I’m not going to keep this fairly high-level as there are many in-depth blog posts out there on Sitecore 9.1 & 9.2 features but the following should provide a succinct summary.

Sitecore 9.1 & 9.2 bring a lot of new features and there has been a big focus on splitting features and functionality out from the previous large monolithic architecture to a smaller modern micro-service based architecture:

  • Sitecore Cortex – Sitecore’s new Machine Learning Brain which can Suggested Personalisation and process and leverage customer data
  • Sitecore Identity – Single Sign On and Federated Authentication (using IdentityServer)
  • Sitecore Universal Tracker – Provides an central Analytics API to track  interactions from any device (e.g mobile apps, IoT, AR and VR)
  • Sitecore JavaScript Services (JSS) – allows development of apps using front-end frameworks such as Angular, React and Vue, using Sitecore as the source for the data (including SXA & Sitecore Forms support in 9.2).
  • Sitecore Accelerator Framework (SXA) Accessibility Improvements – SXA has been around for a couple of years and is a package or pre-built components for Sitecore allowing you to get sites up and running quicker.
  • Sitecore Host – A lean common runtime for .NET Core applications (Powers: Horizon, Universal Tracker, Sitecore Identity)
  • Helix Configuration – 9.1 shipped with some Helix configuration already setup. Helix is Sitecore’s recommended approach to building Sitecore Sites it sets out an number of overall design principles and conventions to follow.
  • Sitecore Installer Assistant (SIA) – 9.2 provides a new GUI for easily installing Sitecore in a few clicks
  • SSL offloading – 9.2 provides an SSL offloading config to Improve security and performance by shifting SSL Processing onto separate processors
  • Active Personalization Dashboard – 9.2 has a new new dashboard which provides an overview of all personalization actively occurring, providing visibility of poorly/well performing tactics to act upon.
  • Many other improvements including: Search, Content Delivery, xDB and Analytics, Sitecore Forms, EXM, SIF(2), YAML Item Serialization, Bug Fixes and performance Improvements

But We’re on Sitecore 8.2 or below, what else do I get?

Mainstream Support

If you are yet to upgrade to Sitecore 9 then you need to consider this soon as Mainstream support for 8.2 and below expires in December 2019. https://kb.sitecore.net/articles/641167
This means that whilst Sitecore will still provide security updates and fixes and endeavour to assist with product incidents they may not provide support for the following:

  • Assistance with errors or unexpected behaviour during installation or development
  • Addressing product defects as hot-fixes or patches
  • Compatibility fixes for supported technology platforms.

Therefore if you are on 8.2 or below after December this year then you may need to upgrade to resolve certain issues (depending on what the issues are).

Sitecore 9.0 Features

If you are on 8.2 or below you will also benefit from all the features released in 9.0, here are the key ones:

  • xConnect – Provides an unified API that centralises data access
  • Headless CMS support and JSS – Allows web apps to be built with React, Angular, Vue using Sitecore data
  • Rules based configuration – Configuration is now much simpler as it can be set based on the server role (e.g Content Delivery, Content Authoring)
  • Sitecore Install Framework (SIF) – SIF is a framework for installing Sitecore using automated scripts. This is how Sitecore 9 and above is now installed and it means deployments can be automated easier.
  • Sitecore Accelerator Framework (SXA) – SXA is a pre-built set of components to allow pages to be developed quicker with less development effort
  • Sitecore Forms – Sitecore 9.0 has newly designed forms to replace WFFM. These are built in a modern way and are easier to configure and customise.

Upgrade Considerations

sitecore-logo
So there are clearly some significant benefits to carrying out an upgrade to Sitecore 9.2, especially if you are on 8.2 still, as some customers are.
There are some additional requirements and considerations when moving to Sitecore 9.2 and standard upgrade considerations which need to be planned for:

  • Additional Servers / Roles – Due to changes to the architecture to split out elements of Sitecore into smaller services Sitecore 9, 9.1 and 9.2 require some additional Servers and roles. These are for xConnect, Identity Server, Cortex and processing. When you are planning resources for your upgrade this should be considered, particularly on Azure as there are quite a few additional services required.
  • Module Upgrades – Most Sitecore sites will make use of a number of Modules to extend the out of the box functionality. Some popular modules are: Web Forms for Marketers (WFFM), Url Rewrite and Sitecore Powershell Extensions (SPE). It is important to ensure that each module you are using is supported in Sitecore 9.2 and to consider time for upgrading each module as part of the upgrade process.
  • Updated Licence – Most customers will require a new licence generating when upgrading to Sitecore 9 and above. Therefore ensure you request this from your account manager in advance and that you have all features/modules you require included on your licence.
  • Active Directory module – Sitecore 9.1 & 9.2 or later does not support the Active Directory module. Sitecore uses Identity server to handle logins instead of legacy methods such as AD. Therefore if you are upgrading to 9.1 or above and use the AD module you will need to implement an integration with Active Directory from Identity Server.
  • Search – Sitecore 9 and above no longer supports Lucene so you must use SOLR or Azure Search. Lucene did not work well in distributed search scenarios so moving to SOLR or Azure Search has been recommended for a while. SSL is also required for SOLR in 9.0.
  • Code & Configuration Updates – Sitecore try and reduce breaking changes where possible but sometimes they are unavoidable, so as with all Sitecore upgrades some custom code and configuration will need to be updated to be compatible with Sitecore 9.2.
    To assist with this process Sitecore does provide an Express Migration Tool (to get to 9.0) and an Update Installation Wizard to update to 9.2. However these tools will likely only get you so far for highly customised Sitecore implementations and will likely need some manual upgrading too. Any code that needs upgrading will not be auto-upgraded by the tool. If you are on 8.2 then there are quite a few changes for analytics with xConnect. All references in Visual Studio will need updating to 9.2 also.
  • Support Patches & Hotfixes – You will likely have some hotfixes or support patches that have been applied to your solution over time. These will need analysing as part of the upgrade to understand if they are still required or not in 9.2. Many of these may have been rolled into 9.2 already.
  • Analytics Data upgrade – Part of the upgrade process involves migrating xDB data in the 8.x format to Sitecore 9.2 format. Sitecore have a tool for this: https://dev.sitecore.net/Downloads/Sitecore_xDB_Data_Migration_Tool/3x/xDB_Data_Migration_Tool_300.aspx
  • Implementation Quality – Best practice Sitecore implementations do not customise any out of the box Sitecore files and instead use patch files and extensions to customise configuration and other Sitecore functionality. Ideally the base platform should be installed ‘as is’ and the customisations layered on top to assist with upgradability. Depending on how well your implementation has been carried out will impact how easy it is to upgrade. If your implementation is not best practice then your team should take the time during the upgrade to correct this and take advantage of some of the newer and better ways of doing this.

A Note on Upgrading WFFM

sitecore-formsOften one of the key stumbling blocks for upgrading Sitecore to 9.1 or 9.2 is Web Forms For Marketers, this is because it was deprecated in Sitecore 9.1 and is also not supported in Sitecore 9.2. Sitecore 9.0.2 is the last release where WFFM can be used. Sitecore Forms has replaced it.  If customers have many forms this can be a bit daunting.

So you could just upgrade to Sitecore 9.0.2 and stop there, but you would be missing out on a lot of features and you will need to upgrade again in the near future. Thankfully there is another option, there is now a community built tool to help automate this for you and convert WFFM forms and data to Sitecore Experience Forms: https://github.com/afaniuolo/WFFM-Conversion-Tool. I have yet to use this but have heard good things about it and it is regularly updated.

 

I’ve tried to cover the key features of 9.2 and considerations for upgrading here. As you can probably see the longer you leave an upgrade the more complex it becomes as there are more changes to consider. Frequent upgrades of Sitecore should be the aim as this will reduce the time and investment needed to carry them out. Hopefully you’ll find this post useful for planning an upgrade to Sitecore 9.2 and leverage the investment you have made in the platform.

Sitecore SUGCON 2018

Estrel
I’ve just come back from SUGCON 2018 in Berlin and I think it was the best one I’ve been to yet. It was my third time attending the Sitecore User Group Conference (a conference for the Sitecore Community organised by the Sitecore Community). This year I was lucky enough to be going as a first-time MVP and would be collecting my award during the conference.

I arrived early to see a bit of Berlin on the Sunday and catch up with some friends, colleagues and other Sitecore Devs and MVPs and before I knew it it was time for SUGCON to start.

sky

It kicked off with some fancy lights and music and Peter Brinkman with the opening Keynote explaining how large SUGCON has grown since it started in 2016, there were 600 attendees this year!.

There was a lot to take in over the 1.5 days so before I forget it all I’ve summarized below some key learning’s from my two days at SUGCON 2018.

Day 1

Opening Keynote – Pieter Brinkman

welcome

    • There will be two major Sitecore releases every 6 months and (spring & fall) which will contain new features and functionality
    • Updates / Patch releases will only contain fixes and not features/breaking changes.
    • Releases will be a full delivery including code, training and documentation

Sitecore releases

Great news for all Sitecore developers and customers who have been frustrated with this in the past.

Commerce + IoT In Powerful Ways – Jason Wilkerson & Richard Seal

Next up was well known MVPs Jason Wikerson and Richard Seal who created a fictional SitecoreLand complete with wristbands to access the park to demonstrate how IoT can be used with Sitecore .

IoT

    • Previously this was only possible by building most of the functionality yourself buy it is now possible out of the box with xConnect + and IoT Hub and IoT Listener.

IoT

  • Store the least amount of data you need to achieve what you want to do for your customers.
  • With SXA, Experience Commerce, xConnect, EXM, xDB and Marketing automation you now have all the tools you need to create these kind of experiences for customers with Sitecore. Your imagination is the only limitation.

Impressive stuff and a real show-case for what’s possible with Sitecore. Speaking to Jason afterwards he said it took longer to Photoshop in the memes of Longtime MVP Jeremy Davis who got trolled hard in the talk. This wasn’t to be the only time today either :-).

Jeremy

Uber-modern Apis For Sitecore – Kam Figy

Kam has been building the CLI for JSS and underlying APIs and took us through some of these focusing heavily on GraphQL.

graph API explorer

  • GraphQL is:
    • Strongly Typed
    • Queries only the specific fields you need (no overfetching)
    • The response matches the query (so you know what you are getting)
    • Is discover-able
    • Batches queries and catches and returns errors
  • Kam demo’ed an app he’d built that used GraphQL and mimic’s the database browser in Sitecore.

jss browser

  • It’s possible to extend the GraphQL API using Query Extenders and add additional fields. These are than patched in using config.

extender

links

All-in-all some interesting stuff to experiment with here, since I’ve playing about with JSS too this is something I plan to look at in more detail.

Sitecore XDB & GDPR Applied – Rob Habraken

gdpr

Rob opened by saying this was a dull subject. That it may be but it is also a very hot topic and something many clients need to implement very soon so this was a very insightful session for me.

sitecore gdpr

  • Sitecore 9 has GDPR features out of the box and Sitecore 8.2 Update 7  will also have them.
  • 6 Steps to follow to implement GDPR With Sitecore:

IMG_1529

IMG_1532

IMG_1536

IMG_1540

IMG_1542

IMG_1548

Azure Round Table – Tamas Varga

The final session I attended was an Azure Round Table where there were some really good insights from those who have used Sitecore Azure:

Azure

  • Using the provided Azure ARM Templates is a good start but can I can be limiting as time progresses so creating your own is the way to go eventually.
  • There can be problems with CSS and JSS not being published yet when swapping between servers.
  • Testing an Azure Sitecore setup on a development environment and keeping costs down can be a challenge. MSDN provides free credits for subscribers.
  • If using Azure the advice is to move to Sitecore 9.x if you can first as that will make things much easier.

Awards, Quiz & Drinks

At the end of Day 1 I had the privilege of going on-stage and picking up my MVP award with the other 2018 MVPs. I’d seen the MVPs collect their awards in previous years but didn’t think I’d be joining them this year, I felt very proud to be sat alongside everyone. Obviously a few beers were enjoyed afterwards to celebrate.

mvps

Day 2

Sitecore Install Extensions In Action – Robert Senktas

I hadn’t heard of SIX before but having had some experience of using SIF when installing Sitecore 9 this looked interesting.

IMG_1562

  • SIX has a number of powerful features that make it superior to SIF and it support storing sensitive data in Azure Keyvault:

IMG_1564

SIX

  • An early GUI was demo’ed that runs on top of SIX and allowed an Octopus style management of the install process.

softserve

This all looks pretty cool and definitely something I’m going to look into further.

White Hat Hackers Guide To The Internet – Mikkel Ole Romer

IMG_1576

This was the most packed break-out room I saw over the two days.  Mikkel showed some simple Hacking Techniques he’d tried on a list of Sitecore Solutions and the results were quite worrying.

  • He showed us some simple hack’s he’d tried:

IMG_1577

IMG_1580

IMG_1581

  • The results of the test were a little worrying…

IMG_1582 IMG_1584 IMG_1585This session was a bit of an eye opener to say the least. Check your Sitecore installs configuration and patches folks!

 Sitecore & The Blockchain – Jason Bert

Since I have some Bitcoin & Ripple and I’m interested in Crypto and the application of Blockchain technology this seemed like a talk I wouldn’t want to miss.

blockchain

  • Jason used a number of technologies to store the details of a ticket purchase on the Etherium Blockchain.

IMG_1594

IMG_1595

  • Jason used a local Etherium Blockchain testing tool called Ganache but in the real-world this could be slow and potentially costly.

IMG_1596

This was an interesting talk that certainly makes you think about how these technologies could be used in future.

From Forms to Riches – Kamruz Jaman & Mike Reynolds

IMG_1598

Having talked to Kam a bit about what he was going to discuss I was looking forward to a bit of a deep-dive into the new Sitecore 9 forms module and thats exactly what we got.

IMG_1600

  • The metrics stuff and interface looks pretty cool.

IMG_1602

IMG_1605 IMG_1606 IMG_1607

  • We were also shown how to create a custom field and data encryption was discussed.
  • But there is some functionality missing as it’s an first release. If you need to you could build some of this yourself.

IMG_1617

Latest Goodnesss JSS – Alex Shyba & Adam Weber

Having presented a talk on JSS at the Sitecore Sessions in Manchester recently I had a good idea about most of this talk but there was still some really great stuff to see and hear. I got to speak to Alex and Adam in person too and they were really helpful.

jss

IMG_1624

IMG_1625

Rendering level JavaScript was what I was really interested in seeing. This is JSS Components running along-side MVC ones in the same page!.

IMG_1629

It was really cool to see this in action. I’ll be trying this out as soon as I get chance.

IMG_1631

IMG_1633

IMG_1637

IMG_1640

Time to go home

After a few words of thanks to the organisers and attendees for an fantastic SUGCON it was time to head home….After a few more drinks of course.

IMG_1642

What did I get out of SUGCON?

This year I was determined to do more networking and spend time talking to people in the Sitecore Community who I’ve spoke to on-line but never/rarely met. I certainly learnt a great deal from the sessions too but getting to chat to fellow MVPs, Developers, Sitecore Employees who I’ve known online for sometime but not met was my favorite takeaway from the past couple of days. If you didn’t make it this year and are thinking of going next year then I’d highly recommend you get your tickets booked for SUGCON 2019 in London on the 4th & 5th of April. You won’t regret it.

Sitecore Symposium 2016 – Day 1

Sitecore Symposium is an 2 day Conference for Sitecore Users, Developers, Partners, MVPs and just about anyone else who works with Sitecore.

This year it was in New Orleans and I was lucky enough to be able to come out for a few extra days to Explore NOLA and I can highly recommend it, a great city with some insanely good food, interesting history and friendly people.

img_9704

Day 1

On day One I was to learn a lot about the improvements and new features in Sitecore 8.2 including SXA, Sitecore Azure, Path Analyser and much more.

Opening Sessions

The opening session was kicked off in New Orleans style with an big Jazz band which certainly woke me up after the early start.

Interesting it was comedian Jake Johannsen who opened up and got us all in the mood before handing over to Micheal to kick off the first keynote.

img_9489

Micheal talked about empowering Physical and Digital experiences for customers and bought various users of Sitecore onstage to discuss how they are using Sitecore. Danone discussed the personalisation that they have done on their Baby early life platform for mothers and how they have used Sitecore to power this. It was really cool to see someone leveraging all the personalisation, profiling and automation features. Danone have seen an 800% uplift in sales from this. Their tips were: Build data first, start now and don’t wait for the tech to all be there to do it.

img_9492

One of the most interesting things shown was Sitecore Experience Accelerator (SXA) which allows you to create a new site in Sitecore, Wireframe it, Add Content, Export the wire frame and import a theme for it. It is Responsive out of the box and could be a really quick way to stand-up a Sitecore site quickly. I would learn more on this later.

Micheal announced that Sitecore has now built commerce in out of the box and it is fully integrated and supports personalisation. This is great news for those with Commerce aspects to their Sitecore sites.

Next up was Jason Silva who is a Technologist & Futurist. He was very engaging and had some interesting ideas about the future of Nueroscience and Nano Technology, ‘Hacking Life Itself’ and how Tech evolves exponentially. He made me re-think the barriers between tech and science and ‘Playing God’ stating that ‘There is no duality between nature and technology, they are 1 of the same’.

img_9505

Developer Keynote

Lars Nielsen took to the stage to share some information on Sitecores product strategy. He talked about xConnect and oData which are coming soon and will provide much better APIs for working with data in Sitecore. He then discussed Express Migration Tool which allows you to go from Sitecore 7.2 to Sitecore 8.2 in an automated manner.

img_9511

He touched on the NuGet feed that is now available for Sitecore, I think this is the thing most developers have been waiting a long time for (I saw a whole lot of Tweets about it when it was released a few weeks ago). The Official Sitecore Nuget can be found here: https://sitecore.myget.org/gallery/sc-packages.

img_9509

Lars introduced Antony Hook who talked about how Sitecore manages new feature requests using ProdPad and the ways in which these requests get to the Sitecore product team. Great to hear they are opening up user voice to non MVPs https://sitecore.uservoice.com/ and about the new Stack Exchange http://sitecore.stackexchange.com that is nearly out of Beta.

img_9524

img_9531

One things for sure Sitecore’s Community is huge and growing every day, just look at the stats above!

We also heard about Helix (the new name for the the design principles that underpin Habitat) http://helix.sitecore.net/. More on this later.

img_9518

We also saw a quick overview of Sitecore Path Analyser which looks great, I watched a demo of this by the Sitecore Product team in the Partner Pavilion and was impressed by the UI and functionality it provides.

img_9494

 

img_9560

Azure Sessions

It was the time to attend the first of the developer sessions and I chose two on Azure since this is something I’ve been looking at recently.

img_9535

The first was Sitecore in The Cloud: Architecting in AWS vs Azure where Peter Petley shared some info on his recommendations for deploying Sitecore to the Cloud. He talked about the performance of AWS vs Azure and I was surprised to learn that Azure performs better in general.

img_9539

He also talked about some of the new features for Azure that will be supported in Sitecore 8.2.1, more on this later.

img_9540

img_9543

One of the key takeaways here was the Paas doesn’t really work properly (there are reliability issues with some modules etc) so Iaas is still the way to go. Redis Cache was also recommended due to it’s great performance.

img_9548

 

img_9549

The above slides are a nice little summary of which platform wins out.

Next up was Ciaran McAuliffe’s session: Better Together: Sitecore on Azure. He dove into the Sitecore 8.2.1 Azure dashboard and showed us the power of App insights with things like Sitecore Logs, APV Map, Server Responses and Rules.

img_9553

Ciaran explained how Azure search is used instead of Lucene and that for cost and performance reasons you should only setup the indexes you need and use (not all Sitecore indexes in the configs).

Sitecore 8.2.1 comes with Data Packs out of the box that will pre-configure Azure for you, there is no need to use the Sitecore Azure Module anymore – it is being phased out. There will be Data Packs for CD and CA servers and everything will be setup for using the web deploy engine. The automation scripts are JSON based and ARM Templates will be provided xDB, XP etc to build out environments and the resources required as a base level for each.

img_9555

There are parameters files that go along with the ARM Templates that define the various variables, essentially 2 JSON files and an Powershell script is all that is needed to deploy Sitecore to Azure.

img_9554

We were shown the different plans that can be used for the various services required to run Sitecore on Azure he also discussed how Sitecore are also working on GeoLocation in Azure and using Slots to allow for environments to be replicated easily (e.g Staging and Production).

This all seems like a vast improvement to the current Sitecore Azure offering and should greatly simplify the process. It should be available from January 2017 so well worth waiting for if your looking to move to Azure soon by the looks of things.

SXA – Sitecore Experience Excellerator

After a spot of (excellent New Orleans style) Lunch I went to see Kerns talk on SXA – Sitecores new offering to get you a Sitecore site up and running very quickly. I’d heard a lot about this and it sounded very interesting so was keen to find out more. It is installed as a separate package in Sitecore . It is installed as a separate additional package in Sitecore with an associated costs a percentage of the Sitecore license.

img_9564

SXA allows you to create a new Site from within the Sitecore Content Editor Interface (nice). Sites need to be created within a tenant – a business unit with different visitors but which exists within the Same Sitecore instance. Tenants are created first (again within the CE).

Once you’ve created a site you will see it has created a folder structure that follows the Helix principles (from Habitat) so you will see familiar folders here such as foundation and feature.

img_9591

Kern then showed us how pages can be quickly put together using page designs and partial designs and 70+ pre-built components.Standard values are no relied on that much, instead XML is layered to create the pages and dynamic placeholders are available out of the box. The pages built will not have a design, they will look like wireframes, this is intentional.

img_9567

Kern then showed us how the wireframe layout can be easily exported using a button in the SXA toobar, then the zip generated can be provided to an front-end team or 3rd party to style before it is imported back in. Kern demonstrated this by quickly importing a pre-made theme and it automatically styled all of the pages and components. Impressive stuff.

img_9578

We were then shown a bit more detail on how these themes are created. Essentially it uses the 960 grid system so supports mobile out of the box, Bootstrap and Foundation are not currently supported. The themes are made up of individual CSS files, Images and JavaScript but optomised versions of these are served from the Site. Developers can add addtiional classes to the HTML when theming but can not change the structure of the HTML.

img_9579

Kern mentioned a few restrictions around using SXA, all data sources must use Items to us the standard components provided with SXA. However it is possible to build a standard component and use it within a SXA site. It does need to inherit from special SXA specific rendering classes to work.

img_9586

Deployment of a SXA site (assuming no customisations) is just a simple case of publishing the Site. All all this seems a great way to standup a Sitecore site quickly and with limited investment in development. It is perhaps though limited to Sites without the need for medium to high customisation. It will be interesting to see how SXA improves over time as it is something Sitecore are going to continue investing in.

It was now time for me to go and enjoy the beer in the Partner Pavilion and meet a few new people. I was already looking forward to Day 2.