Tôi đọc ở đâu đó rằng System.*
namespace là cho những thứ mà là một phần của lõi .Net framework, trong khi Microsoft.*
không gian tên dành cho các phần bổ sung tùy chọn "giá trị gia tăng" bổ sung hoặc những thứ đang được phát triển.
EDIT:
Brad Abrams có một cuộc thảo luận về nó trong bài viết trên blog của ông What Does that .NET Namespace Mean: System.* and Microsoft.*
Bên cạnh đó, một trích dẫn từ Visual Basic 2005 với .NET 3.0 Lập trình viên của Reference:
Không gian tên gốc của Microsoft chứa các mục cụ thể của Microsoft. Về lý thuyết, bất kỳ nhà cung cấp nào cũng có thể triển khai .Net ngôn ngữ dịch sang mã Ngôn ngữ trung gian (IL). Nếu bạn xây dựng một ngôn ngữ như vậy, các mục trong không gian tên Microsoft nói chung sẽ không áp dụng cho ngôn ngữ của bạn. Các mục trong không gian tên Hệ thống ... sẽ hữu ích đối với người dùng ngôn ngữ của bạn khi họ sử dụng các ngôn ngữ của Microsoft, nhưng các mục trong không gian tên Microsoft có thể sẽ không hữu ích.
Điều này có nghĩa rằng nếu tôi là làm cho một ngôn ngữ Net mới, tôi sẽ có thể tận dụng các không gian tên System.Windows.Forms
để làm cho UIS, nhưng tôi có lẽ sẽ không có nhiều sử dụng cho các lớp trong không gian tên Microsoft.*
.
Thực tế Windows.Forms cũng có thể được sử dụng trong Mono, và do đó cũng được biên dịch cho Mac OS X và $ your_linux_distribution. – Residuum
Đừng lo lắng về cuộc chiến tranh lửa. Điều đó khá hiếm ở đây. Những loại câu trả lời đó sẽ được giảm giá và mất lãi khá nhanh. –
Câu hỏi thú vị - Tôi cũng muốn biết cách MS quyết định những gì diễn ra trong Hệ thống và những gì diễn ra trong Microsoft.Quá nhiều thứ trong hệ thống dường như được gắn vào Windows và quá nhiều thứ trong Microsoft có thể hoạt động trên các nền tảng thay thế. – Keith