Tengo una comprensión decente de C# y una comprensión muy básica de powershell. Estoy usando Windows PowerShell CTP 3, que ha sido muy divertido. Pero quiero ir más allá de escribir scripts/funciones. ¿Hay algo genial que hacer con C#?¿Qué puedo hacer con C# y Powershell?
Respuesta
Creo que lo más interesante que puede hacer con C# y PowerShell es la construcción de cmdlet. Estos son esencialmente complementos de PowerShell que están escritos en código administrado y actúan como funciones normales. Tienen un par verb-sustantivo y muchas de las funciones que ya usa son en realidad cmdlets bajo el capó.
En el nivel superior tiene dos opciones diferentes que puede desde un C# programa de acogida PowerShell y ejecutar comandos de PowerShell a través de espacios de ejecución y tuberías.
O puede dentro de PowerShell ejecutar el código C#. Esto se puede hacer de dos maneras. Con un complemento de PowerShell, un dll compilado que proporciona cmdlets de PowerShell y proveedores de navegación, o mediante el nuevo cmdlet Add-Type, que le permite importar dinámicamente C#, VB, código F #. De la ayuda
$source = @"
public class BasicTest
{
public static int Add(int a, int b)
{
return (a + b);
}
public int Multiply(int a, int b)
{
return (a * b);
}
}
"@
Add-Type -TypeDefinition $source
[BasicTest]::Add(4, 3)
$basicTestObject = New-Object BasicTest
$basicTestObject.Multiply(5, 2)
+1 para alojar PowerShell como motor de scripting para su aplicación. Construido en scripts de .NET con un lenguaje que se está convirtiendo rápidamente en una herramienta básica. –
¿Hay alguna forma de conectar los códigos VB? –
David - Sí, hay. Puede usar el [-Language {CSharp | CSharpVersion3 | VisualBasic | JScript}] marca –
Puede mirarlo una de dos maneras:
- ¿Cómo se puede aprovechar PowerShell dentro de su programa en C#
- ¿Cómo puede aprovechar de programación C# dentro de PowerShell.
Hasta cierto punto, son preguntas bastante diferentes con diferentes respuestas.
Desde C# puede aprovechar el motor PowerShell, espacios de ejecución, tuberías, etc. Como se hace con Exchante, puede usar C# para hacer todo el material de la GUI y luego invocar un cmdlet PowerShell para hacer todo lo difícil. Esta opción es adecuada si puede encontrar cmdlets o scripts de PowerShell para aprovechar.
Desde PowerShell, utiliza C# para expandir lo que puede hacer en PowerShell. Puede crear cmdlts y proveedores para permitir que otros accedan a los datos de la aplicación. O puede simplemente crear objetos que se puedan usar dentro de un script de PowerShell. Esta opción es la forma en que ayuda a abrir su aplicación para que se administre de una manera más automatizada.
Así que dependiendo de lo que está buscando hacer, tiene opciones.
Scott Hanselman aka Hanselminutes tiene varios podcasts sobre Powershell, CmdLets, C# y más. Es lo mejor si quieres saber qué es, cómo funciona y más. Haga una búsqueda en su sitio web para tomar el podcast.
Lista de PS podcasts relacionados en su sitio (en orden cronológico inverso):
#190: State of Powershell/Lee Holmes & Jason Shirk
#162: Powershell 2.0
#49: Powershell/Bruce Payette
#36: Jeffrey Snover, Powershell architect
#24: Windows Powershell (MONAD), Part II
- 1. ¿Qué puedo hacer con las clases virtuales?
- 2. ¿Qué puedo hacer con una variable enum?
- 3. ¿Qué puedo hacer con mi documentación XML?
- 4. ¿Para qué sirve PowerShell?
- 5. ViewModel Qué hacer y qué no hacer
- 6. ¿Cómo puedo hacer una captura de pantalla en Windows PowerShell?
- 7. ¿Qué puedo hacer con una variable estática protegida/privada?
- 8. ¿Qué significa el período '.' operador hacer en PowerShell?
- 9. ¿Por qué no puedo hacer ++ i ++ en lenguajes tipo C?
- 10. ¿Qué es el archivo web.xml y qué puedo hacer con él?
- 11. ¿Por qué no está sellado el tipo de clase y qué puedo hacer con eso?
- 12. ¿Por qué no puedo ejecutar un comando con argumentos de una cadena en powershell?
- 13. Coincidir con el nombre del archivo y copiarlo con PowerShell
- 14. ¿Cómo puedo hacer esto con MySQL?
- 15. solicitudes http con powershell
- 16. ¿Cómo hacer TDD y pruebas unitarias en powershell?
- 17. ¿Qué puedo hacer con awk que no puedo hacer en Perl?
- 18. ¿Qué significa '?' hacer en C++?
- 19. ¿Por qué no puedo hacer un "con x como (...)" con ADODB y Oracle?
- 20. ¿Cómo puedo hacer que PowerShell ISE haga resaltado de sintaxis en archivos con una extensión personalizada?
- 21. ¿Qué 'std :;' hacer en c + +
- 22. microsoft - ¿qué puedo hacer con el software libre
- 23. ¿Cómo puedo hacer Databinding en C#?
- 24. Activo creado dos veces con diferentes configuraciones, ¿qué puedo hacer?
- 25. ¿Cómo hacer qué cabeza, cola, más, menos, sed hacer en Powershell?
- 26. ¿Cómo puedo hacer una búsqueda masiva y reemplazar con Perl?
- 27. try-catch-fail con powershell y schtasks
- 28. ¿Puedo hacer una aplicación en C++ bastante nativa con Android?
- 29. ¿Por qué no puedo hacer esto con tipos implícitos en C#?
- 30. ¿Puedo obtener intellisense en powershell?
1 cmdlets pueden ser muy poderosa, por ejemplo, para proporcionar una interfaz de línea de comando para aplicaciones y servicios administrados. –