run ejecutar desde convertto c# powershell

ejecutar - ¿Por qué usaría Powershell sobre C#?



convertto html (4)

Sé que Powershell es bastante poderoso, ya que es un lenguaje de secuencias de comandos en el que tiene acceso a todo el marco .Net (eso es todo lo que sé). ¿Pero estoy luchando para entender cuál es la gran exageración de Powershell cuando podría usar C # para codificar exactamente lo mismo?


Creo que estás haciendo la pregunta incorrecta. Debería ser: "¿Por qué debería usar C # cuando podría usar Powershell para codificar lo mismo?"

Este es el viejo argumento de las secuencias de comandos versus el software compilado revisado. Una solución de scripting es más flexible (solo necesita Bloc de notas para editar el script, no se requiere compilador).

Para una tarea pequeña, un script es más rápido de escribir, implementar y cambiar que crear un proyecto en Visual Studio, compilarlo, implementarlo en el destino, corregir el código, compilarlo nuevamente, implementarlo nuevamente ...

Para una tarea más grande, definitivamente prefiero un IDE que compile mi código. Los mensajes de error en una construcción rota solo son una gran ayuda para encontrar la causa. (La eficiencia del tiempo de ejecución suele ser mejor en un software compilado, pero con las CPU modernas se reduce a unos pocos milisegundos, por lo que para la mayoría de los proyectos, ya no importa).

Puedes hacer cualquier tipo de proyecto en C # o Powershell. Eso no significa que debas .


Generalicé tu pregunta en lo siguiente:

¿Por qué usaría (lenguaje de nivel superior del que sé poco) sobre (lenguaje de nivel inferior del que sé más)?

El objetivo de un lenguaje de nivel superior es abstraer las tareas comunes para que sean más rápidas de escribir. Muchas personas que hacen esta pregunta no pueden concebir este beneficio de un lenguaje de nivel superior porque ya están cómodos con su lenguaje de nivel inferior.

Al final, todo depende de su buena disposición para aprender las abstracciones de un lenguaje de nivel superior con la esperanza de que pueda llegar a ser tan competente como el inferior.


Cuando no utiliza Powershell como shell sino como un entorno de programación, puede pensar en Powershell como una especie de área de juegos interactiva .NET. Nunca usé Powershell para la creación de prototipos GUI, pero lo he usado en el pasado para jugar con objetos .NET y sus métodos para resolver un problema en particular. Simplemente alterar una línea de comando es más productivo que hacer un ciclo de edición / guardar / compilar / ejecutar cada vez que realice un cambio.

Además, los dominios apropiados para cada idioma son muy diferentes. Powershell es, en su esencia, una herramienta de administración y automatización, con un acceso simplificado a muchas cosas que pueden ser más difíciles de usar desde otro entorno, como el Registro, el almacén de certificados, WMI y otros.

Probablemente no quiera escribir una aplicación de base de datos enterprisey con Powershell y probablemente no quiera escribir un programa en C # solo para copiar algunas cosas en el sistema de archivos.


  • No es un lenguaje compilado.
  • Tiene un ecosistema de complementos con muchas "bibliotecas" para hacer varias cosas específicas del dominio, como copiar archivos, jugar con AD, Exchange.
  • Es la herramienta adecuada para un conjunto de trabajos diferente, ligeramente superpuestos.
  • Es mucho más poderoso y consistente que CMD.EXE y otras cosas evolucionaron de los comandos que necesitaban para encajar en 8K RAM.

Y, ¿por qué usas C # de todos modos, ILASM puede hacer todo con mucho más control, y solo estás llamando cosas en el BCL de todos modos?