Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When to develop using Powershell vs C#?

I'm just getting started in PowerShell and one of my sysadmins told me that Powershell can do as much as C# can for systems management, if not more.

Please forgive the ignorance of this question, but when would I use Powershell over C#?

like image 852
makerofthings7 Avatar asked Nov 15 '10 19:11

makerofthings7


2 Answers

1) PowerShell is good for relatively small well defined tasks, especially ephemeral one-day tasks and interactive tasks when you are coding right in the command line. If a task requires just a few lines of PowerShell code (and you know that because you know PowerShell well enough!) then launching a full C# project is often overkill.

2) C# is much better for large projects or where performance is critical. It is better for any project that will presumably require debugging and troubleshooting.

3) PowerShell and C# can perfectly work together. It is easy to call one from another. PowerShell is good for connecting .NET components. You can implement your complex and performance critical pieces in C# and then combine and glue those pieces together with PowerShell.

like image 141
Roman Kuzmin Avatar answered Sep 21 '22 06:09

Roman Kuzmin


When I worked in the Windows build lab a LONG time ago (1997) the rule I was taught that if the code satisfies either of these two conditions write it in interpreted script, otherwise write it in compiled code:

  1. there's more overhead than code (using/include lines, function declaration, etc)
  2. there's a better than 10% chance that the code will change before it gets run again
like image 20
xcud Avatar answered Sep 20 '22 06:09

xcud