The Digital Transformation Conference held in Las Vegas from 8th – 11th November 2015 is done and dusted, jet lag has subsided and it’s time to get back to work.
Here are 5 of the main things I took away from the event as a Developer…
One of the most interesting things I was looking to see at Ascend ’15 was the new Forms builder that is coming to EPiServer (released last week in Beta). A couple of our Developers had gotten a sneak peek of this when they attended the London Ascend event on the 27th October and had come back very excited about the feature.
Cleverly named, “New EPiServer Forms”, the Forms Add-on is a direct replacement for the EPiServer XForms module. Although XForms has/had its place in EPiServer it was always limited in what you could do with it. If you or your customer would like the ability to drop-in a custom form, whether it be a simple contact form or to allow a user to supply details to enter a competition, this was pretty much as far as you could take it, and XForms was more than suitable for this requirement. The limitations being: lack of support for custom validation (beyond the basic: mandatory, email, numeric checks etc.), unable to chain fields (i.e. if you choose this, then from prompt for this etc.), unable to allow file upload, unable to create multi-step wizard style input form and integrating with 3rd party systems (out of the box) not altogether straight forward.
To overcome any of the limitations mentioned above we have always entered custom form build mode, which can take much developer time and testing to create a good looking form that will match customer requirements.
The New EPiServer Forms is block based, meaning it feels familiar to the end-user who may already know their way around EPiServer when creating and re-using blocks. The field inputs are drag and drop making it nice and simple for the editor. Some new input fields worth mentioning are File upload, Hidden Visitor Profile and Captcha.
The forms can be created as Multi-Step (i.e. Form Step), therefore, should you have an especially long form you can split it up for your user.
Out-of-the box, each field can be configured by the editor to the usual expected validation checks, but you can now also drop-in a regular expression! (Obviously writing a regular expression will be beyond the average Joe, but us developers can help create these and share with our customers).
Jeff Wallace (host of the lab) confirmed that with some coding the fields could be pre-populated from a data source i.e. you could pre-populate some fields in the event of a form edit page. Also, custom validation can be set up so you can do an Ajax call to perform some server-side checking i.e. validate if the data input exists in some database somewhere.
The forms can be tailored so that, should the user choose a specific answer from a radio button or drop-down list you can then present them with a different set of questions. Alternatively, you can extend using personalisation e.g. for users who are on a mobile device in central London present them with a personalised set of questions. This is awesome.
Lastly, and probably the bit that could require a little work for us developers, is the ability to hook into events so that the data the form captures can be transmitted to a 3rd party system!
With New Forms you also get for free the data captured and stored to the DDS and allow your website editors/admins to jump in and view from the EPiServer dashboard.
Form Elements available for drag and drop
Here’s a nice write up to the EPiServer “Fall 2015” release.
This includes the “Projects Feature” that enables editors to stage the publishing of multiple pages at the one time (a use case of this might be the Christmas Campaign that your customer’s web editors have been busy creating). In and around the projects feature the editors can share some dialogue using the comments section, and receive notifications when certain conditions are met.
Much of our development with content in EPiServer has been restricted to using the API from the EPi web application. But what if you wanted to grab a list of pages, create a page or update a page from another client? How can you do this?
In 2014, EPiServer added a ServiceAPI to retrieve and manage data from an EPiServer implementation, mainly to retrieve data to and from the Blob folders.
Allan Thraen (EPiServer Product Manager and EMVP) gave a great lab on his Service API Extensions module that builds on the Service API. The expansion pack adds a ContentAPI and ContentTypeAPI extension that gives you access to CRUD operations on IContent as well as to fetch metadata on the Content Types. Therefore giving the developer access to creating, updating and deleting content within your EPiServer CMS solution.
Allan discussed how you may wish to use the ServiceAPI from a Windows Client, iPhone/Android App or data migration tool (import/export).
The lab demo finished up where Allan gave a quick demo of a very nice Console App he had built, “ECopy” (presumed to be a tool to assist with migration projects from Ektron to EPiServer). The purpose of this utility being to allow you to import or export data from the EPiServer blob folder e.g.
ECopy <Folder ID> <destination file path>
The above command line example exported all media from the folder ID specified in EPiServer and dumped it out to the destination file path.
ECopy <source file path> <Folder ID>
The above command line example went the other direction, therefore the media that lived in the source file path was imported into EPiServer and stored in the specified folder ID.
Here’s some info on setting up the Service API, with the pre-requisite to calling the API being to generate the token:
Worth mentioning here was a nice presentation by Jon Price from the Michigan based C2 Group, where he gave a demo of a simple Single Page Application (SPA) to consume EPiServer data. The SPA page uses WebAPI’s to grab some data from EPiServer (i.e. GetChildren below page X), with AngularJS used to talk to the API’s and render the data. Jon has kindly shared hiscode for the Demo.
One of the most off-the-wall workshops was the “Codemania Interactive Hackathon for Top Notch EPiServer Developers”. The presentation started out with a quick demo which looked like it had generated an exception, but on closer inspection the workshop table of contents was cleverly included in a .Net Stack Trace. With the in-joke being that you should always check out the Stack Trace if you get a .Net Exception.
The guys gave a demo of a “History Slider” that showed how the CMS Editor could access a slider control when editing a page inside EPiServer. As the slider was adjusted the version of the page would refresh, nice way to go back in time.
Has your customer ever had a requirement to enable them to view their EPiServer page rendered as it would in the old school Green Screen Terminals? No, maybe not. But who cares, we were entertained with a demo showing how the guys had created a custom render to display an EPi page in terminal mode, complete with rendering images as ASCII. As if there was any doubt that the images were indeed rendered in ASCII, we were given a demo where a head shot photo was added to the page and appropriately rendered green screen style. Very nerdy, but I like it.
Zapier is something that I have never used before, but essentially it is a tool that allows you to hook up two systems together by creating events, so that if something happens in system A, an event can happen in system B (I am probably selling it short, but that is the premise) – using Triggers and Actions.
The Demo was to show how Zapier could be used as the glue between Twitter and EPiServer, so that if a tweet with a specific hashtag turns up, the tweet gets magically inserted as a page in EPiServer. Awesome. The reverse of that could also be setup so that if an event happens in EPiServer i.e. a new blog page is published, this page could be sent to Evernote (as was briefly discussed on the day), or broadcast to a social channel etc.
The pièce de résistance of the Codemania Workshop was the demo to show how EPiServer could be speech enabled to receive verbal commands. Speaking into a mic our host was able to call out commands such as:
EPiServer edit main body
(followed by the content you wish to input to the main body)
Culminating in the command for:
Made me think of this scene from Star Trek IV: The Voyage Home:
One of the great things about the Ascend ’15 event was meeting, and attending a number of presentations, hosted by the EPiServer MVP’s (Most Valued Professional’s).
Alexander Haneng, COO from Geta, has done a nice write up of what it takes to become an MVP, basically all about being an ambassador for the EPiServer brand and giving back to the developer community.
Hopefully this is something that some of us devs here at Engage can aspire towards in the near future.
NOTE: Watch this space for some really neat stuff that we are doing that could be contributed back to the Epi community…..
Lastly, even though this is technically not technical I’m including here as I (as with everyone else in the audience) was blown away by Erik Wahl’s keynote - Unthink: Rediscover your Creative Genius. It was a reminder to us all that if you are confined to “drawing between the lines” you are limiting yourself to the possibilities of innovation, regardless of your professional field.
Erik came on stage to the John Lennon song Imagine, and proceeded to paint (2 handed) a portrait of the man himself (check it out here on YouTube) amazingly the painting only taking the duration of the song to complete.
The audience was then asked for a show of hands to the simple question “Who can draw?” Unsurprisingly there weren’t very many brave souls in the audience. The speaker then concluded that if you were to visit a kid’s pre-school and ask the same question the response would be unanimous – we can all draw. So at what point in a person’s life does creativity stop? Or does it?
Erik was saying he is a fan of bringing crayons to a meeting for notes instead of a pen, as weirdly creative things start to happen. Could this be something to do with Erik’s other statement about the smell of crayons being one of the most recognisable smells in the world, and that studies have shown that sniffing a crayon can reduce one’s blood pressure by 10% (don’t laugh).
Before finishing up his key note Erik painted two more canvases (the Statue of Liberty and Albert Einstein), the last of those most impressively being painted whilst the canvas was upside down! With the message being the Einstein quote of:
“Imagination is more important than knowledge”