Часто используемые и передовые практики для доменов приложений в .NET? - PullRequest
6 голосов
/ 28 октября 2009

Каковы некоторые рекомендации и рекомендации по созданию новых доменов приложений в приложении?

Кроме того, каковы некоторые общие случаи использования и примеры использования нескольких доменов приложений в приложении?

Ответы [ 3 ]

7 голосов
/ 28 октября 2009

Самый распространенный сценарий, который я видел, - это возможность обеспечить расширяемость с помощью другой модели безопасности, нежели основная программа.

Загрузка плагина в отдельном домене приложений позволяет выполнять две вещи:

  1. Вы можете реализовать более ограниченную модель безопасности
  2. Вы можете предотвратить разрыв приложения в плагине, если он глючит

Еще одно полезное использование доменов приложений - загрузка и проверка сборки. Выполнение этого в отдельном домене приложений позволяет вам получать информацию (или запускать код) из отдельной сборки, а затем выгружать всю сборку из пространства вашего процесса. Если вы загружаете сборку напрямую, выгрузить ее невозможно. Это также полезно, если вы хотите иметь возможность во время выполнения «обновить» тип до новой версии (т.е. загрузить удаленную сборку и перезагрузить ее позже).

5 голосов
/ 28 октября 2009

Рекомендуется создавать новый домен, когда вам нужно разместить сторонние компоненты в вашем приложении, которые ненадежны, или вы им не доверяете (например, подключаемые модули) или хотите иметь возможность выгрузить их.

3 голосов
/ 28 октября 2009

Типичный пример - для плагинов / подобных плагинов. Он не только позволяет вам выгружать DLL, если это необходимо, но и обеспечивает более эффективный контроль над тем, что плагину разрешено делать.

Кроме того, если вы создаете временные сборки (генерацию кода), которые хотите снова выгружать, это хороший способ сделать это. (LCG позволяет реализовывать только одиночные методы, если вы хотите реализовать полный класс, который нужно передать в «реальную» сборку).

...