Most of the AgilePoint customers use AgilePoint as a process enabling platform for which becomes a backbone of their entire IT infrastructure. The reason for this is that AgilePoint does not limit you to just OOTB functionality but provides an extremely extensible framework of components which can added on top of the ones available OOTB. The whole product consists of multiple Frameworks which can be used as building blocks for your organization level platform.
When it comes to developing applications with AgilePoint and extending its capabilities there are multiple levels of extensions which can be done based on your needs and tools to do those would differ based on what layer does your extension work on. I have tried to explain all of them
Developing apps using AgilePoint OOTB workflow activities and functionality but taking control over the form to extend it by adding JavaScript and CSS – AgilePoint has a 100% web based UI which is built using HTML5 + JQuery + CSS3. If you are using OOTB AgilePoint workflow shapes for designing workflow logic but on forms which you create for these workflows, you want to inject your own script or CSS, that is just something you would do right within your browser
Idea is that most of the things you should be able to do with just configuration but if you really needed to extend the form, it provides way of injecting your own JS and CSS from your browser itself. You can see these options in form designer. This is the layer where most clients might extend things.
Extend AgilePoint process layer by calling your own services – AgilePoint already provides 350+ OOTB workflow activities and integration with 40+ systems and this set of controls keep extending with every release. However if you want to connect to one of those systems for which we do not provide integration but at the same time do not wish to invest time to have a reusable UI level activity, you can write a custom WebService/WCF/REST service outside AgilePoint and call using our Generic WebService/WCF/REST connector which is available at process layer
This way your development is outside of AgilePoint but we just tap into it using generic WebService endpoint. From AgilePoint perspective you are still using browser to configure those activities.
Have native reusable workflow activities available in the designer itself – Just like we did for 40+ systems, if you wish that instead of users having to call WebServices/REST etc. and deal with all complexities involved with them like knowing headers, authentication etc., user should be able to drag and drop easily configurable activities with easy to use UI natively within the product, that is when you get into the Visual Studio and C# aspect of it and expose your custom activity set alongwith our other activities
Visual studio is the development environment mainly used by our product team to build those 350+ workflow activities as engine is based on .Net so runtime code will be in .Net. However very less # of clients and mostly partners get to a need to extend the activity set in a reusable way as OOTB activities are mostly sufficing the needs. Most just stick to option 1 and 2 mentioned above. #3 ofcourse makes it look more closely integrated and reusable building blocks make user experience nice if that is the goal and trained partners can do this extension themselves or work with AgilePoint services team to get those built.
Here is the link to documentation for AgilePoint Developer