Cómo programar con ArcObjects y no morir en el intento - 1ª Parte
Bueno empiezo un pequeño tutorial por partes sobre cómo empezar a programar con ArcObjects. En esta primera parte simplemente enumero las opciones de programación con ArcObjects, en cuanto a lenguajes de programación y plataformas, junto con una pequeña explicación de cada una de ellas. En sucesivas entregas entraré en materia, con algunos ejemplos de código
La librería ArcObjects es un conjunto de componentes software construidos con tecnología COM de Microsoft, con la que se han construido productos como ArcGIS Desktop, ArcGIS Engine y ArcGIS Server. Por lo tanto, para programar con alguno de estos paquetes de software, necesitaremos programar utilizando la librería ArcObjects.
Hay muchas y diversas posibilidades, que dan mucha flexibilidad pero al mismo tiempo "asustan" al novato. Veamos cuáles son algunas de esas posibilidades, empezando por las más sencillas.
1. Utilizar VBA en las aplicaciones de escritorio de ArcGIS Desktop (ArcMap, ArcCatalog...). Es, quizás, la forma más rápida y sencilla de iniciarse, y existen muchos ejemplos. Disponible en ArcGIS Desktop
- Ventajas: fácil de probar, muy flexible, es la forma natural de empezar con ArcObjects
- Inconvenientes: no es POO (Programación Orientada a Objetos), es difícil reutilizar código. Necesitamos estar dentro de las aplicaciones de ArcGIS Desktop. Y además no está muy claro qué va a hacer Microsoft con esta tecnología
2. Utilizar python como lenguaje de script. Con python accedemos al objeto de alto nivel Geoprocessor, lo que nos permite utilizar en scripts o macros cualquiera de las herremientas que tenemos en ArcToolBox o en Model Builder. Disponible en ArcGIS Desktop
- Ventajas: fácil de aprender, muy útil para crear procesos batch
- Inconvenientes: sólo se expone una parte de la librería en la versión actual. No es adecuado para crear grandes programas, falta de integración con interfaces gráficas.
3. Utilizar un lenguaje compatible COM. Hay dos vías actualmente, en primer lugar compilar a código nativo con un lenguaje como puede ser C++ o Visual Basic, o utilizar la plataforma .NET de Microsoft (cualquier lenguaje) para crear ensamblados interoperables con la librería COM ArcObjects. Disponible en ArcGIS Desktop, ArcGIS Engine y ArcGIS Server para plataformas Windows
- Ventajas: muy amplias posibilidades de desarrollo, incluyendo la capacidad de construir un SIG completo, con necesidades a medida, en cualquier entorno. Código con alta reutilización
- Inconvenientes: más difícil (VB < .NET < C++), sólo para plataformas Windows
4. Utilizar Java, a través de la interoperabilidad con objetos COM que proporciona JIntegra (http://j-integra.intrinsyc.com/). Aunque no parece "natural" unir Java y COM, en realidad el concepto es análogo a la interoperabilidad proporcionada por Microsoft entre componentes COM y ensamblados .NET. Disponible para ArcGIS Engine y ArcGIS Server.
- Ventajas: multiplataforma (Windows, Linux, Solaris), integración muy buena con infraestructuras empresariales de todo tipo y alta reutilización del código
- Inconvenientes: ligera pérdida de rendimiento (puede ser importante en algunas aplicaciones), más difícil de programar.
5. Usar C++ multiplataforma. Disponible en ArcGIS Engine
- Ventajas: posibilidad de crear aplicaciones multiplataforma con código nativo
- Inconvenientes: mucho más difícil de programar
En sucesivas entregas iremos viendo ejemplos de algunas de estas tecnologías, aplicadas en un ámbito concreto.
La librería ArcObjects es un conjunto de componentes software construidos con tecnología COM de Microsoft, con la que se han construido productos como ArcGIS Desktop, ArcGIS Engine y ArcGIS Server. Por lo tanto, para programar con alguno de estos paquetes de software, necesitaremos programar utilizando la librería ArcObjects.
Hay muchas y diversas posibilidades, que dan mucha flexibilidad pero al mismo tiempo "asustan" al novato. Veamos cuáles son algunas de esas posibilidades, empezando por las más sencillas.
1. Utilizar VBA en las aplicaciones de escritorio de ArcGIS Desktop (ArcMap, ArcCatalog...). Es, quizás, la forma más rápida y sencilla de iniciarse, y existen muchos ejemplos. Disponible en ArcGIS Desktop
- Ventajas: fácil de probar, muy flexible, es la forma natural de empezar con ArcObjects
- Inconvenientes: no es POO (Programación Orientada a Objetos), es difícil reutilizar código. Necesitamos estar dentro de las aplicaciones de ArcGIS Desktop. Y además no está muy claro qué va a hacer Microsoft con esta tecnología
2. Utilizar python como lenguaje de script. Con python accedemos al objeto de alto nivel Geoprocessor, lo que nos permite utilizar en scripts o macros cualquiera de las herremientas que tenemos en ArcToolBox o en Model Builder. Disponible en ArcGIS Desktop
- Ventajas: fácil de aprender, muy útil para crear procesos batch
- Inconvenientes: sólo se expone una parte de la librería en la versión actual. No es adecuado para crear grandes programas, falta de integración con interfaces gráficas.
3. Utilizar un lenguaje compatible COM. Hay dos vías actualmente, en primer lugar compilar a código nativo con un lenguaje como puede ser C++ o Visual Basic, o utilizar la plataforma .NET de Microsoft (cualquier lenguaje) para crear ensamblados interoperables con la librería COM ArcObjects. Disponible en ArcGIS Desktop, ArcGIS Engine y ArcGIS Server para plataformas Windows
- Ventajas: muy amplias posibilidades de desarrollo, incluyendo la capacidad de construir un SIG completo, con necesidades a medida, en cualquier entorno. Código con alta reutilización
- Inconvenientes: más difícil (VB < .NET < C++), sólo para plataformas Windows
4. Utilizar Java, a través de la interoperabilidad con objetos COM que proporciona JIntegra (http://j-integra.intrinsyc.com/). Aunque no parece "natural" unir Java y COM, en realidad el concepto es análogo a la interoperabilidad proporcionada por Microsoft entre componentes COM y ensamblados .NET. Disponible para ArcGIS Engine y ArcGIS Server.
- Ventajas: multiplataforma (Windows, Linux, Solaris), integración muy buena con infraestructuras empresariales de todo tipo y alta reutilización del código
- Inconvenientes: ligera pérdida de rendimiento (puede ser importante en algunas aplicaciones), más difícil de programar.
5. Usar C++ multiplataforma. Disponible en ArcGIS Engine
- Ventajas: posibilidad de crear aplicaciones multiplataforma con código nativo
- Inconvenientes: mucho más difícil de programar
En sucesivas entregas iremos viendo ejemplos de algunas de estas tecnologías, aplicadas en un ámbito concreto.