Здравствуйте, Андрей Хропов, Вы писали:
iZEN>>А кто сказал, что COM и .Net — компонентные технологии?
АХ>
COM = Component Object Model.
Маркетинг. Чтобы покупали виндовс.
iZEN>>Они обе завязаны на реестр и Windows.
АХ>COM да, .NET — в принципе нет (реализация от MS — да).
АХ>Но при чем здесь компонентность?
Компонентность подразумевает компонентность. Хотя да, здесь я с модульностью попутал.
iZEN>> Даже в Mono сталкиваются с неожиданными трудностями по реализации точка-нет,
АХ>Извините, .NET — это международный стандарт, который с Windows никак не связан.
Шарашка под названием ECMA, которую спонсируют Intel, Apple и Microsoft, не такая уж и иеждународная организация по стандартизации.
Вот когда туда войдут IBM и Sun, тогда можно будет говорить об отраслевых стандартах, но не более.
ISO — вот это организация, причём международная, независимая от частных фирм и инвесторов. CLR ещё не входит в планы стандартизации на уровне ISO.
АХ>В Mono сталкиваются с трудностями в основном при реализации поведения WinForms точно как в Windows, но это уже немного другое.
Выходит, что точка-нет несовсем компонентна, если нельзя просто взять и переписать нужный компонент (библиотеку) без затрагивания остальной части (системного, низкоуровневого) кода.
iZEN>> не говоря уже о реализации COM на не-MS-платформах. Эти т.н. "компонентные технологии" не являются таковыми, так как компонентные технологии должны быть не зависимы от низкоуровневой программной платформы, на которой они работают.
АХ>А что компонентность обязательно включает в себя платформонезависимость?
АХ>Я здесь этого не нашел.
Компонентность необязательно должна быть платформонезависимой и в точка-нэт это так.
iZEN>>Приложения ведут себя иначе — не как в Windows, где Explorer или глючное пользовательское приложение легко может свалить всю систему в BSOD.
АХ>Это было во времена Win9x.
АХ>В 2000/XP/Server 2003 все гораздо лучше. Я не помню когда у меня последний раз был BSOD не по причине железа, вышедшего из строя.
Есть два узких места в линейке Windows NT, которые могут привести к BSOD или зависанию: некорректные драйверы видеокарты и драйвер печати. Часть кода работает в режиме ядра, хотя по всем канонам весь их код должен работать в режиме пользователя. Другой пример из моей практики: USB-устройство, втыкаемое пользователем, может повесить наглухо операционку, драйверы USB родные-виндовые. Это спорные моменты, конечно же, так как всё-таки приведённые примеры "работают" на уровне драйверов, что к пользовательским процессам вроде бы не относится.
Ладно, берём вирус msblast, который выбивает сервис RPC с пользовательского уровня!!!

Такое однозначно не пройдёт в *.NIX.