Ho una buona conoscenza di C# e una comprensione di base di PowerShell. Sto usando Windows PowerShell CTP 3, che è stato davvero divertente. Ma voglio andare oltre la scrittura di script/funzioni. C'è qualcosa di interessante da fare con C#?Cosa posso fare con C# e Powershell?
risposta
Penso che la cosa più interessante si può fare con C# e PowerShell è quello di costruire cmdlet di. Questi sono essenzialmente plugin per PowerShell scritti nel codice gestito e funzionano come normali funzioni. Hanno una coppia verbo-sostantivo e molte delle funzioni che già usi sono in realtà dei cmdlet sotto il cofano.
Al livello più alto si hanno due opzioni diverse si può da un programma C# ospite PowerShell ed eseguire comandi PowerShell tramite RunSpaces e tubazioni.
Oppure è possibile eseguire il codice C# all'interno di PowerShell. Questo può essere fatto in due modi. Con uno snapshot di PowerShell, una dll compilata che fornisce cmdlet PowerShell e provider di navigazione o tramite il nuovo cmdlet Add-Type, che consente di importare in modo dinamico il codice C#, VB, F #. Dalla aiuto
$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 per ospitare PowerShell come motore di scripting per la tua applicazione. Script .NET incorporato con un linguaggio che sta rapidamente diventando uno strumento di base. –
C'è un modo per collegare codici VB? –
David - Sì, c'è. Puoi usare [-Lingua {CSharp | CSharpVersion3 | VisualBasic | JScript}] flag –
È possibile guardare uno dei due modi:
- Come è possibile sfruttare PowerShell all'interno del vostro programma C#
- Come si può sfruttare programmazione C# all'interno PowerShell.
In una certa misura, sono domande abbastanza diverse con risposte diverse.
Da C# è possibile sfruttare il motore PowerShell, gli spazi di esecuzione, le linee di condotte ecc. Come per Exchante, è possibile utilizzare C# per eseguire tutte le operazioni della GUI, quindi richiamare un cmdlet di PowerShell per eseguire tutte le operazioni. Questa opzione è appropriata se puoi trovare i cmdlet o gli script di PowerShell da sfruttare.
Da PowerShell, si utilizza C# per espandere ciò che è possibile fare in PowerShell. È possibile creare cmdlts e provider per consentire ad altri di accedere ai dati dell'applicazione. Oppure puoi semplicemente creare oggetti che possono essere utilizzati all'interno di uno script PowerShell. Questa opzione è il modo in cui aiuti ad aprire la tua applicazione per essere gestita in modo più automatico.
Quindi, in base a ciò che si sta cercando di fare, si dispone di opzioni.
Scott Hanselman aka Hanselminutes ha diversi podcast su PowerShell, CmdLets, C# e altro ancora. È il migliore se vuoi imparare cos'è, come funziona e altro. Fai una ricerca sul suo sito web per prendere il podcast.
elenco di podcast correlati PS sul suo sito (in ordine cronologico 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 Cmdlet possono essere davvero potente, per esempio per fornire un'interfaccia a riga di comando per applicazioni e servizi gestiti. –