代码之家  ›  专栏  ›  技术社区  ›  mcjabberz

为什么Windows.Forms在系统中而不是在Microsoft中?

  •  8
  • mcjabberz  · 技术社区  · 15 年前

    我一直认为.NET中的根命名空间, System “,主要用于不太依赖特定平台的内容。

    我想知道是否有人对为什么 Windows.Forms 命名空间处于 系统 而不是 Microsoft 因为它似乎是在一个平台中根深蒂固的。

    (如果可能的话,请不要进行火焰大战或不必要的女士抨击!:)

    3 回复  |  直到 15 年前
        1
  •  13
  •   adrianbanks    15 年前

    我在某个地方读到 System.* 名称空间用于作为核心.NET框架一部分的内容,而 Microsoft.* 名称空间用于附加的“增值”可选附加项或正在开发的内容。

    编辑:

    布拉德·艾布拉姆斯在他的博客中对此进行了讨论。 What Does that .NET Namespace Mean: System.* and Microsoft.*

    另外,引用自 带有.NET 3.0程序员参考的Visual Basic 2005 :

    Microsoft根命名空间包含Microsoft特定项。理论上,任何供应商都可以实现.NET语言,并将其转换为中间语言(IL)代码。如果要构建这样的语言,Microsoft命名空间中的项通常不会应用于您的语言。系统命名空间中的项…对您的语言用户和使用Microsoft语言的程序员一样有用,但Microsoft命名空间中的项可能没有那么有用。

    这意味着,如果我要创建一种新的.NET语言,我将能够使用 System.Windows.Forms 命名空间来创建uis,但我可能对中的类没有太大的用处。 微软* 命名空间。

        2
  •  1
  •   Justin Niessner    15 年前

    我想应该是:

    微软设想.NET框架具有多平台的能力,但它们只会为Windows平台提供一个运行时环境。他们可能认为任何为另一个平台提供运行时环境的人都会以可以使用System.Forms的方式实现它。运行时将处理本地实现之间的差异。

        3
  •  0
  •   David McEwing    15 年前

    仅仅因为“微软视窗”被删节为“视窗”,并不意味着“视窗”的概念并不比微软宽。自从最初的IBMParc接口通过Microsoft Windows、X11等实现之后,所有的gui都涉及到Windows和表单控件,只是微软称它们的特定实现为“Windows”。因此,system.windows.forms似乎是正确的,因为窗口不是“windows”的一部分。对它来说,可能只是具有小写w的窗口,但这将打破名称空间的命名约定。