Protecting your proprietary ServiceNow scripts is great option in Fuji. The problem is the customer loses the feature they love the most, the ability to customize anything they want. The customer could create their own script include that extends a protected vendor class to override methods but this solution has limited usability. It's not always possible to change the script that is instantiating the class to point it at your new class. Let's take a look at how the new GlideScopedEvaluator API can help us.
There are a few nice string utilities you might be used to using in the GlideStringUtils scriptable class. For my FujiForty followers I'm sure you know where this topic is going. You got it, it's not supported in ServiceNow Fuji application scopes.
There are a lot of very clever developers out there that just love accessing and modifying the DOM through client scripts. Typical reasons include: it's just easy so why not; they need to build an enhanced client interaction that may not be possible using published client APIs; they want to build a custom look and feel that no one else has. The challenge in Fuji is that direct access to the ServiceNow DOM is now forbidden in when executed in an application scope.
Let's get back to some more API changes in the ServiceNow Fuji release. Anyone who has done any integration work has most likely used JSONParser at least once. Unfortunately, this is yet another API that is not available in non-global application scopes.
One of the powerful and efficient concepts found in the ServiceNow platform is the ability to extend existing table schemas. This not only makes table creation faster and easier, it also allows you to inherit business processing logic and report on an aggregate of data across hierarchical tables. For example, a worker can display all of there work in a single queue even though the data appears to be in different tables.