Sitecore MVP Summit and Symposium Learnings

Last week, ~30 HI folks were part of Sitecore MVP Summit and Sitecore Symposium. Which is obvious as :

https://i1.wp.com/www.horizontalintegration.com/-/media/hi-landing-pages/sitecore-symposium-landing-page/symposium_landing_hero.jpg

I was also one of that lucky fellow. It was a great event. And I shared my notes with public on my blog : https://sitecorebasics.wordpress.com/2016/09/19/sitecore-mvp-summit-and-symposium-basics-from-the-field/

So, Have a look at it. If you would like to know what new things are coming up in Sitecore world!

Thank you HI Team for letting us be part of such an awesome event!

Advertisements

HI’s Clutch Performance

160125_Devconference-009.png

Imagine our surprise when business analyst/research company Clutch posted a rundown of client feedback regarding Horizontal Integration. It can be scary to know people are talking about you behind your back, but we dove into the detailed analysis with confidence. Here are some excerpts from the reviews that we are particularly fond of.

One of the companies interviewed is a global healthcare company that engaged with Horizontal Integration to tackle a large custom web development project. In response to Clutch’s question, “How do you think Horizontal Integration performed on the project?” the client answered:

There’s a very high bar to begin with, yet Horizontal Integration is one of my top two partners I’ve ever had the pleasure of working with. They bring more to the table than your run of the mill solution partner. They’re not just order takers. They bring extensive acumen and awareness of best practices, of strategy, of business, and of technology, to the forefront.

They’re also very forthright. They don’t nickel and dime you. They have always hit their timelines. If we’ve missed a deadline, it’s because we have done something. There are times that they hop on calls with systems that we’re integrating with merely to share their expertise. It’s not that they’re going to benefit from it and be able to charge us. They look at partnerships holistically rather than one-off transactions. I thoroughly enjoy working with them.

The second company interviewed is a large hearing aid manufacturer that sought to consolidate their many web properties onto a single Sitecore CMS instance. They were asked, “When working with Horizontal Integration, is there anything you would consider unique or special about them compared to some of their competitors?” The client responded:

I would say as a group, they are incredibly accountable. I’ve worked in the interactive world and digital space for a long time. They do what they say they’re going to do. They deliver. They will do absolutely whatever it takes without nickel and diming you to ensure your success. If we ran into a roadblock or if the project took a slight turn, they were very accommodating. They’re extremely accountable. They’re certainly not the least expensive in town, but they’re also not the most expensive. When you look at our investment with them compared to spinning our wheels with other partners in the past, it’s a relationship that we will absolutely continue to maintain.

we_deliver_blue_large
Both clients supplied numbers that quantified our success. The first noted that site traffic increased by 10 times. “It would be easy to say we increased 10 times if we only had 100 visitors,” they said, “but we’re talking about going from a million users to 10 million users.” The other client couldn’t be as specific, but they had this to say: “I can tell you that engagement with the site is up considerably. We have tested the site through focus groups and through third parties. We’ve received great user feedback at this point… When we launched[,] we saw a dramatic increase from the prior site in terms of people coming in, filling out a form, and requesting more information.”

We couldn’t ask for nicer compliments.

But don’t take our word for it. Read the whole thing here.

Sitecore MVC – Multiple Forms

With Sitecore, forms can be presented to the page as either a View Rendering or a Controller Rendering. This article will focus on forms in Controller Renderings.

Sitecore MVC renders the page with different renderings, potentially including multiple controller renderings. In ‘pure’ ASP.Net MVC a form is always posted to a specific action, which is marked with the [HttpPost] attribute. This is not possible in Sitecore because the page is rendered through the rendering pipeline and not through a single action. While there are a few ways to do this with Sitecore, they get away from the ASP.Net MVC way of doing things.

Two forms on one page is a problem

When two (or more) forms are on a MVC page and one of them is submitted, all available controller actions are evaluated and those decorated with the [HttpPost] ActionMethodSelector will be selected over all other actions. This causes all form submission actions to be handled when we only want to handle the one that was submitted by the user.

Fear not! There is a way to validate each post action to determine if it is the correct action for the current form post.

Create an extension method that will render a hidden input with the uniqueId of the current rendering:

public static class SitecoreHelperExtensions
{
    public static MvcHtmlString RenderingToken(this SitecoreHelper helper)
    {
        if (helper.CurrentRendering == null) return null;

        var tagBuilder = new TagBuilder("input");
        tagBuilder.Attributes["type"] = "hidden";
        tagBuilder.Attributes["name"] = "uid";
        tagBuilder.Attributes["value"] = helper.CurrentRendering.UniqueId.ToString();

        return new MvcHtmlString(tagBuilder.ToString(TagRenderMode.SelfClosing));
    }
}

Call this method inside an MVC form to add a hidden input with the rendering’s uniqueId to the form:

@Html.Sitecore().RenderingToken()

The result of this method looks like this:

<input name="uid" type="hidden" value="c151068e-9bb9-4899-a470-27560f551338"/>

Create an attribute that will check this uniqueId value to make sure that the form posts to the correct action:

public class ValidRenderingTokenAttribute : ActionMethodSelectorAttribute
{
    public override bool IsValidForRequest(ControllerContext controllerContext, System.Reflection.MethodInfo methodInfo)
    {
        var rendering = RenderingContext.CurrentOrNull;
        if (rendering == null) return false;

        Guid postedId;
        return Guid.TryParse(controllerContext.HttpContext.Request.Form["uid"], out postedId) && postedId.Equals(rendering.Rendering.UniqueId);
    }
}

Decorate POST actions with the ValidRenderingToken attribute:

[HttpPost]
[ValidRenderingToken]
public ActionResult Index(FormModel model)
{
    model.Message = "Valid rendering token found here";
    return View(model);
}

Ensure that the default actions for your controllers do not have the [HttpGet] attribute, as this will confuse the Sitecore rendering pipeline and an error will be thrown indicating that it cannot find an action that permits a post. It either needs an unmarked action or an action with [HttpPost]

// note: no attribute here
public ActionResult Index()
{
    var model = GetModel();
    return View(model);
}

For information on Sitecore Forms see Martina Welanders article on Posting Forms in Sitecore MVC: Part 1 – View Renderings and part 2 – Controller Renderings.

Pop Art Principles for the Digital World

joyclyn-popOur solutions team carved out some time to visit International Pop—the Walker Art Center’s exhibition chronicling the global rise of Pop art between the 1950s and ‘70s.

As a response to society’s newfound postwar consumerism, Pop was a movement that incorporated everyday objects—especially the shiny and the consumable, like food, television, comics, glossies and tabloids.

No art form or media exists in a vacuum, so we’ve taken it as an exercise to dig into some of the fundamentals of Pop art to offer a few principles to incorporate into the digital realm. Here we go:

Accessibility Is Sovereign
As a reaction to (what many considered to be) pretentious, overworked Abstract Expressionism, Pop offered straightforward depictions of the common and the accessible. Gretchen Berg recorded Andy Warhol saying, “Pop artists did images that anybody walking down the street could recognize in a split second…all the great modern things that the Abstract Expressionists tried so hard not to notice at all.”

Pop introduced art into daily life and to new audiences. “High art” was no longer linked with only wealth, prestige or prosperity. Looking at digital concerns today, there are accessibility initiatives around the globe to bring broadband to rural areas and reduce costs for economically disadvantaged individuals. In addition, compliance standards like timed response alerts and assistive technology like screen readers help ensure digital content is available to all.

And from a strategy perspective: removing friction and barriers to your content (such as forced signups or laborious jargon) does more than improve downloads and encourage engagement: it also builds trust in your brand.

Challenge Convention—Take Tradition to Trial
Pop art was considered a youthful, optimistic movement. It was also seen as aggressively defiant of Art as the traditional gatekeeping establishment with the role of representing and upholding culture and society’s most esteemed (and often elite) ideals. That’s a fine balance to strike. Perhaps disillusionment was the catalyst, but in popular culture and the art world, change—not cynicism—was the byproduct.

It’s a reminder to our industry to continue challenging conventions. To continue asking why we do the things we do. Best practices are only best practices until something better comes along. We recently wrote about some of our key takeaways from SXSW, including our ongoing responsibility to adapt design innovations to how humans actually live and interact with technology and their environment.

If Pop art made the claim that anything could be art, today’s finest IT and UX professionals are dictating that anything can be an interface. That interface can serve as a tool for change, and it should be available to all.