Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果Powershell构建在.Net之上,那么编写脚本而不是C#代码的原因是什么?_C#_.net_Powershell_Build_Ildasm - Fatal编程技术网

如果Powershell构建在.Net之上,那么编写脚本而不是C#代码的原因是什么?

如果Powershell构建在.Net之上,那么编写脚本而不是C#代码的原因是什么?,c#,.net,powershell,build,ildasm,C#,.net,Powershell,Build,Ildasm,作为一个刚接触Powershell的人,我有一点不是100%清楚: 如果 “在PowerShell中,管理任务通常由 cmdlet(发音为command-lets),专用.NET类 实施特定的操作。” 编写脚本而不是使用这些类编写.Net可执行文件并将其编译为控制台应用程序的原因是什么?您可以同样轻松地问这个问题,当您可以在PowerShell中轻松创建成熟的桌面和服务器软件时,在.Net中编写应用程序的原因是什么 有理由在不同的情况下使用这两种方法。高级脚本本身就是简单的小文本文件,非常容易编

作为一个刚接触Powershell的人,我有一点不是100%清楚:

如果

“在PowerShell中,管理任务通常由 cmdlet(发音为command-lets),专用.NET类 实施特定的操作。”


编写脚本而不是使用这些类编写.Net可执行文件并将其编译为控制台应用程序的原因是什么?

您可以同样轻松地问这个问题,当您可以在PowerShell中轻松创建成熟的桌面和服务器软件时,在.Net中编写应用程序的原因是什么

有理由在不同的情况下使用这两种方法。高级脚本本身就是简单的小文本文件,非常容易编写和维护。作为一个两者都涉猎过的人,我要说在很多情况下,用一个快速编写的高级脚本比用.NET应用程序更容易完成系统维护任务

也就是说,有些东西在.NET中更容易完成(我自己使用C#),但是开发这些东西的过程要麻烦得多,需要额外的技能,这在系统管理员中并不常见


简单地说,PoSH的目标是系统管理员,.NET的目标是开发人员,但这并不是说没有交叉的空间。

我完全同意@Matt G answer

我只想补充一点,那就是傲慢的文化。与编程驱动相比,Windows系统管理员文化更受“点击”驱动(通过图形用户界面进行管理)

我曾经在Unix世界工作,在那里,系统管理员有强大的脚本编写人员(sh、csh、ksh…),需要时,他们可以在表格的角落编写一个小的“C”程序(用于性能,或充当复杂的文件过滤器等)

自从.NET(2001)诞生以来,Windows系统管理员可以使用C#编译器(可从.NET目录中以CSC.EXE的形式获得),就像Linux或Unix可以使用“cc”编译器一样,但他们没有。最好的是使用WSH(windowscriptshell),但是VBScript不是那么容易使用,需要为每种情况发现不同的COM对象

微软,多种方法促使Windows系统管理员使用命令行和脚本(WSH、netsh、wmic等)。几年来(2006年),微软决定亲自接管系统管理员,并给他们一个强大的工具,从用户界面上移除了强大的功能(Exchange2007)。所以现在SysAdmin只能使用PowerShell。但由于他们不是Devolpers,语言被解释,而“对象文化”不知何故被隐藏起来


现在,优秀的Windows系统管理员可以开发自己的C#类并将它们插入到PowerShell脚本中,系统管理员不是开发人员,他们只需要自动化他们的过程。

少一些仪式……如果我是C#人,在这种情况下,我不需要费心学习新语法,而我可以在C#中做同样的事情,对吗?(可能我在我的假设中遗漏了什么?:)…当PS第一次被开发出来时,C#不支持功能。@pencilCake你总是可以在C#中完成它,你可以使用PS,你只需要一行代码,而不是50行。这就像问问题一样“如果在Win32上构建批处理/ CMD脚本,那么编写脚本而不是C++代码的原因是什么?”