Как правило, при написании .NET программ используются не только классы из .NET BCL, но и сторонние библиотеки. Во время выполнения программы все используемые библиотеки должны быть найдены. Для этого зависимые dll кладут в одну папку с exe файлом.
Однако существуют программы, использующие сторонние библиотеки, но при этом состоящие из одного единственного файла. Все утилиты от SysInternals, а также любимый мной LINQPad представляют из себя один файл в котором содержится все, что требуется для работы. Пользоваться такими утилитами одно удовольствие — они сразу готовы к использованию, их удобно передавать и хранить.
В статье рассказывается, как создавать такие автономные программы из одного файла. Разобран пример как со сжатием зашить библиотеку AutoMapper в программу и как ее потом достать и использовать.
Код к статье
Исходный код к статье — скачать
Создание оконного приложения С++/Visual studio 2019/Windows Form
Код программы использует стороннюю библиотеку AutoMapper. Чтобы убедиться в работоспособности библиотеки после ее зашития в ресурсы, в программе вызывается код из семплов к библиотеке. Этот код здесь не приведен, ибо это статья не об AutoMapper. Но сама библиотека интересная и полезная — рекомендую посмотреть, что же она делает в коде.
Подход
Чтобы .NET код мог работать, в использующий его AppDomain нужно загрузить сборку, содержащую типы, которые используются в коде. Если тип находится в сборке, которая еще не была загружена в AppDomain, CLR производит поиск этой сборки по ее полному имени. Поиск происходит в нескольких местах, где именно — зависит от настроек AppDomain. Для настольных приложений это обычно GAC и текущая папка.
Если CLR не удалось найти сборку, вызывается событие AppDomain.AssemblyResolve. Событие дает возможность загрузить требуемую сборку вручную. Поэтому для реализации автономной программы, состоящей из одного exe файла, достаточно зашить все зависимые сборки в ресурсы и в обработчике AssemblyResolve подгружать их.
Подробности про механизм нахождения сборок можно найти в книге Essential .NET, Volume 1: The Common Language Runtime (Don Box, Chris Sells) — 8 глава, AppDomains and the Assembly Resolver секция.
Архивация сборок
Удобно класть в ресурсы сборки в архивированном виде. Архивация уменьшает размер итоговой программы приблизительно в 2 раза. Скорость запуска увеличивается, но эти доли секунды мало кто заметит. А вот уменьшение размера файла позволит его быстрее качать по сети.
Использование сборки из ресурсов
Итак, у нас есть работающий проект, использующий сторонние библиотеки. Хочется, чтобы exe файл проекта был автономен и не требовал наличия зависимых dll в своем каталоге.
Полученную ранее архивированную сборку добавляем в ресурсы проекта через Project Properties-Resources-Files. Студия при добавлении ресурса генерирует код, который позволяет использовать добавленный ресурс через Resources класс.
Как бесплатно создать приложение для Android онлайн | Сервис GiveMeApp
Регистрируем обработчик AssemblyResolve (до использования классов зависимой библиотеки):
AppDomain .CurrentDomain.AssemblyResolve += AppDomain_AssemblyResolve; |
Код обработчика:
private static Assembly AppDomain_AssemblyResolve( object sender, ResolveEventArgs args ) if ( args.Name.Contains( «AutoMapper» ) ) Console .WriteLine( «Resolving assembly: » , args.Name ); |
// Загрузка запакованной сборки из ресурсов, ее распаковка и подстановка
using ( var resource = new MemoryStream ( Resources .AutoMapper_dll ) )
using ( var deflated = new DeflateStream ( resource, CompressionMode .Decompress ) )
using ( var reader = new BinaryReader ( deflated ) )
var one_megabyte = 1024 * 1024;
var buffer = reader.ReadBytes( one_megabyte );
return Assembly .Load( buffer );
>
>
Для нескольких зависимых библиотек стоит ввести соглашение, согласно которому имя ресурса и искомой сборки совпадают. Тогда можно с помощью отражения автоматически искать требуемую библиотеку в ресурсах.
По умолчанию зависимые библиотеки, добавляемые через References, копируются в выходную директорию проекта. Чтобы AssemblyResolve сработал, нужно либо скопировать выходной exe файл в другую директорию, либо запретить копировать зависимые библиотеки в конечную директорию через References-AutoMapper-Properties-Copy Local=false.
Заключение
Включение зависимых сборок в ресурсы самой программы позволяет ей работать автономно. Для запуска требуется один лишь exe файл. Это важно для служебных утилит, сразу готовых к использованию.
Фактически такие автономные программы не требуют установки и их удобно передавать по сети или хранить на флешке. Архивирование сборок позволяет уменьшить размер программы и больше таких программ разместить на флешке / быстрее выкачивать из сети.
- .net
- AppDomain
- автономная программа
Источник: habr.com
Как сделать приложение для Mac из любого сайта
В рабочем процессе все чаще используются простые и полезные веб-сервисы вместо тяжелых и громоздких приложений. Это вынуждает держать с десяток дополнительных вкладок в браузере и тратить кучу времени на поиск нужной.
Есть способ упростить работу и превратить часто используемые сайты в отдельные приложения.
? Спасибо re:Store за полезную информацию. ?
Зачем делать из сайта приложение
Разработчики большинства сервисов в первую очередь ориентируется на мобильные платформы и не выпускают официальные клиенты для настольных операционных систем.
Пользователи вынуждены использовать веб-версию в отдельной вкладке браузера или искать сторонние клиенты. Последние могут работать нестабильно или вовсе воровать конфиденциальную информацию. Лучше уж превратить нужный сайт в приложение самостоятельно.
Во-первых, используемый сервис не будет занимать отдельную вкладку в браузере.
Во-вторых, его будет быстрее отыскать в доке или строке меню.
В-третьих, при работе с отдельным приложением его легко учитывать в сервисе Экранное время или любом другом трекере активности на компьютере.
Так можно следить за своими посиделками в Instagram, TikTok либо VK. Получится удобно слушать плеер стримингового сервиса, пользоваться переводчиком или конвертером валют.
Как превратить любой сайт в приложение для Mac
Как оформить приложения в курсовой работе по ГОСТ + образец
Хотите знать, как сдать курсовую без проблем? Позаботиться о грамотном оформлении приложений в курсовой работе.
А как выглядят и оформляются приложения в курсовой по ГОСТ, мы расскажем в статье. И в конце приведём пример приложений в курсовой работе, оформленных по всем правилам. Читайте наши советы и пишите курсовые и дипломы на отлично!
Подписывайтесь и следите за новостями на нашем телеграм-канале. И не забывайте пользоваться акциями и скидками от компании, чтобы совершать заказы выгоднее.
Нужна помощь?
Доверь свою работу кандидату наук!
Узнать стоимость бесплатно
Что такое приложение в курсовой работе
Прежде чем рассказать, как оформлять приложения в курсовой, стоит понять, какие конкретно части работы входят относят к этой категории.
Приложением в курсовой называют всю справочную информацию, ссылки на которую студент использует в своей работе.
В качестве приложений к курсовой работе могут выступать:
- дополнительные образцы и примеры, подтверждающие выводы;
- графические материалы;
- изображения, размер которых превышает формат А4;
- таблицы и графики;
- диаграммы;
- чертежи;
- статистические данные;
- математические формулы и расчёты;
- географические карты;
- разные планы;
- исследовательские отчёты;
- правовые акты;
- алгоритмы и программы;
- анкеты участников исследования;
- оригиналы переводимых текстов.
Зачем делать приложение в курсовой работе
Важно не только понимать, как правильно оформить приложение в курсовой, но и зачем это нужно. На самом деле этот раздел несёт несколько функций:
- приводит справочную информацию;
- иллюстрирует тезисы;
- подтверждает выводы;
- усиливают аргументацию, которая приводится в основном тексте.
Если у комиссии возникнут вопросы на защите, она может обратиться к данным, собранным в приложении. Это позволит оценить, правильные ли выводы сделал студент, и принять решение об итоговой оценке за работу. Поэтому стоит обратить усиленное внимание на образцы, чтобы точно знать, как оформляются приложения в курсовой.
Обязательно ли приложение в курсовой работе
Прежде чем мы перейдём непосредственно к ответу на вопрос, как делать приложение в курсовой, давайте разберёмся — а обязательно ли вообще его добавлять?
Ответ зависит от характера вашей курсовой. Если вам необходимо перечислять формулы, приводить исследования и использовать другой доказательный или информационный материал, то приложения обязательно должны присутствовать. Если же дополнительные материалы не нужны или они невелики и помещаются в тексте работы, то ссылки на приложение в курсовой можно не делать.
Оформление приложения в курсовой работе
Правила оформления курсовой и дипломной работы во многом совпадают. Например, придётся следовать всё тем же рекомендациям и требованиям ГОСТ. Так как же оформляются приложения в курсовой работе? Давайте рассмотрим обязательные моменты.
Правила оформления нескольких приложений
Как правильно оформлять несколько приложение в курсовой работе? Если планируете включать разные виды справочного и информационного материала: графики, рисунки, таблицы, изображения, то располагайте каждый из них с новой страницы.
Причём их порядок должен быть последовательным: каждый новый лист с приложениями размещают так же, как на них идут ссылки в основных разделах работы.
Правила оформления заголовков
Как оформлять приложения в курсовой работе? Помнить, что каждый новый лист имеет свой заголовок. Вверху в центре страницы пишут слово «Приложение», а затем приводят его нумерацию (согласно порядку использования в тексте).
Правила оформления нумерации приложения
Нумеруются ли приложения в курсовой работе? Да, для нумерации используют не арабские цифры, а заглавные буквы русского алфавита (например, ПРИЛОЖЕНИЕ А). В названии приложений можно пользоваться и латинским алфавитом.
Как подписывать приложения в курсовой и не совершать ошибок? Помнить, что в латинском алфавите не допускается использовать буквы I и О. А в русском запрет распространяется на буквы: Ё, З, Й, О, Ч, Ь, Ы, Ъ.
Если приложений настолько много, что были использованы уже все буквы алфавита (русского или латинского), можно продолжить нумеровать при помощи арабских цифр.
Кстати! Если с нумерацией и цифрами уже давно не ладится, для наших читателей сейчас действует скидка 10% на любой вид работы.
Правила оформления одного и нескольких листов приложения
Оформление приложения в курсовой с разным количеством листов, имеет особенности. Так, если приложение включает в себя всего 1 документ (лист), его обозначают следующим образом: Приложение А. Если же в одном приложении планируют разделить информацию на блоки, то составные части документа также разделяют. Это происходит путём добавления к названию индекса №. Например: Приложение А №1 и так далее.
В случае, если приложений в курсовой работе несколько, у каждой страницы будет своя нумерация (сквозная).
Всегда обращайте внимание на методические указания вуза, которые поясняют, как оформить приложение в курсовой, и часто приводят примеры. В них можно найти особенности оформления, действующие конкретно для вашего университета. Например, некоторые высшие учебные заведения рекомендуют оформлять приложения следующим образом: Приложение 1, Приложение 2…Приложение 7.
Правила оформления ссылок на приложения в курсовой
Как в курсовой сделать ссылку на приложение и как её оформить? Следует помнить несколько моментов.
При написании основного текста в конце фразы, которая подкрепляется приложением, необходимо делать знак о том, где искать пояснение к вышесказанному. Например:
Правила оформления разных видов материалов в приложениях
Как писать приложение в курсовой, если оно содержит формулы, иллюстрации, схемы и так далее? Пишутся ли они единым списком или нумеруются отдельно?
Отвечаем на эти вопросы. Каждый тип приложений имеет свою собственную сквозную нумерацию, для которой применяют арабские цифры. Так что не надо смешивать графические изображения с химическими формулами. Стоит создавать для них отдельные списки и подписи к ним.
Важно! Как вставлять приложение библиографический список в курсовую? Помнить, что литература, которую использовал студент при подготовке работы, всегда идёт после заключения курсовой, перед всеми приложениями.
Как оформлять приложение в курсовой работе: дополнительные правила
Образцы, которые приводятся в ГОСТах, диктуют дополнительные правила для грамотного оформления приложений в курсовой:
- использовать одинаковый шрифт и размер, что и во всей работе;
- всегда проверять, присутствуют ли в тексте курсовой ссылки на материалы, указанные в приложениях;
- оформлять затекстовые ссылки на приложения в основном тексте курсовой, а не прямые упоминания;
- помнить, что приложение — это часть курсовой, а значит, нумерация страниц общая со всей работой;
- нумеровать приложение, даже если оно состоит из одной страницы;
- писать сначала номер приложения, а потом подпись к нему: Приложение А: График выпадения осадков в регионе.
Важно! Приложения не входят в общий объём курсовой. Это отдельный раздел.
Пример оформления приложения в курсовой работе
Как сделать приложение в курсовой работе и ничего не перепутать? Посмотреть наши примеры оформления приложений.
Оформление таблиц в приложении:
А как сделать приложение в ворде на курсовой, вы можете посмотреть в нашем дополнительном примере. Скачать его можно в формате Word.
Посмотри примеры работ и убедись, что мы поможем на совесть!
Хочу посмотреть примеры
Теперь вы знаете, как оформить приложения в курсовой работе и как ссылаться на эти приложение в курсовой. Следуйте вышеприведённым правилам и вы сможете написать работу на отлично. А если нет времени разбираться, что должно быть в приложении в курсовой, обращайтесь в профессиональный студенческий сервис. Наши эксперты помогут не только оформить приложение, но и подготовить курсовую с учётом всех требований ГОСТ.
Источник: zaochnik.ru