CLR Custom Actions vs. JavaScript Custom Actions

Older custom CLR actions run on the client just like their JavaScript-based replacements. Because CLR actions are written in .NET code and executed on the client with assumptions that certain features like Windows forms were at the author's disposal, CLR actions won't just work with Web Shell like pre-existing server-side code does. A true Web Shell analog to a CLR action in the ClickOnce Smart Client is a JavaScript object that, like CLR actions, follows a certain pattern and that the platform can invoke when a user clicks the button or link that the action is mapped to. The process for doing so exists in Web Shell today; the following sections describe how this process works and how a developer can write a JavaScript custom action for Web Shell.