Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
В .NET Core свойство
UseShellExecutefalsetrueProcess.Start()ProcessStartInfoUseShellExecutetrueProcess.Start("msedge")Использование команд операционной системы с классом ProcessStartInfo
Помимо применения ярлыков операционной системы для запуска приложений с классом
ProcessStartInfoProcessStartInfostatic void UseApplicationVerbs(){ int i = 0; // Укажите здесь фактический путь и имя документа на своей машине ProcessStartInfo si = new ProcessStartInfo(@"..TestPage.docx"); foreach (var verb in si.Verbs) { Console.WriteLine($" {i++}. {verb}"); } si.WindowStyle = ProcessWindowStyle.Maximized; si.Verb = "Edit"; si.UseShellExecute = true; Process.Start(si);}Первая часть кода выводит все команды, доступные для документа Word:
***** Fun with Processes ***** 0. Edit 1. OnenotePrintto 2. Open 3. OpenAsReadOnly 4. Print 5. Printto 6. ViewProtectedПосле установки
WindowStyleMaximizedVerbEditPrintТеперь, когда вы понимаете роль процессов Windows и знаете способы взаимодействия с ними из кода С#, можно переходить к исследованию концепции доменов приложений .NET.
На заметку! Каталог, в котором выполняется приложение, зависит от того, как вы его запускаете. Если вы применяете команду
dotnet run.bindebugnet5.0Домены приложений .NET
На платформах .NET и .NET Core исполняемые файлы не размещаются прямо внутри процесса Windows, как в случае традиционных неуправляемых приложений. Взамен исполняемый файл .NET и .NET Core попадает в отдельный логический раздел внутри процесса, который называется доменом приложения. Такое дополнительное разделение традиционного процесса Windows обеспечивает несколько преимуществ.
• Домены приложений являются ключевым аспектом нейтральной к операционным системам природы платформы .NET Core, поскольку такое логическое разделение абстрагирует отличия в том, как лежащая в основе операционная система представляет загруженный исполняемый файл.
• Домены приложений оказываются гораздо менее затратными в смысле вычислительных ресурсов и памяти по сравнению с полноценными процессами. Таким образом, среда CoreCLR способна загружать и выгружать домены приложений намного быстрее, чем формальный процесс, и может значительно улучшить масштабируемость серверных приложений.
Отдельный домен приложения полностью изолирован от других доменов приложений внутри процесса. Учитывая такой факт, имейте в виду, что приложение, выполняющееся в одном домене приложения, не может получать данные любого рода (глобальные переменные или статические поля) из другого домена приложения, если только не применяется какой-нибудь протокол распределенного программирования.
На заметку! Поддержка доменов приложений в .NET Core изменилась. В среде .NET Core существует в точности один домен приложения. Создавать новые домены приложений больше нельзя, поскольку это требует поддержки со стороны исполняющей среды и в общем случае сопряжено с высокими накладными расходами. Изоляцию сборок в .NET Core обеспечивает класс
ApplicationLoadContextКласс System.AppDomain
С выходом версии .NET Core класс
AppDomainВзаимодействие со стандартным доменом приложения
С помощью статического свойства
AppDomain.CurrentDomainAppDomainЧтобы научиться взаимодействовать со стандартным доменом приложения, начните с создания нового проекта консольного приложения по имени
DefaultAppDomainAppProgram.csAppDomainusing System;using System.IO;using System.Linq;Похожие книги на "Язык программирования C#9 и платформа .NET5", Троелсен Эндрю
Троелсен Эндрю читать все книги автора по порядку
Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mir-knigi.info.