Size: a a a

2021 April 20

DP

Denis Petukhov in pro.net
Надо видимо на CI билдить комбинаторно с таргетами чтобы не облажаться
источник

RB

Roman Bukin in pro.net
Я на CI ещё и под разные рантаймы тесты гоняю
источник

DP

Denis Petukhov in pro.net
Ну это подразумевается)
источник

OV

O V in pro.net
Объясните, пожалуйста, что такое AppDomain. Судя по всему, AppDomain != process. Сказано, что с .NET core он всего один, один на приложение? И какая в таком случае связь с процессом? Или это нечто вроде контейнера на виртуальной машине для всех .NET приложений?
источник

IC

Ilya Chernoudov in pro.net
не надо тебе об этом думать
источник

IC

Ilya Chernoudov in pro.net
это уже легаси
источник

OV

O V in pro.net
Ну что значит не надо? Есть Троелсен, в нём есть соответствующая глава. Я её только прочитала. Он написал что это для лучшего разъяснения, но вот эта лишняя сущность всё только усложнила. Да даже mutex описан как synchronization primitive to be used for synchronization between application domain boundaries. Хорошо что я знаю, что это такое. И к этой сущности всё ещё можно получить доступ. Так что хотелось бы знать что это такое всё же
источник

IC

Ilya Chernoudov in pro.net
домен это уровень изоляции в full .net, что то типа процессов внутри процессов, только инстанс clr 1 и некоторые сборки (mscorelib) загружаются 1 раз
источник

IC

Ilya Chernoudov in pro.net
чтобы общаться между доменами можно использовать специальный маршаллер (MarshalByRefObject), это типа сериализатора
источник

IC

Ilya Chernoudov in pro.net
но встроенные типы (строки, например) передаются через границы без преобразований
источник

OV

O V in pro.net
Можно не вспоминать про full .NET, меня интересует только как это выглядит в core. Просто внутри каждого процесса есть AppDomain, внутри него лежат сборки и всё? AppDomain, по сути, равен процессу?
источник

IC

Ilya Chernoudov in pro.net
всё что связано с marshal by ref и доменами выпилено из кора, поэтому сейчас это легаси знания
источник

IC

Ilya Chernoudov in pro.net
упрощенно да
источник

DB

Dmitry Babushkin in pro.net
К слову, а я могу в .Core дёрнуть Assembly.LoadForReflectionOnly для сборки которая уже загружена в процесс?
Помнится, в своё время пришлось поднимать изолированный домен для того чтобы решить эту проблему в .NET Framework
источник

IC

Ilya Chernoudov in pro.net
В коре есть контексты для этого
источник

IC

Ilya Chernoudov in pro.net
Но лучше делать так, чтобы не понадобилось писать такой код😊
источник

DB

Dmitry Babushkin in pro.net
О, пасиб, почитаю! :)
источник

DB

Dmitry Babushkin in pro.net
Эх... ^^'''
источник

IC

Ilya Chernoudov in pro.net
Использование и отладка сборок с возможностью выгрузки в .NET Core | Microsoft Docs
https://docs.microsoft.com/ru-ru/dotnet/standard/assembly/unloadability
источник

OV

O V in pro.net
Спасибо. Буду считать, что всё поняла. То есть для каждого процесса все сборки .NET core подгружаются заново?
источник