写点什么

为什么是 Cmdlets?

  • 2007-07-13
  • 本文字数:749 字

    阅读完需:约 2 分钟

Jeffrey Snover 描述了使用Cmdlets 和APIs 之间的区别。他总结说,“Cmdlets 是特别为系统管理人员(Admins)用键盘操作而设计的,而APIs 不是。Cmdlets 是PowerShell 的核心和精神。”

Cmdlets 是从 Cmdlet 或者 PSCmdlet 基类继承创建的。而这两个类都是通过重写 BeginProcessing、ProcessRecord 和 EndProcessing 等虚函数实现的。

这些类因它们暴露的 PowerShell 底层多少而有所区别。但是 Cmdlet 是轻量级的,能被其他的 Cmdlets 所调用, PSCmdlet 为 PowerShell 运行时,包括环境变量和 Session 状态,提供访问接口。

Jeffrey Snover 通过阐述在 PowerShell 环境下 Cmdlet 所获得的更好支持,来支持他的观点。下面是他的一些主要论点:

  • 命名。Cmdlet 的命名是明确的,能让系统管理员轻松地知道应该使用哪些命令。Cmdlets 的命名模式是动名词性质的,而且对动词的使用有很好的使用指南。参数的使用指南也很丰富。相对而言,APIs 就不是那么智能。
  • Tab 键完成(Tab-Completion)。PowerShell 为 Cmdlets 和参数提供了 Tab 键完成,而没有为 APIs 提供。
  • 帮助。Cmdlets 提供了面向系统管理员的智能的帮助。APIs 提供的是面向开发人员的帮助。
  • 发现能力。PowerShell 提供了大量对系统管理人员友好的方式,以找到像 Get-Command、Get-Help(这两个都支持 wildcards)以及 See-Also 等这样的 Cmdlets 帮助。
  • APIs 只能抛出错误,而 Cmdlets 能区分中断和非中断错误。非中断错误能更好地支持大量操作,并允许操作在收集所有的要素并组合成集合之后继续进行。
  • 通道。通过使用 Cmdlets 可以支持 PIPELINE 输入。APIs 却需要用户做一些编程工作以获得类似的结果。

Jeffery 还提到说,“在 2.0 版本里,Cmdlets 和 APIs 之间的差距会越来越大。那时,会有一些重要的函数只在 Cmdlets 里才存在。”

查看英文原文: Why Cmdlets?

2007-07-13 00:331407

评论

发布
暂无评论
发现更多内容

WEB-API的设计与开发

GeekYin

HTTP 软件设计 web tech

架构实战营 模块二:学习总结

👈

架构实战营

架构实战营 - 模块二作业

凯迪

架构实战营

业务架构训练营第 0 期模块二作业

目标一个亿

Github接近10w点赞!阿里巴巴内部Java面试参考指南

Java 程序员 架构 面试

Linux ifconfig 命令

一个大红包

4月日更

Nacos实践

程序员架构进阶

源码分析 微服务 nacos 28天写作 4月日更

如何做向上管理?

石云升

28天写作 职场经验 4月日更 向上管理

架构实战营 - 模块二作业

Sun

陪伴的进化

小天同学

陪伴 爱情 个人感悟 4月日更 亲情

让孩子爱上阅读(二)

箭上有毒

读书笔记 4月日更

Seldon 使用 (三): 模型服务如何运行

托内多

tensorflow kubeflow Kubernetes PyTorch seldon

采访彩食鲜 CTO 乔新亮:数字时代,企业如何完成数字化转型?(采访提纲)

xcbeyond

数字化转型 4月日更 人物访谈

Flutter 学习笔记(二) Container 组件

U2647

flutter 4月日更

2020从干饭人到打工人

空城机

生活 生活记录 杂记 4月日更

阿里致敬武侠首发“Java架构修炼笔记”,深入内核,拒绝蒙圈

Java架构师迁哥

wkhtmltopdf实践

风翱

4月日更 wkhtmltopdf

架构实战营 - 模块 2- 作业

冬天的树

重读《重构2》- 引入参数对象

顿晓

重构 4月日更

我是如何从零开始学Python: (1)如何选择合适的Python学习工具?

广之巅

Python 4月日更

阿里巴巴用实践告诉你,架构师到底需要掌握什么样的技术?

Java架构师迁哥

【LeetCode】存在重复元素 III Java题解

Albert

算法 LeetCode 4月日更

架构实战营 - 模块 2- 作业

请弄脏我的身体

架构实战营

增强产业链供应链自主可控能力,区块链能否贡献力量?

CECBC

区块链

模块2-微信朋友圈高性能架构设计

yu

架构实战营 模块二:课后作业

👈

架构实战营

华为“引商”,VR“刻羽”,共觅知音人

脑极体

Spark运行状态监控与优化

小舰

4月日更

nginx反向代理和负载均衡策略实战案例

赖猫

nginx

这套Java面试题推出第二天就惨遭全网封杀!已帮我拿下15个Offer

Java架构追梦

Java 阿里巴巴 架构 面试 金三银四

模块2作业

灯火阑珊

为什么是Cmdlets?_.NET_Jonathan Allen_InfoQ精选文章