2010-11-15 50 views
11

Je commence à peine à utiliser PowerShell et l'un de mes administrateurs système m'a dit que Powershell pouvait faire autant de choses que C# pour la gestion des systèmes, sinon plus. S'il vous plaît pardonner l'ignorance de cette question, mais quand devrais-je utiliser Powershell sur C#?Quand développer en utilisant Powershell vs C#?

+0

Tout à fait quelques messages déjà sur les comparaisons des deux sur SO ... –

Répondre

13

Quand je travaillais dans le laboratoire de construction de Windows il y a un temps LONG (1997), la règle m'a appris que si le code satisfait l'une de ces deux conditions l'écrire dans le script interprété, sinon écrire dans le code compilé:

  1. il y a plus de frais généraux que le code (en utilisant/include lignes, déclaration de fonction, etc.)
  2. il y a une meilleure que 10% de chances que le code va changer avant qu'il ne soit exécuté à nouveau
18

1) PowerShell est bon pour une tâche relativement petite et bien définie s, en particulier les tâches éphémères d'une journée et les tâches interactives lorsque vous codez directement dans la ligne de commande. Si une tâche ne nécessite que quelques lignes de code PowerShell (et vous le savez parce que vous connaissez suffisamment PowerShell!), Le lancement d'un projet C# complet est souvent exagéré.

2) C# est beaucoup mieux pour les grands projets ou lorsque les performances sont critiques. C'est mieux pour tout projet qui nécessitera vraisemblablement un débogage et un dépannage.

3) PowerShell et C# peuvent parfaitement fonctionner ensemble. Il est facile d'appeler l'un d'un autre. PowerShell est bon pour la connexion des composants .NET. Vous pouvez implémenter vos pièces critiques et complexes en C#, puis les combiner et les coller avec PowerShell.

+0

+1 .. Je ne peux pas marquer deux réponses - Merci! – LamonteCristo

+1

Je ne suis pas d'accord sur la deuxième partie du point 2. PowerShell dispose d'un outil de débogage natif respectable et tous les éditeurs de scripts modernes font un bon travail de mise en œuvre. – xcud

+0

Je sais que la réponse est assez ancienne, mais pour le point 1, il est indiqué que "... le lancement d'un projet C# complet est souvent exagéré". Si vous avez besoin d'une solution rapide (et généralement sale), vous pouvez simplement utiliser [Linqpad] (https://www.linqpad.net/) –