Powershell vs C#

时间:2013-08-19 04:19:21

标签: c# powershell

所以,在我援引SO纯粹主义者的愤怒之前,我知道When to develop using Powershell vs C#?。但是我相信从那时起,现有技术发生了变化。

首先,最后一个Powershell与C#问题的重点是,Powershell是一种解释性语言,而C#是一种编译语言。

然而我觉得随着罗斯林的成熟,这个论点将毫无用处。

那么我为什么要学习Powershell。鉴于:

  • C#可以(理论上)在解释环境中运行。
  • C#具有更好的工具支持(例如Resharper)和文档
  • C#有很好的错误检查(编译器)
  • 我已经知道C#

3 个答案:

答案 0 :(得分:6)

我认为人们需要在这个问题上开箱即用。停止尝试将PowerShell与C#进行比较,或者作为替代,更多的是补充它而不是替换它。

我是一名DBA,但越来越多的人发现自己正在做类似开发人员的任务,以便更多地自动化我的工作。我目前正在为我所工作的公司开发一个评估工具,现在用PowerShell编写。

PowerShell由Microsoft创建,并且越来越受管理员或管理应用程序(SharePoint,Exchange,AD等)的管理员的欢迎。在这种情况下,现在需要学习和使用PowerShell。 Microsoft已经声明,任何针对Windows Server的产品都必须具有PowerShell功能,并且GUI界面必须使用下面的PowerShell(无法找到它的来源,但已阅读并听到过)。

我最近一直在阅读这篇Windows PowerShell for Developers,发现作者在他的开发工作中使用它是非常有趣的。最多可以获得电子书并阅读它。

我认为开发人员可以从PowerShell中受益的一些观点(至少我是全职的时候会这样做):

  1. 它允许您更快地编写程序中较小的任务(例如,迭代文件中的数据,搜索Windows文件系统中的文件等)。
  2. 我认为它可以用作部署工具的一致性。您实际上可以在PowerShell控制台中编译代码,因为它基于并且可以访问.NET结构。
  3. 如前所述,如果您想为帮助台编写一个小程序来说Active Directory,您可以使用PowerShell命令行执行命令和任务,而不是尝试绑定到所有.NET类。命令行开关已具有帮助台用户可以使用的绑定和标准命令。

答案 1 :(得分:4)

因此,您可以管理任何Windows服务器工具,例如

  • 交换
  • Sql Server
  • 的SharePoint
  • Active Directory
  • TFS

因此您可以部署和管理Azure服务,以便部署和管理您的AWS服务,原因很多

答案 2 :(得分:4)

要进行精简,PowerShell对于管理员来说更是如此。这是因为它提供了类似的工具(cmdlet)来管理不同的系统

但是PowerShell对于开发人员在处理文件系统时非常有用。上周我必须在许多.NET解决方案中找到相同的字符串。使用3个cmdlet我在一秒钟内找到了我需要的东西。在C#中开发相同需要花费很多时间