Upgrading to SPEAK 1.2, the basics

SPEAK 1.2 is not realeased yet

Introduction

The main purpose of this new release was to ease the creation of components and the support for Ms TypeScript. Please, feel free to give me feedbacks if you do not think those requirements was not propertly met.

As you can see, SPEAK 1.2 is not "turned off" by default. I will explain you why we have taken this decision later.

In order to turn it on, all you need to do is to assign the layout called "Speak-TechnologyPreviewLayout" to your page.

That's it! You are now using SPEAK 1.2

Backward Compatibility

As you will see, this SPEAK 1.2 comes with a lot of changes. This means you won't create components the same way as you were before.

At that point, you will ask me: will components written in SPEAK 1.1 will work with SPEAK 1.2 ?

I will immediately reassure you. Yes it will.

We have created a bridge script which will let you use SPEAK 1.1 components in a SPEAK 1.2 environment.

What about Business Component Library?

The business component library is still written for a SPEAK 1.1 environment. While I am writing those lines, there is no roadmap on when those components will be moved into a 1.2 environment but fore sure they will be upgraded at some point.

Should I still use SPEAK 1.1?

The short answer is yes but you should not. Breaking Changes will happen in the future for 1.1 and we won't be able to support 3 concurrent versions of SPEAK running in parralel. Therefore, allways trying to stick with the latest will be less painfull then jumping directly from 1.1 to a potential 2.0 release.

As I stated earlier, SPEAK 1.2 is supporting the SPEAK 1.1 components. What I would do is:

  • Change your layout to Speak-TechnologyPreviewLayout for your SPEAK page
  • See if you got any troubles based on that change.
    • If you have problems by just changing the Layout. Go to SDN and look at the documentation. If you can't find an answer, contact our support.
  • Update your pageCode to the new style (see below)

At that point, you only rely on our component "bridge" but you are now running in a 1.2 environment.

What to do with component?

Is it a BCL component?

if yes, don't do anything.

Is it a component you have written?

if yes, you should try to create a 1.2 version and use this new one instead.

How do I upgrade my pagecode?

This is pretty simple.

The 1.1 syntax for a pagecode looks like this:

define(["sitecore"], function (_sc) {  
  return _sc.Definitions.App.extend({
      initialized: function () {

      },
      customMethod: function () {

      }
  });
});

The new syntax for creating a pagecode is now:

Sitecore.pagecode([ "/path/to/a/dependency" ], {  
  initialize: function() {
  },
  initialized: function() {
  },
  customMethod: function() {
  }
});

As you can see, all you need to do is to simply:

  • Take the object which is passed to the "extend" method of the pageCode.
  • If you have no dependency for your pageCode.
    • pass that object directly to the pageCode method
  • If you have dependedencies for you pagecode.
    • pass them as the first parameter to the pageCode method
    • pass the object copied as second parameter.

That's it. You have moved your pageCode to 1.2 !

Normally, you should not experiment any errors during the process. If you have some, please refer to the SPEAK 1.2 documentation to see what you need to change.

Conclusion

In this post, I have given you the minimum requirements to turn your page into a SPEAK 1.2 environment. I did not explain you how to upgrade a component as, in my opinion, it deserves its own blog post.

If you have questions, ping me on twitter @dervalp or leave me a comment.

comments powered by Disqus