9
votes

Quels sont les avantages d'un script PowerShell sur une demande de console?

Pour certaines des applications de surveillance et des tâches qui doivent être programmées pour interroger un service de service, nous utilisons traditionnellement une demande de console qui appelle à son tour certaines méthodes dans nos emplacements de la couche d'entreprise ou des sondages sur les emplacements des fichiers / FTP.

Pour une autre tâche, j'avais réalisé que j'ai commencé à jouer avec PowerShell et j'ai été assez impressionné, ce qui m'a fait penser quels sont les avantages d'un script PowerShell et d'une demande de console.

semble que le script PowerShell puisse être édité à la volée sans recompiler, ce qui en fait un plus pour des changements potentiels, mais il doit y avoir des inconvénients que je ne vois pas.

Alors, quand les gens auraient-ils conseillé d'échanger une demande de console pour un script PowerShell?


0 commentaires

5 Réponses :


2
votes

Eh bien, il semble que votre cas soit un ajustement presque parfait pour les choses que PowerShell a été conçue pour. Le seul inconvénient possible que je puisse imaginer, c'est que PowerShell peut être un peu lent, car il est interprété et non compilé et n'a pas été optimisé pour la rapidité, mais plutôt la facilité d'utilisation.


0 commentaires

9
votes

Je pense que la meilleure façon de penser ceci est, quand choisiriez-vous une application de console?

Si vous n'êtes pas préoccupé par la vitesse du temps d'exécution de saignement, la distribution à des tiers (PowerShell n'est pas encore standard), ou protégeant le code source, puis je pense que PowerShell est un conteneur fort.

D'ailleurs, PowerShell peut manipuler des objets COM à l'absence de la boîte de tâche, il fonctionne assez bien que le code de la colle entre .NET et infrastructure basée sur com.


0 commentaires

2
votes

Vous devez également envisager la taille de l'application "app". Si un seul fichier peu petit peut gérer la tâche, PowerShell est une excellente solution. Une fois que vous auriez au-delà de cela, vous devez poser des questions sur la maintenabilité et la compréhensibilité du code d'application typique. (Et le contrôle de la source ne doit pas entrer dans l'équation puisque les deux doivent être stockés là-bas!)


0 commentaires

5
votes

Le plus grand avantage pour moi est de perdre le processus de compilation et de rouler des fichiers binaires. Je vais vous donner un exemple. J'avais une application qui utilisait des assemblées hors du dossier Visual Studio Private Sidblies, des fichiers binaires d'une application et des tests de l'unité RAN lors de notre processus Compelly. Lorsque VS 2008 est sorti, je devais changer de ressources, ré-compiler, puis devancerait de déployer des fichiers binaires à tous nos serveurs de construction. J'ai décidé que c'était stupide et passa à PowerShell, alors mon script figure désormais quelle version de VSTS est installée et chargée dans la DLL la plus élevée. Maintenant, vous pouvez le faire dans une application à l'aide de la réflexion et de la reliure tardive et des trucs, mais c'est beaucoup plus facile dans PowerShell, que et chaque ingénieur de sortie peut simplement modifier rapidement le script dans un éditeur de texte lorsque nous ajoutons des fichiers binaires ou supprimer des fichiers binaires dont nous avons besoin d'instrument . Pour les petites applications inhousistes, je suis toujours PowerShell maintenant ...


0 commentaires

1
votes

Ne sous-estimez pas la valeur de l'analyse des paramètres essentiellement libres, ce qui est encore mieux avec des fonctions avancées en V2. Pensez à toutes les applications de petites consoles que vous écrivez et combien de ce code est paramétre à analyser par rapport à quelque chose d'intéressant. Pensez également à la façon dont vous gérez votre analyse de paramètres? Vous gérez-vous des paramètres de position de position vs nommés? Que diriez-vous de la validation des paramètres? Valeurs de paramètre par défaut? Que diriez-vous des fichiers de réponse? Bien que POSH ne prennent pas en charge les fichiers de réponse dans un sens littéral, en V2, il existe un opérateur de scabrupteur qui vous permet d'emballer des paramètres dans une matrice ou une hache - une capacité très similaire.

OTOH à un moment donné si mon script commence à devenir énorme et que j'invoque le code .NET plus que des cmdlets, je commence à penser à écrire une cmdlet pour faire le travail. Le débogueur vs est toujours meilleur que même les capacités de débogage V2.


0 commentaires