sistemas sistema siab para integrales bibliotecas automatizado automatización .net powershell scripting automation ironpython

.net - para - sistema integral de automatización de bibliotecas siab



¿Cuál es la mejor tecnología para automatizar una tarea utilizando las bibliotecas.net? (5)

Imagine que necesita desarrollar y programar una aplicación / script para hacer lo siguiente:

  • Referencia uno o más ensamblados .net
  • Consulta la API, obtén algunos objetos
  • para cada objeto llame a otro método en la API

¿Qué usarías?

En el pasado, he creado pequeñas aplicaciones de consola que hacen lo anterior, pero parece un poco torpe y excesivo.

Me imagino que algo como PowerShell o IronPython podrían ser una mejor opción.

¿Alguna recomendación?


El problema con los controladores de aplicaciones es que constantemente se rompen. Las aplicaciones cambian constantemente su superficie externa y esto causa estragos en los conductores. Por lo tanto, necesita constantemente partes actualizadas de los controladores. Encuentro que un lenguaje dinámico no compilado es ideal para esto, ya que puede hacer una actualización rápidamente y comenzar una tarea.

Powershell es una gran tecnología para esto. Es sorprendentemente flexible y realmente fácil de aprender. Es una mezcla de código compilado y dinámico. Por lo tanto, cuantas más partes pesadas de algoritmo tenga su controlador puede ser cualquier lenguaje compilado y las piezas más frágiles y frecuentemente actualizadas pueden ser secuencias de comandos. Se integran sin problemas.

Soy un ávido usuario de Powershell y realmente no tengo mucha experiencia con IronPython (de ahí mi elección). IronPython también podría tener estas características, así que si estás más cómodo con ese idioma, es donde debes ir.


Una de las ventajas de PowerShell es que han trabajado mucho en segundo plano para hacer que las cosas se integren fácilmente, haciendo conversiones de tipo implícitas, etc., para que el resultado de un programa se pueda utilizar como entrada para otro. Y como todo pasa objetos, no es necesario escribir un código de munging de texto para juntar las cosas.

Prefiero Python, sin embargo, cuando estoy escribiendo una gran cantidad de código original en lugar de depender mucho de las bibliotecas y pegar los componentes.


IronPython.

Probé usando Powershell e IronPython para la tarea anterior y llegué a la conclusión de que IronPython era el más adecuado (para mí).

Para ser justos, Powershell o cualquier lenguaje basado en DLR como IronPython o IronRuby se adaptaría a la tarea y sería menos costoso que cuidar aplicaciones de consola triviales.

Si todo lo que estás haciendo es consumir una biblioteca .net y hacer algunas secuencias de comandos, entonces IronPython borrará Powershell. Si desea utilizar algún tipo de funcionalidad tipo shell o usar CMDLETS existentes, entonces Powershell es una mejor opción.

IronPython, al ser una implementación de python, ofrece todas las ventajas de python para los scripts, como ser fácil de aprender, fácil de leer y rápido de desarrollar.


Debido a la frustración con PowerShell, investigué IronPython. Creo que esta es una buena alternativa a Powershell, especialmente si eres un programador. Incluso si eres una persona de TI, creo que el comando de Windows shell + IronPython es una buena combinación que logrará lo que necesitas en la era .NET (como para qué comando shell + vbscript estaba bien en la era COM).