8


0

Windows.FormsがMicrosoftではなくSystemにあるのはなぜですか?

私はいつも.NETのルートネームスペース "System"は主に特定のプラットフォームにあまり依存しないもののためのものであるという考えを持っていました。

「Windows.Forms」名前空間が「Microsoft」ではなく「System」にある理由について誰かが何かアイデアや洞察を持っているのではないかと思っていました。

(できれば火炎戦争や不要なMSバッシングはしないでください! :))

3 Answer


13


`System。`名前空間はコアの.Netフレームワークの一部であるもののためのものであり、 `Microsoft。`名前空間は追加の「付加価値のある」オプションのためのもの、または開発中のもののためのものです。

編集:

ブラッドエイブラムスは彼のブログ記事http://blogs.msdn.com/brada/archive/2008/11/16/what-does-that-net-namespace-mean-system-and-microsoft.aspxでそれについて議論しています[その.NETネームスペースの意味:System。とMicrosoft。]

さらに、Visual Basic 2005 with .NET 3.0プログラマーズリファレンス_からの引用

_ Microsoftルート名前空間には、Microsoft固有のアイテムが含まれています。 理論的には、どのベンダも中間言語(IL)コードに変換する.NET言語を実装できます。 そのような言語を作成する場合、通常、Microsoft名前空間の項目はその言語には適用されません。 システム名前空間の項目…​ マイクロソフトの言語を使用するプログラマーにとっては、あなたの言語のユーザーにとっても同じように役立つでしょうが、マイクロソフトの名前空間にある項目はおそらくそれほど役に立ちません。 _

これは私が新しい.Net言語を作ることになればUIを作るために System.Windows.Forms`名前空間を使うことができるだろうということを意味するでしょう、しかし私はおそらく Microsoftのクラスのためにあまり多くの使用をしないでしょう。 * `名前空間。


1


私の推測は、

マイクロソフトは.NETフレームワークがマルチプラットフォームであることを想定していましたが、Windowsプラットフォーム用のランタイム環境を提供することにしました。 彼らはおそらく、他のプラットフォーム用のランタイム環境を提供している人なら誰でもSystem.Formsを使用できるような方法でそれを実装するだろうと想定していました。 ランタイムは、ネイティブ実装間の違いを処理します。


0


「Microsoft Windows」が「Windows」に短縮されたからといって、「ウィンドウ」の概念がMicrosoftよりも広くないという意味ではありません。 Microsoft Windows、X11などを介したオリジナルのIBM PARCインターフェース以降のGUIのすべての実装は、すべてWindowsおよびFormコントロールを参照しています。Microsoftがそれらの特定の実装を「Windows」と呼んでいるのです。 したがって、System.Windows.Formsは、ウィンドウが "Windows"の一部である必要はないため、正しいように見えます。 おそらくそれは小文字のwだけのウィンドウであるべきです。 しかし、それは名前空間の命名規則を破るでしょう。