Прочитав сие http://lingvoforum.net/index.php/topic,18713.0.html, задумался.
Для Ъ:
[Serializable]
internal enum OSName
{
Invalid = 0;
NT4 = 0x81,
Unknown = 1,
Win2k = 130,
Win95 = 0x41,
Win98 = 0x42,
Win9x = 0x40,
WinME = 0x43,
WinNT = 0x80
}
[Serializable]
public enum PlatformID
{
Win32S,
Win32Windows,
Win32NT,
WinCE
}
Правильно ли я понимаю, что т. н. кроссплатформенность и переносимость .NET в понимании Microsoft заключается в переносимости только между разными версиями Windows?
Интересные комментарии по ссылке:
В представлении Майкрософт все эти ваши линуксы или никому не известны, или invalid. Забавно, что библиотека классов эта стандартизована Ecma. Какой-то платформенный шовинизм, не находите? Интересно, как себя ведёт моно, ведь у публичного PlatformID нету даже намёка на невиндовость (а у приватного OsName есть)
Ах, гугл говорит, в Mono добавлен кустарный PlatformID.Unix
Я тоже когда первый раз читал о .НЕТ все удивлялся... Да чтоб Мелкомягкие сделали что-то в сторону кроссплатформенности? Это какая-то фантастика, что-то тут нечисто, им это никаким образом не может быть выгодно.
Я так понимаю, идею о кроссплатформенности маркетологи придумали, когда уже фреймворк в целом был готов. Изначально не было этого в плане. Судя по архитектуре классов, первоначально фреймворк был задуман как кросс-языковая Visual-Basic-подобная платформа чисто под казуальные нужды Windows, как замена Visual Basic 6.
Тут как раз Sun засудила Microsoft за доработки в области их реализации Java, поэтому команда J++ соединилась с командой Visual Basic 6 (где-то на их сайте есть инфо, что первоначальный базис .NET'а был разработан бывшей командой Visual Basic 6), вылезли маркетологи с модной идеей кроссплатформенности, и так появился C# — язык с семантикой Visual Basic и с синтаксисом Java.
Ессно, что ничего своего придумать сначала они не могли, поэтому библиотека класса чуть более, чем наполовину является копией библиотеки классов Java: я портировал один сеть-ориентированный код с C# на Java меньше чем за полчаса, нужно было только C#-овские события развернуть в анонимные классы Java, переименовать какой-нибудь StringBuffer в StringBuilder и убрать обобщения, которых там ещё не было — абсолютно никаких изменений в логике — и вуаля.
Если оно всё не так, как я предполагаю, то мне их искренне жаль
Ну и ессно на чудеса кроссплатформенности также какбэ намекает расширение *.exe
Жду комментариев от mono