OpenText Smart UI – OScript Developer’s Perspective

Let me start by introducing myself. I’m Siva, a developer at Fastman, and for the last decade I have been writing OScript code and customizing Content Suite (Livelink) through new modules, patches, WebReports, forms, web services, Java classes, .NET utilities, REST APIs, and more. For me, HTML, JavaScript, CSS, Bootstrap and jQuery were purely used as a presentation layer and supported my server-side business logic implementation.

After going through the developer documentation, my fascination transformed into despair.

Some while back, OpenText introduced the Smart UI. They are still in the process of getting the Classic UI transferred, but as a technical end-user with exposure to other modern websites and fancy UI screens, I loved it and the new look has somehow fascinated me. Unfortunately though, after going through the developer documentation and exploring the examples my fascination transformed into despair.

Before exploring the Smart UI SDK, I used to use plain JavaScript functions and variables, jQuery, CSS and Bootstrap. But never had a need to apply MVC patterns or other object oriented development approaches on the client-side. Nor did I ever use Closures or Promises. When I started with the Smart UI I went straight into the SDK examples and quickly decided that it was way over my head. “Probably because I don’t not know much about Backbone and Marionette, is the reason I’m not getting it”, I thought to myself. After another two weeks of quality time with the Backbone and Marionette documentation, examples and projects I went back to the Smart UI documentation and samples. But still it hounded me with no reasonable results.

Then came my awakening moment … I read “JavaScript Patterns” by Stoyan Stefanov.

Then came my awakening moment. On my 20 hour flight from Singapore to Canada to attend Enterprise World, I read “JavaScript Patterns” by Stoyan Stefanov. It didn’t mention anything about OpenText Smart UI, Backbone or Marionette. But after reading that book, my basic JavaScript awareness increased exponentially. Finally, the documentation and samples in Smart UI made sense and now Smart UI development fascinates me.

Having now spent the last 6 months working on Smart UI customizations, developing command- and widget-based functionality, implementing Perspectives, playing with routers and creating REST API components I am once again starting to love the Smart UI SDK and its customization capabilities. Now when I look back at my previous experiences and design approaches, everything seems to have turned by 180 degrees. Most of the code I write now is on the client side and less of it is done at OScript level. Suddenly, I have started respecting client-side scripting languages more than ever. I have also noticed that with the Marionette framework I am writing less code than before. By using Underscore utilities and Marionette views I am more productive and concentrating more on business logic than getting bogged down with UI implementation details.

I am more productive and concentrating more on business logic than getting bogged down with UI implementation details.

I might have made it sound simple in the end. But what I am recommending to starters and fellow Content Suite developers is:

brush up your JavaScript code and design patterns knowledge

understand what JavaScript modules are and how Require.js is used for dependency management.

get an in-depth understanding of Backbone and Marionette frameworks

then, and only then, go and explore Smart UI samples

The most important advice I would give is not to expect the default OpenText samples to be working from day one – even after following the Smart UI documentation to the letter. There is more that needs to be configured, than instructions provided in the Smart UI SDK samples and documentation. To add to the confusion, the initial version of Smart UI was using Marionette v2.3.0 and now it uses v2.4.7. Most of the online materials, tutorials and books are outdated and many demonstrate examples using deprecated functions. So keep an eye on the versions. By the way, my best partner in crime, tutor and trainer in this roller coaster ride was… “Chrome DevTools”. Use it to debug the Smart UI code and also to refer to how OpenText is implementing different Smart UI components.

I wish I had this advice at the start of my journey, and I look forward to hearing your experiences. 🙂

About the Author

Siva Salipalli is a Solution Architect and OScript Developer with Fastman. He is experienced in Web Reports, Builder, CSIDE for Livelink 9.2 to Content Suite 16.2 and OpenText Smart UI sdk for Content Server 16 and Content Suite 16.2. He has worked on solutions such as Fastman Permissions Manager & other custom modules for partners and customers.