8 votos

¿Es posible crear plugins basados en C# para QGIS (en lugar de Python)?

Mi equipo tiene mucho código C# que hemos utilizado para el desarrollo de complementos de ArcGIS. Estamos pensando en portar algunas de estas herramientas a QGIS como plugins utilizando QT Designer. Sin embargo, reescribirlas con Python en el back-end no es una idea tan divertida. ¿Es posible utilizar C# en el back-end en su lugar?

2 votos

¡Ya quisieras! (y yo también) existe la posibilidad de plugins C++ pero son totalmente desaconsejado . La razón de esto, según tengo entendido, es que QGIS es un programa independiente de la plataforma, es la misma fuente para Mac, Linux y MS Windows pero C#/VB.net es sólo MS Windows. Si si alguien conoce una API de C# para QGIS yo también estaría MUY INTERESADO . Existe una API en C# para GDAL/OGR por si te sirve de ayuda, está alojada por Tamas Szekeres en gisinternals.com y puedo atestiguar personalmente que funciona bien.

4voto

Jauder Ho Puntos 3172

Actualmente no. En el futuro, tal vez pequeño, es decir, súper pequeño. Unas cuantas razones:

  • Utilizamos SIP para generar los enlaces de Python desde C++. Esta es una herramienta que sabe cómo envolver la API de C++ y exponerla a Python. Python puede intropolar con C/C++ así que esto es realmente una librería envolvente que hace todo el trabajo para ir de un lugar a otro.

  • No hay ninguna herramienta que lo haga para .NET. Ha habido algunos intentos, pero nada listo para la producción, ni nada que pudiera hacer funcionar para los ejemplos básicos.

  • .NET en Linux, aunque es posible, también es algo nuevo, con toda una serie de problemas, y no es lo mismo, a mi entender, que el .NET normal que tenemos en Windows. Es un tiempo de ejecución en crecimiento a medida que se portan cosas.

Así que eso nos lleva a preguntarnos por qué MapServer/GDAL, etc., tienen enlaces para ellos y nosotros no. La respuesta es simple: no usan Qt. Son bibliotecas C/C++ (en su mayoría) y utilizan SWIG. SWIG actualmente no maneja cosas que Qt hace (pero parece que la gente lo quiere: https://github.com/swig/swig/issues/88 así que tal vez en algún momento)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X