Здравствуйте, Sinclair, Вы писали:
S>Э-э, по мне так итог совсем другой — при разработке новых API, которые должны вызываться всеми, удобнее сделать их неуправляемыми. Тогда можно иметь обертки обоих типов — управляемые и неуправляемые.
Вопрос ведь не в управляемости, а в WinAPI. Тут показательна ситуация с DCE — есть некое нативное API (неуправляемое), а к нему есть управляемая обертка и эмуляция GDI. ИМХО именно об этом и говорит Влад.
S>Так что твоя точка зрения как минимум не совпадает с точкой зрения ответственного руководства в МС.
Точка зрения руководства МС — понятие в большей степени виртуальное.
... <<RSDN@Home 1.2.0 alpha 4 rev. 1090 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Константин Л., Вы писали:
КЛ>Ну переходники там нифига не легкие. Кроме того, нормальный interop появился только с выходом c++/cli. Все остальное — трах с маршалингом.
Маршалинг нужен не для работы языков, отличных от C++, а для написания верифицируемого safe кода (в том числе и на с++/cli).
... <<RSDN@Home 1.2.0 alpha 4 rev. 1090 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Sinclair, Вы писали:
C>>Кстати, в Windows это совсем не так. Windows задумывалась как модульная система с различными подсистемами (Win32, OS/2, POSIX). Часть Win32 реализована в виде отдельного процесса (csrss.exe), коммуникация с которым идёт с помощью LPC (Local Procedure Call). S>Я наверное слишком тупой. Что такое LPC? Вроде бы это часть недокументированного Native API.
LPC — это что-то типа RPC, но оптимизированое для локальной работы (оно умеет делать remap между адресными пространствами для крупных блоков данных и т.п.)
Оно хоть и недокументированое, но очень хорошо изученое и широко применяемое.
S>То есть для того, чтобы сделать вызов LPС, я один хрен загружаю некую DLL, импортирую символ, и выполняю call. S>То, что за кадром происходит какое-то злое шаманство — пусть происходит. Но от этого факт наличия DLL и символа никуда не исчезает.
Никто не мешает сделать этот один метод в виде магического хука внутри .NET. Кроме того, есть и Quick LPC, который вообще после начальной установки соединения работает на сегменте расшареной памяти и паре семафоров — тут даже никакие хуки не понадобятся.
S>Ага. И никому не говорить, что это PInvoke Типа народ не догадается, что можно обернуть то же самое в, к примеру, Delphi7 Unit с точно такими же импортами.
Можно. А смысл? Ты сейчас при (большом) желании сам можешь новую подсистему для Windows сделать.
Здравствуйте, VladD2, Вы писали:
E>>Вот, скажем, надо нам перенести с 32-битной платформы с одним эндианом на 48-битную с другим. При этом с циска на риск. И чем управляемость кода облегчит нам жизнь?
VD>Я вот не понимаю, что тут не понимать?
Ты знаешь что такое endian?..
VD>Как раз демонстрирует бинарную переносимость программ. Компилируешь программу с помощью VS 2008 и запускаешь ее под Моно на RISC-процессоре. Ну, и соответственно наоборот.
Да? И если у тебя что-то перестало в int помещаться, то что нам даст управляемость?
А вот ещё пример. У меня есть файл из 16-битных целых. Я хочу сортировтаь их парами, для этого я читаю их как 32-ные, и сортирую, потом пишу в другой файл. Как эта программа отрабаотет по твоему на платформе с другим endian?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
D>Но разработчики должны медленно отходить от устаревших API и перемещаться к управляемому коду и .NET Framework – но мы будем поддерживать обе модели долгое, очень долгое время.
Использование дотнета в Висте есть одна из причин, почему в ней многое отвратно тормозит и люди от нее отворачиваются.
У MS уже сейчас проблемы из-за низкого принятия Висты рынком, если они еще совместимость назад бросят — то им будет еще хуже, больше причин не апгредиться для людей.
Но новые вещи да, на дотнете все будут, ибо винду уже поджимает Wine, а покаааа еще линуксоиды склонируют весь дотнет с авалоном и прочими радостями...
VD>Если же тебе интересен вопрос портируемость, то читай базовую информацию по дотнету и Яве. Там все очень доходчиво сказано и хорошо обосновано. Повторять ее бессмысленно, на мой взгляд.
Портируемость .NET определяется только волей микрософта, а ему нафиг не надо куда-то ее портировать с виндов.
Впрочем, Win32 тоже не портируем ни на что, кроме Вайна и ВинМобайла.
Здравствуйте, Maxim S. Shatskih, Вы писали:
MSS>Но новые вещи да, на дотнете все будут, ибо винду уже поджимает Wine, а покаааа еще линуксоиды склонируют весь дотнет с авалоном и прочими радостями...
Линуксоиды сделают "ход конём" и научат .NET FW работать под Wine Собственно, .NET FW 2.0 под ним прекрасно работает, а в .NET FW 3/3.5 только инсталлятор глючит.
VD>Ты что-то путаешь. Видео подсистема — да была частично убрана в ядро. GDI/USER?
Почти все имплементация USERа, в частности, глобальный список всех окон и любой код, который его апдейтит — в ядре. DefWindowProc, возможно, нет, как и стандартные классы типа button. Вызовы GetXxx тоже нет — список окон замаплен read-only в юзер моду.
Примерно то же самое и с GDI. Весь DIB engine — "базовый класс" для видеодрайверов — в ядре.
В CSRSS остались только консольные окна и внутренности ExitWindowsEx, с окошками program not responding и так далее.
VD>Она всегда была обязательной. Читай своего любимого Русиновича внимательнее.
Да, всегда.
VD>Этого не будет просто потому, что это ничего не даст.
+1
VD>Это заблуждение.
Переходят медленно и плохо (кроме самого микрософта, а у них это политика). Думаю, что с 06 года процесс вообще крайне замедлился.
Здравствуйте, Maxim S. Shatskih, Вы писали:
MSS>Впрочем, Win32 тоже не портируем ни на что, кроме Вайна и ВинМобайла.
Когда-то NT была на многих архитектурах доступна. Просто оказалось что это не особо кому-то надо...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Cyberax, Вы писали:
C>Линуксоиды сделают "ход конём" и научат .NET FW работать под Wine Собственно, .NET FW 2.0 под ним прекрасно работает, а в .NET FW 3/3.5 только инсталлятор глючит.
Зверски засудят. Всех поимённо по копирайтам в исходниках и по анализу логов CSV...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Да? И если у тебя что-то перестало в int помещаться, то что нам даст управляемость?
int в .NET всегда 32 бита
E>А вот ещё пример. У меня есть файл из 16-битных целых. Я хочу сортировтаь их парами, для этого я читаю их как 32-ные, и сортирую, потом пишу в другой файл. Как эта программа отрабаотет по твоему на платформе с другим endian?
endian тоже фиксированный.
... <<RSDN@Home 1.2.0 alpha 4 rev. 1090 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
C>>Собственно, .NET FW 2.0 под ним прекрасно работает, а в .NET FW 3/3.5 только инсталлятор глючит. AVK>Лицензия этого не позволяет
Эти пункты лицензии могут быть признаны ничтожными. Прецеденты (в области железа) есть.
Сейчас какие-то камикадзе в США начали выпускать клоны Mac'ов — вот и посмотрим что будет.
Здравствуйте, Erop, Вы писали:
C>>Линуксоиды сделают "ход конём" и научат .NET FW работать под Wine Собственно, .NET FW 2.0 под ним прекрасно работает, а в .NET FW 3/3.5 только инсталлятор глючит. E>Зверски засудят. Всех поимённо по копирайтам в исходниках и по анализу логов CSV...
Кого и за что? WINE абсолютно легален. .NET FW тоже будут ставить пользователи.
Может быть проблема у самих пользователей из-за лицензии .NET FW, но это уже вопрос отдельный.
Здравствуйте, Cyberax, Вы писали:
C>>>Собственно, .NET FW 2.0 под ним прекрасно работает, а в .NET FW 3/3.5 только инсталлятор глючит. AVK>>Лицензия этого не позволяет C>Эти пункты лицензии могут быть признаны ничтожными. Прецеденты (в области железа) есть.
На основании чего, собственно?
... <<RSDN@Home 1.2.0 alpha 4 rev. 1090 on Windows Vista 6.0.6001.65536>>
C>>>Линуксоиды сделают "ход конём" и научат .NET FW работать под Wine Собственно, .NET FW 2.0 под ним прекрасно работает, а в .NET FW 3/3.5 только инсталлятор глючит. E>>Зверски засудят. Всех поимённо по копирайтам в исходниках и по анализу логов CSV... C>Кого и за что? WINE абсолютно легален.
разве? они же, вроде, многое реверс-инжинирингом добились
AVK>int в .NET всегда 32 бита AVK>endian тоже фиксированный.
.NET пока что на одной платформе, так что о переносимости говорить вообще странно, но если таки возникнет вопрос о переносе на платформу в 48-бит и другим endian я на тебя посмотрю...
В некотормо смысле есть ещё более переносимые среды, тогда. Скажем BASIC, например, LISP, Prolog... Зачем вообще с какими-то GC заморачиваться?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Cyberax, Вы писали:
C>Кого и за что? WINE абсолютно легален. .NET FW тоже будут ставить пользователи.
Того, кто будет целенаправленно добиваться запуска .Net под WINE. За разработку ПО для пиратства.
C>Может быть проблема у самих пользователей из-за лицензии .NET FW, но это уже вопрос отдельный.
У пользователей тоже будут. И у продавцов-распространителей, кстати, тоже...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
AVK>>int в .NET всегда 32 бита AVK>>endian тоже фиксированный. E>.NET пока что на одной платформе
Да ну брось ты. Сам дотнет есть на x86, x64, IA64. CF есть на ARM. Кроме того есть Моно, которое под кучу платформ.
E>, так что о переносимости говорить вообще странно, но если таки возникнет вопрос о переносе на платформу в 48-бит и другим endian я на тебя посмотрю...
Не надо смотреть на меня, надо смотреть на Java.
E>В некотормо смысле есть ещё более переносимые среды, тогда. Скажем BASIC, например, LISP, Prolog... Зачем вообще с какими-то GC заморачиваться?
У них нет бинарной совместимости.
... <<RSDN@Home 1.2.0 alpha 4 rev. 1090 on Windows Vista 6.0.6001.65536>>