Лингвофорум

Общий раздел => Наука и техника => Компьютеры => Тема начата: Алексей Гринь от августа 20, 2009, 04:52

Название: .NET Framework
Отправлено: Алексей Гринь от августа 20, 2009, 04:52
Жгут:

(http://s44.radikal.ru/i106/0908/4f/b799a4f4f8c0.jpg)

в то время как:

(http://i057.radikal.ru/0908/40/1b03e28e0755.jpg)

В представлении Майкрософт все эти ваши линуксы или никому не известны, или invalid. Забавно, что библиотека классов эта стандартизована Ecma. Какой-то платформенный шовинизм, не находите? :) Интересно, как себя ведёт моно, ведь у публичного PlatformID нету даже намёка на невиндовость :') (а у приватного OsName есть :D)
Название: .NET Framework
Отправлено: Алексей Гринь от августа 20, 2009, 05:00
Ах, гугл говорит, в Mono добавлен кустарный PlatformID.Unix

Такие дела.
Название: .NET Framework
Отправлено: RawonaM от августа 20, 2009, 09:49
Я тоже когда первый раз читал о .НЕТ все удивлялся... Да чтоб Мелкомягкие сделали что-то в сторону кроссплатформенности? Это какая-то фантастика, что-то тут нечисто, им это никаким образом не может быть выгодно.
Название: .NET Framework
Отправлено: Алексей Гринь от августа 22, 2009, 09:02
Цитата: RawonaM от августа 20, 2009, 09:49
Я тоже когда первый раз читал о .НЕТ все удивлялся... Да чтоб Мелкомягкие сделали что-то в сторону кроссплатформенности? Это какая-то фантастика, что-то тут нечисто, им это никаким образом не может быть выгодно.

Я так понимаю, идею о кроссплатформенности маркетологи придумали, когда уже фреймворк в целом был готов. Изначально не было этого в плане. Судя по архитектуре классов, первоначально фреймворк был задуман как кросс-языковая 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 и убрать обобщения, которых там ещё не было — абсолютно никаких изменений в логике — и вуаля.

Если оно всё не так, как я предполагаю, то мне их искренне жаль :)
Название: .NET Framework
Отправлено: Алексей Гринь от августа 22, 2009, 09:09
Ну и ессно на чудеса кроссплатформенности также какбэ намекает расширение *.exe :)
Название: .NET Framework
Отправлено: myst от сентября 1, 2009, 18:43
Цитата: Алексей Гринь от августа 22, 2009, 09:09
Ну и ессно на чудеса кроссплатформенности также какбэ намекает расширение *.exe :)
Точнее формат PE. :)
Название: .NET Framework
Отправлено: Алексей Гринь от сентября 1, 2009, 22:58
Цитата: myst от сентября  1, 2009, 18:43
Точнее формат PE. :)
Я в принципе не вкурил, нафиг они так сделали. Ведь там по сути, действительно, весь PE заполняется, нативная точка входа, как если бы это была нативная программа, все дела... Лишние байты. Лоадер Виндовс находит точку входа, исполняет её, там всякого рода инициализация-костыли типа динамического линкования с mscorlib.dll, который уже только после всех нужных махинаций-костылей после своего запуска читает *.exe, наверняка ещё раз проверяет все PE-прибамбасы, и только затем читает MSIL-образ.

Так сложно было сделать какой-нибудь обычный тип файлов *.net, который при установке .NET Framework в реестре помечался бы "открывать с помощью dotnet.exe", например (ну как в моне - mono myFirstBydloProgram.exe или в жабе java myFirstBydloProgram.java).

Типа, чтобы пользователи не видели разницы? Типа *.exe — привычный формат приложений, никто не будет confused, типа, пользователю думать не надо о том, как это сделано — лоадер всё решит и продиспетчит. Но как-то вся эта идея ломается, когда такой обычный пользователь щёлкает по myFirstBydloProgram.exe, а ему пишут: «Не найден файл mscorlib.dll». В итоге юзер пойдёт в интернет и всё узнает о .NET. В любом случае. Поэтому не вижу особого смысла скрывать реализацию под одним и тем же расширением *.exe