45 votes

Que puis-je faire avec C# et Powershell ?

J'ai une bonne compréhension de C# et une compréhension très basique de powershell. J'utilise Windows PowerShell CTP 3, ce qui est très amusant. Mais je veux aller au-delà de l'écriture de scripts/fonctions. Y a-t-il des choses intéressantes à faire avec C# ?

60voto

Scott Weinstein Points 11404

Au plus haut niveau, vous disposez de deux options différentes Vous pouvez, à partir d'un programme C#, héberger PowerShell et exécuter des commandes PowerShell via des RunSpaces et des pipelines.

Ou vous pouvez, à partir de PowerShell, exécuter du code C#. Cela peut se faire de deux manières. Avec un snapin PowerShell, une dll compilée qui fournit des cmdlets PowerShell et des fournisseurs de navigation, ou via la nouvelle cmdlet Add-Type qui vous permet d'importer dynamiquement du code C#, VB, F#. A partir de l'aide

$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)

34voto

JaredPar Points 333733

Je pense que la chose la plus intéressante que l'on puisse faire avec C# et PowerShell est de construire des CmdLet's. Il s'agit essentiellement de plugins pour PowerShell qui sont écrits en code géré et agissent comme des fonctions normales. Ils ont une paire verbe-nom et beaucoup des fonctions que vous utilisez déjà sont en fait des cmdlets sous le capot.

http://msdn.microsoft.com/en-us/magazine/cc163293.aspx

8voto

Srikar Doddi Points 10611

La réponse est "ça dépend". Vous pouvez faire une variété de choses avec c# (construire des Windows, des clients web et des clients mobiles).

Vous pouvez invoquer des scripts powershell à partir de C#. Regardez ce site ==> lien

Vous pouvez même convertir votre code c# en powershell ==> lien

5voto

Thomas Lee Points 640

Vous pouvez le voir de deux façons : 1. Comment pouvez-vous tirer parti de PowerShell dans votre programme C# ? 2. Comment tirer parti de la programmation C# dans PowerShell.

Dans une certaine mesure, ce sont des questions tout à fait différentes avec des réponses différentes.

En C#, vous pouvez tirer parti du moteur PowerShell, des espaces d'exécution, des pipe-lines, etc. Comme c'est le cas avec Exchante, vous pouvez utiliser C# pour faire tout le travail de l'interface graphique, puis invoquer un cmdlet PowerShell pour faire tout le travail difficile. Cette option est appropriée si vous pouvez trouver des cmdlets ou des scripts PowerShell à exploiter.

À partir de PowerShell, vous utilisez C# pour étendre ce que vous pouvez faire dans PowerShell. Vous pouvez créer des cmdlts et des providers pour permettre à d'autres d'accéder aux données de l'application. Ou vous pouvez simplement créer des objets qui peuvent être utilisés dans un script PowerShell. Cette option est la manière dont vous aidez à ouvrir votre application pour qu'elle soit gérée de manière plus automatisée.

En fonction de ce que vous cherchez à faire, vous avez donc le choix.

Thomas (doctordns@gmail.com)

2voto

mP. Points 7516

Scott Hanselman alias Hanselminutes a plusieurs podcasts sur Powershell, CmdLets, C# et plus encore. C'est le meilleur si vous voulez apprendre ce que c'est, comment ça marche et plus encore. Faites une recherche sur son site Web pour obtenir le podcast.

Liste des podcasts liés au PS sur son site (par ordre chronologique inverse) :

#190 : État des lieux de Powershell/Lee Holmes & Jason Shirk
#162 : Powershell 2.0
#49 : Powershell/Bruce Payette
#n°36 : Jeffrey Snover, architecte Powershell
#24 : Windows Powershell (MONAD), Partie II

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X