Open source a'的角色/职责是什么;壳牌公司;?

Open source a'的角色/职责是什么;壳牌公司;?,open-source,shell,naming-conventions,dynamic-language-runtime,orchardcms,Open Source,Shell,Naming Conventions,Dynamic Language Runtime,Orchardcms,我一直在看项目和项目的源代码。IronPython使用一个名为Microsoft.Scripting.Hosting.Shell的命名空间运行(是的一部分)。Orchard项目还通过各种接口(IShellContainerFactory、IShellSettings)间接使用“shell”概念进行操作 上面提到的所有项目都没有详细的文档,因此,如果您试图通过阅读源代码了解整个应用程序结构/体系结构,那么从类型(类等)的名称中提取其含义是非常有价值的 现在我想知道:当这些源代码的作者提到一个“sh

我一直在看项目和项目的源代码。IronPython使用一个名为Microsoft.Scripting.Hosting.Shell的命名空间运行(是的一部分)。Orchard项目还通过各种接口(IShellContainerFactory、IShellSettings)间接使用“shell”概念进行操作

上面提到的所有项目都没有详细的文档,因此,如果您试图通过阅读源代码了解整个应用程序结构/体系结构,那么从类型(类等)的名称中提取其含义是非常有价值的

现在我想知道:当这些源代码的作者提到一个“shell”时,他们在想什么?当我听到“shell”这个词时,我想到了类似于命令行解释器的东西。这对于IronPython是有意义的,因为它有一个交互式解释器。但对我来说,这对于网络CMS来说没有多大意义

当我遇到一种叫做“壳”的东西时,我该怎么想?一般来说,“壳”的角色和责任是什么?这个问题能回答吗?“外壳”的含义是主观的吗(使术语变得无用)


谢谢。

我认为shell的一般含义是“解释和执行命令的用户进程”

  • “用户进程”:与操作系统内核中内置的进程不同。IBM大型机世界中的JCL很难算作外壳

  • “解释并执行”:在某种形状或形式下,shell从文件或终端读取命令,并对所呈现的内容作出反应,而不是严格编程以执行特定的命令序列

  • '命令:命令的内容取决于上下文。在标准unixshell中,执行的命令主要是其他程序,shell将它们适当地链接在一起。显然,有内置的命令,并且通常有流控制语法来允许对执行命令的结果做出适当的反应

  • 在其他上下文中,可以考虑执行其他类型的命令。例如,可以设想一个“SQL Shell”,它允许用户在连接到数据库时执行SQL语句


    pythonshell将支持Pythonic符号,并将执行类似于Python的语句,其语法与Python的语法密切相关。Perl外壳将支持类似Perl的符号,并将执行类似Perl的语句。。。这一清单还在继续。(例如,Tcl有tclsh-tclshell。)

    我认为Shell的一般含义是“解释和执行命令的用户进程”

  • “用户进程”:与操作系统内核中内置的进程不同。IBM大型机世界中的JCL很难算作外壳

  • “解释并执行”:在某种形状或形式下,shell从文件或终端读取命令,并对所呈现的内容作出反应,而不是严格编程以执行特定的命令序列

  • '命令:命令的内容取决于上下文。在标准unixshell中,执行的命令主要是其他程序,shell将它们适当地链接在一起。显然,有内置的命令,并且通常有流控制语法来允许对执行命令的结果做出适当的反应

  • 在其他上下文中,可以考虑执行其他类型的命令。例如,可以设想一个“SQL Shell”,它允许用户在连接到数据库时执行SQL语句

    pythonshell将支持Pythonic符号,并将执行类似于Python的语句,其语法与Python的语法密切相关。Perl外壳将支持类似Perl的符号,并将执行类似Perl的语句。。。这一清单还在继续。(例如,Tcl有tclsh-Tcl Shell。)

    在Orchard中,“Shell”一词实际上更像是范围的隐喻。有三个嵌套作用域:主机、shell和工作

    主机是在web应用程序域期间存在的单个容器

    shell是主机根据当前配置生成的子容器。如果更改了配置,将构建一个新的shell,并放弃现有的shell

    工作是由shell创建的另一个容器,它保存在单个请求期间有效的组件

    使用shell容器的一个好处是,它有助于避免使用静态变量以及在配置更改时循环应用程序域。另一件好事是,它使Orchard应用程序域能够同时为多个“站点”提供服务,而主机拥有多个shell,并为每个请求使用相应的shell。

    在Orchard中,“shell”一词实际上更像是范围的隐喻。有三个嵌套作用域:主机、shell和工作

    主机是在web应用程序域期间存在的单个容器

    shell是主机根据当前配置生成的子容器。如果更改了配置,将构建一个新的shell,并放弃现有的shell

    工作是由shell创建的另一个容器,它保存在单个请求期间有效的组件

    使用shell容器的一个好处是,它有助于避免使用静态变量以及在配置更改时循环应用程序域。另一件好事是,当主机持有多个shell并为每个请求使用适当的shell时,它使Orchard应用程序域能够同时为多个“站点”提供服务