Warum sind Windows.Forms im System und nicht Microsoft?

8

Ich hatte immer die Idee, dass der Root-Namespace in .NET, " System ", hauptsächlich für Dinge gedacht ist, die nicht zu sehr von einer bestimmten Plattform abhängen.

Ich habe mich gefragt, ob jemand Ideen oder Einsichten hatte, warum der Windows.Forms -Namespace in System und nicht in Microsoft ist, da er auf einer Plattform ziemlich fest verankert zu sein scheint.

(Keine Flammenkriege oder unnötige MS-Attacken, wenn überhaupt möglich, bitte! :))

    
mcjabberz 23.07.2009, 21:53
quelle

3 Antworten

13

Ich habe irgendwo gelesen, dass die Namespaces System.* für Dinge sind, die Teil des Kernsystems .Net sind, während die Namespaces Microsoft.* für zusätzliche optionale Extras mit "Mehrwert" oder Dinge, die sich in Entwicklung befinden / p>

BEARBEITEN:

Brad Abrams hat eine Diskussion darüber in seinem Blogpost Was bedeutet dieser .NET-Namespace: System. * und Microsoft. *

Zusätzlich ein Zitat von Visual Basic 2005 mit .NET 3.0 Programmer's Reference :

  

Der Microsoft-Stammnamespace enthält Microsoft-spezifische Elemente. Theoretisch kann jeder Anbieter .NET-Sprachen implementieren, die in Intermediate Language (IL) -Code übersetzt werden. Wenn Sie eine solche Sprache erstellen würden, würden die Elemente im Microsoft-Namespace normalerweise nicht für Ihre Sprache gelten. Elemente im System-Namespace ... wären für Benutzer Ihrer Sprache ebenso nützlich wie für Programmierer, die die Microsoft-Sprachen verwenden, aber die Elemente im Microsoft-Namespace wären wahrscheinlich nicht so hilfreich.

Dies würde bedeuten, dass ich, wenn ich eine neue .Net-Sprache erstellen würde, den System.Windows.Forms -Namespace verwenden könnte, um UIs zu erstellen, aber ich würde wahrscheinlich nicht viel für Klassen in Microsoft.* namespaces verwenden .

    
adrianbanks 23.07.2009, 21:58
quelle
1

Meine Vermutung wäre:

Microsoft hat sich das .NET-Framework als Multi-Plattform-Plattform vorgestellt, die jedoch nur eine Laufzeitumgebung für die Windows-Plattform bereitstellen sollte. Sie gingen wahrscheinlich davon aus, dass jeder, der eine Laufzeitumgebung für eine andere Plattform bereitstellt, diese so implementieren würde, dass System.Forms verwendet werden könnte. Die Laufzeitumgebung würde die Unterschiede zwischen den nativen Implementierungen behandeln.

    
Justin Niessner 23.07.2009 21:58
quelle
0

Nur weil "Microsoft Windows" auf "Windows" abgekürzt wurde, heißt das nicht, dass das "Fenster" -Konzept nicht breiter ist als Microsoft. Alle Implementierungen von GUIs seit der ursprünglichen IBM PARC-Schnittstelle über Microsoft Windows, X11 usw. beziehen sich alle auf Windows- und Form-Steuerelemente, es ist nur so, dass Microsoft ihre spezielle Implementation "Windows" genannt hat. Daher scheint System.Windows.Forms korrekt zu sein, da es nicht notwendig ist, dass ein Fenster Teil von "Windows" ist. Wahrscheinlich sollte es nur Windows mit einem Kleinbuchstaben w sein. Aber das würde die Namenskonventionen der Namespaces durchbrechen.

    
David McEwing 23.07.2009 22:05
quelle

Tags und Links