pcl что это такое
Переносимые библиотеки классов (PCL)
Существует три основных подхода к совместному использованию кода, которые позволяют решить эту проблему: .NET Standard проекты, проекты общих ресурсови проекты переносимой библиотеки классов (PCL).
Что такое Переносимая библиотека классов?
при создании Project приложения или библиотеки Project результирующая библиотека DLL может работать только на той платформе, для которой она создается. это позволяет не писать сборку для Windows приложения, а затем повторно использовать его в xamarin. iOS и xamarin. Android.
Однако при создании переносимой библиотеки классов можно выбрать комбинацию платформ, в которой должен выполняться код. Варианты совместимости, вносимые при создании переносимой библиотеки классов, преобразуются в идентификатор «Profile», который описывает платформы, поддерживаемые библиотекой.
Функция | .NET Framework | Приложения UWP | Silverlight | Windows Phone | Xamarin |
---|---|---|---|---|---|
Основные сведения | Да | Да | Да | Да | Да |
LINQ | Да | Да | Да | Да | Да |
IQueryable | Да | Да | Да | 7,5 + | Y |
Сериализация | Да | Да | Да | Да | Да |
Заметки к данным | 4.0.3 + | Да | Да | Да |
столбец xamarin отражает тот факт, что xamarin. iOS и xamarin. Android поддерживают все профили, поставляемые с Visual Studio, а доступность функций в любых создаваемых библиотеках будет ограничена только другими платформами, которые вы выбрали для поддержки.
К ним относятся профили, которые являются комбинациями:
Преимущества
Недостатки
В некоторой степени недостатки можно обойти с помощью шаблона поставщика или внедрения зависимостей, чтобы создать код фактической реализации в проектах платформы по отношению к интерфейсу или базовому классу, определенному в переносимой библиотеке классов.
На этой схеме показана архитектура кросс-платформенного приложения с использованием переносимой библиотеки классов для совместного использования кода, но также использование внедрения зависимостей для передачи функций, зависящих от платформы:
пошаговое руководство по Visual Studio для Mac
в этом разделе описывается создание и использование переносимой библиотеки классов с помощью Visual Studio для Mac. Полную реализацию см. в разделе пример для PCL.
Создание PCL
Добавление переносимой библиотеки классов в решение очень похоже на добавление обычного проекта библиотеки.
в диалоговом окне создание Project выберите параметр переносимая библиотека многоплатформенной библиотеки :
при создании PCL в Visual Studio для Mac он автоматически настраивается с помощью профиля, который работает для xamarin. iOS и xamarin. Android. Откроется проект PCL, как показано на следующем снимке экрана:
Теперь PCL готов к добавлению кода. На него также могут ссылаться другие проекты (проекты приложений, проекты библиотек и даже другие проекты PCL).
Изменение параметров PCL
Если профиль был изменен после добавления кода в PCL, то возможно, что библиотека больше не будет компилироваться, если код ссылается на компоненты, которые не являются частью вновь выбранного профиля.
Работа с PCL
при написании кода в библиотеке PCL редактор Visual Studio для Mac будет распознавать ограничения выбранного профиля и соответствующим образом настроить параметры автозавершения. например, на этом снимке экрана показаны параметры автозаполнения для System.IO с использованием профиля по умолчанию (Profile136), используемого в Visual Studio для Mac — обратите внимание на полосу прокрутки, которая показывает, что отображается около половины доступных классов (на самом деле доступны только 14 классов).
Сравните это с автозавершением System.IO в проекте Xamarin. iOS или Xamarin. Android — доступно 40 классов, включая часто используемые классы, такие как и, которые File Directory не находятся ни в одном профиле PCL.
Это отражает базовую компромисс использования PCL — возможность беспрепятственного совместного использования кода на многих платформах означает, что некоторые API недоступны, так как они не имеют сравнимых реализаций на всех возможных платформах.
Использование PCL
На следующем снимке экрана показана панель решения для примера приложения Таскипортабле, которая показывает библиотеку PCL внизу и ссылку на библиотеку PCL в проекте Xamarin. iOS.
Выходные данные PCL (Internet Explorer, результирующая сборка DLL) также можно добавить в качестве ссылки на большинство проектов. Это делает PCL идеальным способом поставки межплатформенных компонентов и библиотек.
пошаговое руководство по Visual Studio
В этом разделе описывается создание и использование переносимой библиотеки классов с помощью Visual Studio. Полную реализацию см. в разделе пример для PCL.
Создание PCL
добавление PCL в решение в Visual Studio немного отличается от добавления обычного проекта:
Visual Studio сразу же запросит следующее диалоговое окно, чтобы можно было настроить профиль. Установите тактовые платформы, которые необходимо поддерживать, и нажмите кнопку ОК.
Проект PCL будет отображаться, как показано в обозреватель решений — текст (переносимый) отображается рядом с именем проекта, чтобы указать, что это PCL:
Теперь PCL готов к добавлению кода. На него также могут ссылаться другие проекты (проекты приложений, проекты библиотек и даже другие проекты PCL).
Изменение параметров PCL
Если профиль был изменен после добавления кода в PCL, то возможно, что библиотека больше не будет компилироваться, если код ссылается на компоненты, которые не являются частью вновь выбранного профиля.
Работа с PCL
при написании кода в библиотеке PCL Visual Studio узнает об ограничениях выбранного профиля и соответствующим образом настройте параметры Intellisense. Например, на этом снимке экрана показаны параметры автозаполнения для System.IO с использованием профиля по умолчанию (Profile136) — Обратите внимание на полосу прокрутки, которая указывает на отображение около половины доступных классов (на самом деле доступно только 14 классов).
Сравните это с System.IO автозавершением в регулярном проекте — доступно 40 классов, включая часто используемые классы, такие как File и, которые Directory не находятся ни в одном профиле PCL.
Это отражает базовую компромисс использования PCL — возможность беспрепятственного совместного использования кода на многих платформах означает, что некоторые API недоступны, так как они не имеют сравнимых реализаций на всех возможных платформах.
Использование PCL
На следующем снимке экрана показана область решения для примера приложения Таскипортабле с библиотекой PCL внизу и ссылкой на библиотеку PCL в проекте Xamarin. iOS.
Выходные данные PCL (Internet Explorer, результирующая сборка DLL) также можно добавить в качестве ссылки на большинство проектов. Это делает PCL идеальным способом поставки межплатформенных компонентов и библиотек.
Пример PCL
В примере приложения таскипортабле показано, как можно использовать переносимую библиотеку классов с Xamarin. Ниже приведены некоторые снимки экрана приложений, работающих в iOS и Android.
Он использует несколько классов данных и логики, которые являются исключительно переносимым кодом, а также показывает, как внедрять требования для конкретной платформы с помощью внедрения зависимостей для реализации базы данных SQLite.
структура решения показана ниже (в Visual Studio для Mac и Visual Studio соответственно):
Поскольку код SQLite-NET содержит части, относящиеся к конкретной платформе (для работы с реализациями SQLite в каждой другой операционной системе), они были переработаны в абстрактный класс, который можно скомпилировать в переносимую библиотеку классов, и фактический код, реализованный в виде подклассов в проектах iOS и Android.
таскипортаблелибрари
Оставшаяся часть общего кода использует абстрактный класс для хранения и извлечения объектов из базы данных. В любом приложении, использующем этот абстрактный класс, необходимо передать полную реализацию, которая предоставляет реальные функции базы данных.
Таскяндроид и Таскиос
Проекты приложений iOS и Android содержат пользовательский интерфейс и другой код, зависящий от платформы, используемый для подключения общего кода в PCL.
Полную реализацию можно увидеть в примере кода.
Итоги
в этой статье кратко обсуждались преимущества и ловушки переносимых библиотек классов, демонстрируется создание и использование pcl из Visual Studio для Mac и Visual Studio, и, наконец, представлен полный пример приложения — таскипортабле —, в котором показана PCL в действии.
Pcl что это такое
PCL (от англ. Printer Command Language ) — язык управления принтером разработанный компанией Hewlett-Packard. В первой версии это был просто набор команд для печати ASCII-символов, теперь же, в версиях PCL6 и PCL-X стало возможным печатать в цвете, а также печатать изображения, но вне Microsoft Windows и HP-UX этот язык редко используется.
См. также
Ссылки
Смотреть что такое «PCL» в других словарях:
PCL — [Abk. für Printer Communication Language, dt. »Sprache für die Kommunikation mit dem Drucker«], eine Seitenbeschreibungssprache der Firma Hewlett Packard zur Ansteuerung von Druckern. Zahlreiche Tintenstrahldrucker und die meisten Laserdrucker… … Universal-Lexikon
PCL — ist die Abkürzung für Polytechnic of Central London Polycaprolacton Printer Command Language Process Control Language Panel Control Language Pacific Coast League Poly Contextural Logic Performance Counter Library Pilot Controlled Lighting ein… … Deutsch Wikipedia
PCL — (Printer Control Language) n. commands used to control a printer (Computers) … English contemporary dictionary
PCL — DEFINICIJA krat. inform. programski jezik za upravljanje radom pisača ETIMOLOGIJA engl. Printer Command Language … Hrvatski jezični portal
pcl. — pcl., parcel … Useful english dictionary
PCL — Printer Command Language Printer Command Language, plus connu sous le nom de PCL, est un langage de description de pages développé par Hewlett Packard, et qui est devenu un standard de l industrie. Créé en 1984, il était à l origine destiné aux… … Wikipédia en Français
PCL 3 — Printer Command Language Printer Command Language, plus connu sous le nom de PCL, est un langage de description de pages développé par Hewlett Packard, et qui est devenu un standard de l industrie. Créé en 1984, il était à l origine destiné aux… … Wikipédia en Français
PCL — The three letter abbreviation PCL may refer to: Contents 1 Aviation 2 Organizations 3 Places 4 Science and technology 5 … Wikipedia
PCL — Printer Control Language (Computing » General) Printer Control Language (Computing » Drivers) ** Printer Command Language (Computing » General) ** Plum Creek Timber Company, Inc. (Business » NYSE Symbols) * Pierce County Library (Academic &… … Abbreviations dictionary
Языки и технологии принтеров
Сегодня принтер несильно отличается от компьютера. У него есть процессор, память, операционная система и постоянная память-накопитель. Если принтер сетевой, то у него есть сетевая карта и веб-сервер, позволяющий его администрировать. Принтеры не только поддерживают разные сетевые протоколы, но и принимают задания на специфичных языках, которые описывают разметку страниц и документов. Таким образом, на крупном предприятии программные средства печати должны взаимодействать с разными аппаратными реализациями протокола печати, возможно даже неизвестными. Конфигурирование печати принтера труднее, чем кажется на первый взгляд. Пользователи воспринимают печать как должное, однако, для получения качественного результата нужно пройти не один шаг.
В этой статье предлагаю рассмотреть и сравнить технологии печати, с которыми вы сталкиваетесь, выбирая новый принтер, проводя допечатную подготовку документа или работая с электронными PDF-копиями документов. И конечно, если вы пытаетесь перехватить и проанализировать задание на печать.
О языках принтеров
Что такое задание на печать? Это программа, написанная на специальном языке программирования – Page Description Language (PDL).
Печатаемые страницы кодируются в PDL и занимают меньший размер, а значит, передаются быстрее необработанных изображений. PDL не зависят ни от самих устройств, ни от разрешающей способности. Принтеры преобразуют задания на специализированном языке в понятный для устройства формат. Это значит, что принтеры содержат языковые интерпретаторы. Также как у языков программирования «а ля Java», у этих языков не одна версия и каждая работает немного по-своему.
Преобразование PDL в растровые изображения выполняется программой-обработчиком: процессором растровых изображений, Raster Image Processor или просто RIP.
Самые известные PDL языки: Postscript, PCL5, PCL6
Многие принтеры понимают больше одного языка. Но если отправить программу на ином языке, печать выполниться не сможет – компилятор не тот.
PostScript – самый распространённый из всех. Первоначально разработан компанией Adobe. Требует наличия лицензии для использования, поэтому на сегодняшний день используется преимущественно в высокопроизводительных устройствах верхнего ценового сегмента. Почти все программы, компонующие страницы, могут генерировать задания на PostScript. Это полнофункциональный язык программирования. Написанные программы можно просматривать с помощью текстового редактора. В них много круглых скобок, а также символов / %!
P.S. Эти символы ищутся интерпретаторами для распознавания заданий на печать.
Также PostScript является стандартом для MAC и профессиональным стандартом.
PCL – или Printer Common Language – альтернатива PostScript от Hewlett Packard (далее HP). Язык понятен принтерам других производителей, некоторые умеют работать только с ним. PCL – не язык программирования, он просто сообщает на принтер как ему следует напечатать страницы. Задания на PCL бинарные и непонятны для человека, зато короче по размеру, чем PostScript.
Существуют фильтры, преобразующие Postscript в PCL. Версии PCL разнятся не так сильно как PostScript, но достаточно, чтобы вызывать раздражение. Задания печатаются немного не так на разных моделях принтеров. Причина в диалектах со специальными командами. В отличие от PostScript, PCL изначально заточен именно на управление принтером, а не на переносимость страницы, поэтому для достижения наилучшего результата печати необходимо использовать команды под соответствующий принтер. Именно поэтому в операционной системе (ОС) указывается модель принтера, в противном случае генерируются иные PCL команды, интерпретируемые неправильно или вовсе игнорируемые.
На самом деле, вопрос не только в железе: существует так называемая эмуляция.
Эмуляция PCL – это значит, что разработчик стандарта (т.е. HP) не лицензировал или не тестировал принтер производителя на совместимость с PCL.
Эмуляция PostScript – Adobe не получал отчисления за свой интерпретатор PostScript, вместо этого некоторые вендоры написали собственный код. Политика лицензирования породила диалекты языков – схожие, но не повторяющие оригинал в точности. На практике оба могут выполняться с ошибками, но случается такое редко.
Чтобы вас окончательно запутать, HP определила два семейства языков PLC5 (5e – черно-белый, и 5c – цветной) и PCL6 (PCL/XL). Новые HP принтеры поддерживают оба. Ранее существовал и PCL4, но сейчас он слишком архаичный. Начиная с PCL5 5e, также были введены такие новшества, как: поддержка разрешения 600 dpi, двунаправленный обмен данными между принтером и компьютером и новые шрифты для Microsoft Windows.
PDF – еще одна разработка Adobe – Portable Document Format. Это формат документов, использующий часть возможностей PostScript, основа издательского дела и программ Office. PDF-документы не зависят от ОС и платформы. Очень часто формат используется для обмена документами с возможностью просмотра и печати. PDF – язык описания документов, а не страниц. Позволяет описывать не только страницы, но и всю структуру документа, главы, взаимосвязь текстовых столбцов друг с другом, правки и так далее. Плюс, куча возможностей мультимедиа.
Есть принтеры, которые интерпретируют PDF напрямую. Есть масса программ-трансляторов и визуальных редакторов с возможностью преобразования PDF, например, в PostScript. Это преобразование даже может быть скрыто от пользователя.
XHTML – появился относительно недавно. Принтер получает поток данных на языке, описывающем XHTML-print веб-страницу, генерирует представление задания (разные принтеры формируют разные задания, также как разные браузеры отражают страницу иначе).
HP-GL/2 – Hewlett-Packard Graphics Language – Служат для печати векторной графики в составе документа.
HPGL – язык поддержки плоттеров. Поддерживается почти всеми HP-принтерами.
PJL – Printer Job Language. Язык заданий для принтера, метаязык от HP, описывает какой PDL должен использоваться для задания, каким будет формат бумаги, сколько копий нужно напечатать, симплексное задание или дуплексное и так далее.
О драйверах
Драйвер принтера и поддержка – ПО, преобразующее файл в понятный для принтера. Задачи и функции драйвера отвечают на вопросы: «Что если принтер не поддерживает все языки?», «Имеется задание postscript, а принтер распознает только PCL 5E. Нужно напечатать PDF, что делать, если принтер его не интерпретирует?».
GDI – ещё задание на печать можно просматривать и интерпретировать централизованно, на ПК. Также можно отправлять готовые обработанные растровые изображения на принтер «без интеллекта». Именно так и работают многие Windows GDI-принтеры. Такие принтеры обладают весьма незначительным количеством логических инструкций и совсем не обладают интерпретаторами PDL. Вместо этого растеризацию выполняет обслуживающий компьютер. Часть информации для взаимодействия с GDI скрыта в коде Windows под патентами. Эта секретность затрудняет разработку аналогов в системах Linux, и, по сути, является преимуществом. Аналогично ситуация развивается с поддержкой новейших моделей принтеров. Впрочем, ситуация меняется благодаря существованию демона CUPS с поддержкой многих Win Printers с помощью реверс инжиниринга.
О сервере печати
Немного интересного о CUPS и отправке заданий на печать через него. В основе данного сервера печати лежит протокол IPP, который является всем известным HTTP с перегрузкой. Запросы о состоянии принтеров идут как операция HTTP GET, а задания на печать через HTTP POST. Таким образом, CUPS является, фактически, веб-сервером, но взаимодействует исключительно по порту 631, а не 80. CUPS является, пожалуй, самой полноценной реализацией IPP на планете, а его конфигурационные файлы очень похожи на файлы веб-сервера Apache. И, разумеется, позволяет системам печати использовать технологии аутентификации, контроля доступа и шифрования.
В Windows печать через протокол IPP появилась, начиная с Windows 2000. На клиентах с Windows 7 и новее, поддержка протокола IPP, как правило, уже установлена. Также есть Internet Printing – windows реализация сервера печати Internet через IPP. Для его установки необходимо сначала установить службу веб сервера MS IIS
О безопасности для принтеров
Сетевые принтеры, разумеется, поддерживают системы удаленного управления ими, конфигурирование и мониторинг преимущественно осуществляется либо через протокол IPP, либо через SNMP, либо из веб-браузера по HTTP. В частности, имея доступ к принтеру, можно получить такие параметры как: IP-адреса, стандартный шлюз, сервер Syslog, групповое имя (пароль) SNMP, опции протоколов, пароль администратора. Тут возможны несанкционированный доступ атаки по SNMP и DDOS-атаки. Почти все, допускающие удаленное администрирование принтеры, являются незащищенными и используют пароль или SNMP-имя, данное на момент установки.
Какая операционная система используется принтером? Некоторые модели имеют Linux-based дистрибутив на борту. Понять, что же установлено на принтере, либо поменять пароли по умолчанию можно лишь закопавшись в документацию производителя. Неразбериха с операционной системой усугубляется тем, что средства графического администрирования имеют тенденцию сокрытия сведений о различиях производителей.
В заключение хочу еще раз сказать, что проблемы печати многогранны, некоторые из них остались за рамками статьи. В следующий раз надеюсь рассказать о ведении журналов, PPD-файлах и форматах бумаги. О том, как попросить монохромный принтер распечатать двусторонний цветной документ в неизвестном ему формате b4, а также о всевозможных утилитах печати и командах совместимости.
В чем разница между PCL и Postscript?
Что такое PCL и Postscript?
PCL и Postscript — это языки описания страниц (PDL — Page Description Language ). PCL означает язык управления принтером, а Postscript часто также называют PS. Как PCL, так и Postscript широко используются среди многих производителей оригинального оборудования принтеров.
Они оба являются интерпретативными по своей природе, т.е. они переводят различные компьютерные языки на язык, который могут понимать печатающие устройства. Несмотря на то что оба выполняют одни и те же функции, они подходят к проблеме с двух разных направлений. PCL зависит от устройства, что означает, что он использует мощность принтера для выполнения своих обязанностей. PostScript не зависит от устройства, он выполняет свою функцию без необходимости какой-либо аппаратной поддержки.
Плюсы и минусы PCL
Самое большое преимущество наличия принтера с поддержкой PCL — это скорость. Печать через PCL, как правило, намного быстрее, чем большинство других языков описания страниц. Таким образом, если скорость печати является основным критерием для вас, то лучше выбрать PCL-совместимые принтеры.
Хотя PCL поддерживается большинством популярных операционных систем, его использование для печати может вызвать небольшие проблемы, когда используется более одного устройства. Например, представьте, что вы печатаете определённое изображение на принтере с поддержкой PCL. Теперь, если нужно напечатать то же изображение на другом принтере с поддержкой PCL, то вы увидите различия в изображении.
Причина этого снова в том, что PCL использует оборудование принтера для обработки изображений. Поскольку аппаратное обеспечение двух принтеров будет отличаться, конечный продукт также будет отличаться. На самом деле, качество напечатанных изображений также будет варьироваться в зависимости от качества печатного оборудования.
Плюсы и минусы Postscript
Наиболее очевидное преимущество Postscript в том, что он обеспечивает лучшее качество и детализацию, чем PCL. Из-за этого он оказывается значительно медленнее, чем большинство других языков описания страниц. Также PostScript файлы, как правило, значительно больше, чем PCL файлы.
Одним из ключевых преимуществ использования принтеров PostScript является то, что специфика изображения и качество печати остаются неизменными независимо от используемого принтера. Это стало возможным благодаря тому, что PostScript не зависит от устройства.
В конце концов, выбор между совместимыми принтерами PCL и Postscript — это выбор между качеством отпечатков с одной стороны и скоростью с другой.