Для расширения функциональности самого ArcGIS Desktop 9.3.1 используются инструменты геообработки, "скриптовые языки" (VBScript и Python), и языки программирования, поддерживающие COM - С++, VB6, VC#, VB#:
.NET
VB6
А вот если Вам нужно полностью своё приложение вместо ArcMap, ArcCatalog, ArcToolBox - со своими окнами, кнопками и поведением, то Вы можете его написать используя "Контролы". Для этого нужно иметь лицензию разработчика. Тогда на клиента Вы можете установить вместо ArcGIS Desktop, ArcEngine Runtime + Ваше приложение.
ArcGISengine для .NET