Hey, what gives? Why haven’t you been posting to your blog more often?
Answer: RTC Extensions.
I’ve been turning my focus to RTC Extensions recently, and that means I’ve been buried in learning this deep area. The fact is, this is the most technical and complex area of RTC customization, and probably the most difficult to find information about.
The first place you should look for information about extending RTC is the RTC Extensions Landing Page. I wrote this as a way of collecting all the existing information about extensions in one place. There’s actually quite a bit of information out there about extensions. Start with the Landing Page and you’ll gain access to a lot of material.
Even so, learning about RTC Extensions is a steep mountain to climb. Extensions are built as Eclipse plug-ins, which is great because it provides a consistent and well understood way to extend RTC. This is true for both client-side and server-side extensions. But if you don’t already know how to write Eclipse plug-ins, it’s one more technical hurdle to jump over. The good news is that there are great books out there that teach you Eclipse plug-in development.
The RTC Eclipse API is also not fully documented. This is partly by design – the official API is not the complete API. The RTC development team is cautious about supporting interfaces and classes that may change significantly in the future. But you’ll inevitably need some unofficial API calls to accomplish what you want to do. In fact, only parts of the client-side API are official, and none of the server-side API is official. But many extensions need both server and client side actions.
The result is that there’s some searching, experimenting, and admittedly frustration when you build an extension. Your first extension will be the toughest because you’ll be learning where you need to look to find things, and you’ll be learning the basic philosophy of how to things done in RTC.
As my colleague Rolph Schoon says, one of the best ways to learn extensions is by monkey-see monkey-do. Or more accurately, code monkey-see, code monkey-do. Leverage the sample code, step through SDK source code when possible, etc. The Extensions Landing Page will provide some extensions that you can use as code samples, and we’ll be building more.
Also, don’t run right to extensions when you want to add a new feature or customize a process. Given the learning curve and the fact that you’re writing/debugging/maintaining code, go for easier solutions if possible. Create work item templates, customize your process template, or work through the Eclipse or Web UI to accomplish what you need. If you can’t get to where you need to go that way, then turn to using the RTC API.
More to come, stay tuned.