Программирование на платформе net framework 4 5

Кросс-платформенное программное обеспечение (также мультиплатформенное программное обеспечение или независимое от платформы программноеобеспечение)-это компьютерное программное обеспечение . Которое реализуется на нескольких вычислительных платформах.[1] кросс-платформенное программное обеспечение может быть разделено на два вида; один требует индивидуального строительства или компиляции для каждой платформы. Которые она поддерживает. А другой может быть непосредственно запущен на любой платформе без специальной подготовки. Например, программы. Написанные на интерпретируемом языке , либо предварительно скомпилированных переносимый

байт-код , для которого переводчиков или во время выполнения пакетов являются общими или стандартными компонентами всех платформах.[2]

Например, кросс-платформенное приложение может работать в Microsoft Windows, Linuxи macOS. Кросс-платформенные программы могут работать как на всех существующих платформах. Так и на двух. Кросс-платформенные фреймворки (такие как Codename One, Kivy, Qt, Flutter, NativeScript, Xamarin, Phonegap, Ionicи React Native) существуют для помощи в кросс-платформенной разработке.[3]

Платформы

Платформа может относиться к типу процессора (CPU) или другого оборудования. На котором работает данная операционная система или

приложение, тип операционной системы на компьютере или сочетание типа оборудования и типа операционной системы. Работающей на нем. Других известных настольных компьютерных платформ включают в Linux/Unix систем , а в macOS — обе из которых сами являются кросс-платформенными.[4] Есть, однако. Много устройств. Таких как смартфоны это также эффективно компьютерные платформы. Но менее часто об этом думают. Прикладное программное обеспечение может быть написано в зависимости от особенностей конкретной платформы—аппаратного обеспечения. Операционной системы или

виртуальной машины, на которой она работает. Платформа Java-это платформа виртуальной машины. Которая работает на многих операционных системах и типах оборудования и является общей платформой для программного обеспечения. Для которого пишется.

Аппаратные платформы

Аппаратная платформа может ссылаться на архитектуру набора команд. Например: архитектура x86 и ее варианты. Такие как IA-32 и x86-64. Эти машины часто работают под управлением одной версии Microsoft Windows[5], хотя они могут работать и под управлением других операционных систем. Включая Linux,

OpenBSD, NetBSD, macOS и FreeBSD.

32-разрядные архитектуры ARM (и более новая 64-разрядная версия) широко распространены на смартфонах и планшетных компьютерах, работающих под управлением Android, iOS и других мобильных операционных систем.

Программных платформ

Программные платформы могут быть либо операционной системой . Либо средой программирования, хотя чаще всего это сочетание того и другого. Заметным исключением из этого правила является Java, которая использует независимую от операционной системы виртуальную машину для своего скомпилированного кода. Известного в мире Java как

байт-код . Примерами программных платформ являются:

Незначительные/исторические

Платформа Java

Как уже отмечалось. Платформа Java является исключением из общего правила. Согласно которому операционная система является программной платформой. Язык Java обычно компилируется в виртуальную машину: виртуальный процессор. Который запускает весь код. Написанный для этого языка.

Это позволяет запускать один и тот же исполняемый двоичный файл во всех системах. Реализующих виртуальную машину Java (JVM). Java-программы могут выполняться изначально с помощью Java-процессора. Это не распространено и в основном используется для встраиваемых систем.

Java-код, работающий в JVM, имеет доступ к службам. Связанным с ОС. Таким как дисковый ввод-вывод и доступ к сети. Если предоставлены соответствующие привилегии. JVM выполняет системные вызовы от имени Java-приложения. Эта настройка позволяет пользователям выбирать соответствующий уровень защиты в зависимости от

ACL. Например, доступ к диску и сети обычно включен для настольных приложений. Но не для браузерных апплетов. JNI также может использоваться для обеспечения доступа к определенным функциям операционной системы.

В настоящее время программы Java Standard Edition могут работать на Microsoft Windows. MacOS. Нескольких Unix-подобных операционных системах и еще нескольких не UNIX-подобных операционных системах. Таких как встроенные системы. Для мобильных приложений браузерные плагины используются для устройств на базе Windows и Mac. А Android имеет встроенную поддержку Java.

Существуют также подмножества Java. Такие как Java Card или Java Platform. Micro Edition, предназначенные для устройств с ограниченными ресурсами.

Реализации

Для того, чтобы часть программного обеспечения считалась кросс-платформенной. Она должна быть способна функционировать на более чем одной компьютерной архитектуре или операционной системе. Разработка такой программы может быть трудоемкой задачей. Поскольку разные операционные системы имеют разные интерфейсы прикладного программирования (API). Например, Linux использует другой API для прикладного программного обеспечения. Чем Windows.

Программное обеспечение. Написанное для конкретной операционной системы. Не работает автоматически на всех архитектурах. Поддерживаемых операционной системой. Одним из примеров по состоянию на август 2006 года был OpenOffice.org, который изначально не работал на линиях процессоров AMD64 или Intel 64, реализующих стандарты x86-64 для компьютеров; с тех пор это было изменено. И OpenOffice.org набор программного обеспечения “в основном” портирован на эти 64-битные системы.[8] Это также означает. Что просто потому. Что программа написана на популярном языке программирования, таком как C или C++ это не означает . Что он будет работать на всех операционных системах. Поддерживающих этот язык программирования. Или даже на одной и той же операционной системе с другой архитектурой.

Веб-приложения

Веб-приложения обычно описываются как кросс-платформенные. Поскольку в идеале они доступны из любого из различных веб-браузеров в различных операционных системах. Такие приложения обычно используют архитектуру клиент–серверной системы и сильно различаются по сложности и функциональности. Эта широкая вариативность значительно усложняет задачу кросс-платформенных возможностей. Которая обычно расходится с целью расширенной функциональности.

Базовые веб-приложения выполняют всю или большую часть обработки с серверабез состояния и передают результат в клиентский веб-браузер. Все взаимодействие пользователя с приложением состоит из простого обмена запросами данных и ответами сервера. Эти типы приложений были нормой на ранних этапах разработки приложений Всемирной паутины. Такие приложения следуют простой модели транзакций. Идентичной модели обслуживания статических веб — страниц. Сегодня они все еще относительно распространены. Особенно там. Где кросс-платформенная совместимость и простота считаются более важными. Чем расширенные функциональные возможности.

Выдающиеся примеры продвинутых веб-приложений включают веб-интерфейс Gmail, A9.com, веб-сайт Google Maps и сервис Live Search (теперь Bing) от Microsoft. Такие продвинутые приложения обычно зависят от дополнительных функций. Найденных только в более поздних версиях популярных веб-браузеров. Эти зависимости включают Ajax, JavaScript, динамический HTML, SVGи другие компоненты богатых веб-приложений. Старые версии популярных веб-браузеров. Как правило. Не поддерживают определенные функции.

Стратегии проектирования

Из-за конкурирующих интересов кросс-платформенной совместимости и расширенной функциональности появилось множество альтернативных стратегий проектирования веб-приложений.

Такие стратегии включают:

Изящная деградация

Изящная деградация пытается предоставить ту же или подобную функциональность всем пользователям и платформам. Одновременно уменьшая эту функциональность до наименьшего общего знаменателя для более ограниченных клиентских браузеров. Например, пользователь. Пытающийся использовать браузер с ограниченными возможностями для доступа к Gmail. Может заметить. Что Gmail переключается в основной режим с ограниченной функциональностью.

Это отличается от других кросс-платформенных методов. Которые пытаются обеспечить эквивалентную функциональность. А не просто адекватную функциональность. Между платформами.

Несколько кодовых баз

Несколько приложений кодовой базы поддерживают различные кодовые базы для различных платформ (аппаратных и операционных) с эквивалентной функциональностью. Это, очевидно. Требует дублирования усилий в поддержании кода. Но может быть полезно там. Где количество специфичного для платформы кода велико.

Единая кодовая база

Эта стратегия основана на наличии одной кодовой базы. Которая может быть скомпилирована в несколько специфичных для платформы форматов.

Один из методов-условная компиляция. С помощью этой техники код. Общий для всех платформ. Не повторяется. Блоки кода, относящиеся только к определенным платформам. Делаются условными. Так что они интерпретируются или компилируются только тогда. Когда это необходимо. Другой метод-это разделение функций. Которое отключает функции. Не поддерживаемые клиентскими браузерами или операционными системами. Но при этом предоставляет пользователю полное приложение. (См. также: Разделение интересов). Этот метод используется в веб-разработке. Где интерпретируемый код (как и в языках сценариев) может запрашивать платформу. На которой он работает. Для выполнения различных блоков условно.

[9]

Сторонние библиотеки

Сторонние библиотеки пытаются упростить кросс-платформенные возможности. Скрывая сложности дифференциации клиентов за одним унифицированным API.

Адаптивный веб-дизайн

Адаптивный веб-дизайн (RWD) — это подход к веб—дизайну. Направленный на создание визуального макета сайтов для обеспечения оптимального просмотра—легкого чтения и навигации с минимальными размерами. Панорамированием и прокруткой-на широком спектре устройств. От мобильных телефонов до настольных компьютерных мониторов.

Мало или нет специфичного для платформы кода используется с этой техникой.

Стратегии тестирования

Одним из сложных аспектов разработки кросс-платформенных веб-приложений является необходимость тестирования программногообеспечения . В дополнение к упомянутым выше осложнениям существует дополнительное ограничение. Заключающееся в том. Что некоторые веб-браузеры запрещают установку различных версий одного и того же браузера в одной и той же операционной системе. Хотя существует несколько подходов к разработке. Которые компании используют для таргетинга на несколько платформ. Все они приводят к созданию программного обеспечения. Требующего значительных ручных усилий для тестирования и обслуживания на всех поддерживаемых платформах.

[10] Такие методы. Как полная виртуализация иногда они используются в качестве обходного пути для этой проблемы.

Используя такие инструменты. Как объектная модель страницы. Кросс-платформенные тесты могут быть написаны таким образом. Чтобы один тестовый случай можно было использовать для нескольких версий приложения. До тех пор, пока различные версии имеют схожие пользовательские интерфейсы. Обе версии могут быть протестированы одновременно. С одним тестовым случаем.

Традиционные приложения

Веб-приложения становятся все более популярными. Но многие пользователи компьютеров по-прежнему используют традиционное прикладное программное обеспечение. Которое не зависит от архитектуры клиент/веб-сервер. Различие между традиционными и веб-приложениями не всегда ясно. Функции, методы установки и архитектуры для веб-и традиционных приложений перекрывают и размывают различие. Тем не менее. Это упрощающее различие является общим и полезным обобщением.

Двоичное программное

Традиционно в современных вычислениях прикладное программное обеспечение распространяется конечным пользователям в виде двоичных файлов. Особенно исполняемых. Исполняемые файлы поддерживают только операционную систему и компьютерную архитектуру. Для которой они были созданы. А это означает. Что создание одного кросс—платформенного исполняемого файла будет чем-то вроде масштабной задачи и обычно заменяется предложением выбора исполняемых файлов для поддерживаемых платформ.

Для программного обеспечения. Распространяемого в виде двоичного исполняемого файла. Такого как программное обеспечение. Написанное на C или C++. Программист должен

построить программное обеспечение для каждой отдельной операционной системы и компьютерной архитектуры, т. Е. Должен использовать набор инструментов. Который переводит—транскомпилирует—одну кодовую базу в несколько двоичных исполняемых файлов. Например, Firefox, веб-браузер с открытым исходным кодом. Доступен в Windows. MacOS (как PowerPC, так и x86) через то. Что Apple Inc. называет Универсальным двоичным файлом), Linux и *BSD на нескольких компьютерных архитектурах. Эти четыре платформы (в данном случае Windows. MacOS. Linux и *BSD) являются отдельными исполняемыми дистрибутивами. Хотя они исходят из одного и того же

исходного кода.

Использование различных наборов инструментов для выполнения различных сборок может оказаться недостаточным для достижения множества рабочих исполняемых файлов для различных платформ. В этом случае инженер-программист должен портировать это. То есть изменить код. Чтобы он был пригоден для новой компьютерной архитектуры или операционной системы. Например, такая программа. Как Firefox. Которая уже работает в Windows семейства x86, может быть модифицирована и перестроена для работы в Linux на x86 (и, возможно. На других архитектурах).

Несколько версий кода могут храниться как отдельные кодовые базы или объединяться в одну кодовую базу путем условной компиляции (см. Обратите внимание, что. Хотя портирование должно сопровождаться кросс-платформенным построением. Обратного не происходит.

В качестве альтернативы переносу кросс-платформенная виртуализация позволяет приложениям. Скомпилированным для одного процессора и операционной системы. Работать в системе с другим процессором и/или операционной системой без изменения исходного кода или двоичных файлов. Например, Apple Rosetta, которая встроена в компьютеры Macintosh на базе Intel. Запускает приложения. Скомпилированные для предыдущего поколения компьютеров Mac. Которые использовали процессоры PowerPC. Другой пример-IBM PowerVM Lx86, который позволяет приложениям Linux/x86 работать без изменений в операционной системе Linux/Power.

Пример кросс-платформенного бинарного программного обеспечения:

  • Офисный пакет LibreOffice создан для программных платформ Windows, macOS, многих дистрибутивов Linux, FreeBSD, NetBSD, OpenBSD, Android, iOS, Chrome OS, web based Collabora Online и многих других.[11][12] Многие из них доступны и/или поддерживаются на нескольких аппаратных платформах с процессорными архитектурами , включая IA-32, x86-64 и ARM.]

Скрипты и интерпретируемые языки

Сценарий можно считать кроссплатформенным. Если его интерпретатор доступен на нескольких платформах и сценарий использует только те возможности. Которые предоставляет язык. То есть сценарий. Написанный на Python для Unix-подобной системы. Скорее всего. Будет работать практически без изменений в Windows. Потому что Python также работает в Windows; существует также несколько реализаций Python. Которые будут запускать одни и те же сценарии (например, IronPython для .NET Framework). То же самое касается многих доступных языков программирования с открытым исходным кодом. Которые являются языками сценариев.

В отличие от двоичных исполняемых файлов. Один и тот же сценарий может использоваться на всех компьютерах. Имеющих программное обеспечение для его интерпретации. Это происходит потому. Что сценарий обычно хранится в виде обычного текста в текстовом файле. Однако могут возникнуть некоторые проблемы. Такие как тип нового символа строки, который находится между строками. Обычно, однако. Мало или вообще никакой работы не нужно делать. Чтобы сценарий. Написанный для одной системы. Запускался на другой.

Некоторые довольно популярные кроссплатформенные сценарии или интерпретируемые языки:

  • bashоболочка Unix, обычно запускаемая в Linux и других современных Unix-подобных системах. А также в Windows через уровень совместимости Cygwin POSIX.
  • Perlскриптовый язык, впервые выпущенный в 1987 году. Используется для программирования CGI WWW. Небольших задач системного администрирования и многого другого.
  • PHPЭто скриптовый язык, наиболее популярный в использовании для веб-приложений.
  • Python – современный скриптовый язык, где основное внимание уделяется быстрой разработке приложений и простоте написания. А не эффективности выполнения программ.
  • Ruby – Это скриптовый язык. Цель которого-быть объектно-ориентированным и легко читаемым. Также может быть использован в Интернете через Ruby on Rails.
  • Tcl – динамический язык программирования. Пригодный для широкого спектра применений. Включая веб-и настольные приложения. Сетевое взаимодействие. Администрирование. Тестирование и многое другое.

Видеоигры

Кросс-платформенный или мультиплатформенный-это термин . Который также может применяться к видеоиграм, выпущенным на различных игровых консолях, специализированных компьютерах. Предназначенных для игры в игры. Примеры кросс-платформенных видеоигр включают: Miner 2049er, Tomb Raider: Legend, серию FIFA, серию NHL и Minecraft.

Каждый из них был выпущен на различных игровых платформах, таких как Wii, PlayStation 3, Xbox 360, персональные компьютеры (ПК) и мобильные устройства.

Характеристики конкретной системы могут увеличить время. Необходимое для реализации видеоигры на нескольких платформах. Таким образом. Видеоигра может быть первоначально выпущена на нескольких платформах. А затем позже выпущена на остальных платформах. Как правило. Такая ситуация возникает при выпуске новой игровой системы. Поскольку разработчикам видеоигр необходимо ознакомиться с аппаратным и программным обеспечением. Связанным с новой консолью.

Некоторые игры могут не стать кроссплатформенными из-за лицензионных соглашений между разработчиками и производителями игровых консолей. Которые ограничивают разработку игры одной конкретной консолью. Например, Disney может создать игру с намерением выпустить ее на новейших игровых консолях Nintendo и Sony. Если Disney сначала лицензирует игру с Sony. Disney может в обмен потребовать выпустить игру исключительно на консоли Sony на короткое время или на неопределенныйсрок —фактически запретив кросс-платформенный выпуск на этот срок.

Кросс-платформенная игра

Несколько разработчиков внедрили средства для игры в онлайн-игры. Используя различные платформы. Psyonix, Epic Games, Microsoftи Valve обладают технологией . Позволяющей геймерам Xbox 360 и PlayStation 3 играть с ПК-геймерами. Оставляя решение о том. Какую платформу использовать. Потребителям. Первой игрой. Которая позволила такой уровень интерактивности между ПК и консольными играми. Была Quake 3.]

Игры , которые включают кросс-платформенную онлайн-игру , включают Rocket League, Final Fantasy XIV, Street Fighter V, Killer Instinct, Paragon и Fable Fortune, а также Minecraft с его обновлением Better Together на Windows 10, VR editions, Pocket Edition и Xbox One.

Кросс-платформенное Программирование

Кросс-платформенное программирование-это практика активного написания программного обеспечения. Которое будет работать на нескольких платформах.

Подходы к кросс-платформенное Программирование

Существуют различные подходы к проблеме написания кросс-платформенной прикладной программы. Одним из таких подходов является простое создание нескольких версий одной и той же программы в разных исходных деревьях—другими словами. Версия программы Microsoft Windows может иметь один набор файлов исходного кода. А версия Macintosh-другой. В то время как FOSS *nix у системы может быть другой. Несмотря на то. Что это простой подход к проблеме. Он потенциально может быть значительно более дорогостоящим с точки зрения затрат на разработку. Времени разработки или того и другого. Особенно для корпоративных организаций. Идея состоит в том. Чтобы создать более двух различных программ. Способных вести себя аналогично друг другу. Также возможно. Что это средство разработки кросс-платформенного приложения приведет к большему количеству проблем с отслеживанием и исправлением ошибок. Поскольку два разных исходных дерева были бы разные программисты, а значит. И разные дефекты в каждой версии.

Другой подход. Который используется. Состоит в том. Чтобы зависеть от уже существующего программного обеспечения. Которое скрывает различия между платформами. Называемыми абстракцией платформы. Так что сама программа не знает о платформе. На которой она работает. Можно сказать. Что такие программы являются платформенными агностиками. Программы, которые работают на виртуальной машине Java (JVM). Построены таким образом.

Некоторые приложения смешивают различные методы кросс-платформенного программирования для создания конечного приложения. Примером этого является веб-браузер Firefox. Который использует абстракцию для создания некоторых компонентов более низкого уровня. Отдельных исходных поддеревьев для реализации специфичных для платформы функций (например. Графического интерфейса) и реализации более чем одного языка сценариев для облегчения переносимости. Firefox реализует XUL, CSS и JavaScript для расширения браузера. В дополнение к классическому Netscape-стиль плагинов браузера. Большая часть самого браузера также написана на XUL. CSS и JavaScript.

Кросс-платформенные наборы инструментов и среды программирования

Существует ряд инструментов[15][16], которые доступны для облегчения процесса кросс-платформенного программирования:

  • 8-й: кросс-платформенный язык разработки. Который использует Juce в качестве своего графического слоя. В настоящее время он поддерживает следующие платформы: Android. IOS. Windows. MacOS. Linux и Raspberry Pi.
  • Anant Computing: Платформа мобильных приложений. Которая работает на всех индийских языках. Включая их клавиатуры. Которая также поддерживает производительность AppWallet и Native во всех операционных системах.
  • AppearIQ Платформа. Которая поддерживает рабочий процесс разработки и развертывания приложений в корпоративной среде. Изначально разработанные контейнеры представляют аппаратные возможности мобильных устройств или планшетов через API к коду HTML5, что облегчает разработку мобильных приложений. Работающих на разных платформах.
  • Boden: Кросс-платформенный фреймворк пользовательского интерфейса для различных платформ. Написанный на C++.
  • Cairo: Библиотека свободного программного обеспечения. Используемая для предоставления API на основе векторной графики. Не зависящего от устройства. Он предназначен для предоставления примитивов для 2-мерного рисования в нескольких различных бэкендах. Cairo написан на языке Си и имеет привязки для многих языков программирования.
  • Cocos2d: инструментарий с открытым исходным кодом и игровой движок для разработки 2D и простых 3D кросс-платформенных игр и приложений.
  • Codename One: Кроссплатформенный фреймворк Write Once Run Anywhere (WORA) с открытым исходным кодом для разработчиков Java и Kotlin.
  • Delphi: кросс-платформенная IDE. Использующая для разработки язык Pascal. В настоящее время он поддерживает Android. IOS. Windows. MacOS. Linux.
  • Ecere SDK: кроссплатформенный графический интерфейс и 2D/3D графический инструментарий и IDE. Написанные на eC и с поддержкой дополнительных языков. Таких как C и Python. В настоящее время он поддерживает Linux. FreeBSD. Windows, Android. MacOS и Интернет через Emscripten или Binaryen (WebAssembly)
  • Eclipse: Кроссплатформенная среда разработки с открытым исходным кодом. Реализована на Java с настраиваемой архитектурой. Которая поддерживает множество инструментов для разработки программного обеспечения. Надстройки доступны для нескольких языков. Включая Java и C++.
  • FLTK: Еще один кроссплатформенный инструментарий с открытым исходным кодом. Но более легкий. Поскольку он ограничивает себя графическим интерфейсом.
  • Flutter-кросс-платформенный фреймворк пользовательского интерфейса для Android и iOS. Разработанный компанией Google.
  • fpGUI: инструментарий виджетов с открытым исходным кодом. Полностью реализованный на языке Object Pascal. В настоящее время он поддерживает Linux. Windows и немного Windows CE.
  • GeneXus: Решение для быстрой разработки программного обеспечения Windows для создания и развертывания кросс-платформенных приложений на основе представления знаний и поддержки C#, COBOL, Java, включая смарт-устройства Android и BlackBerry, Objective-C для мобильных устройств Apple, RPG, Ruby, Visual Basicи Visual FoxPro.
  • GLBasic: Базовый диалект и компилятор. Который генерирует код C++. Он включает в себя кросс-компиляторы для многих платформ и поддерживает множество платформ (Windows, Mac. Linux, Android. IOS и некоторые экзотические карманные компьютеры).
  • Godot: кросс-платформенный SDK. Использующий движок Godot.
  • GTK+: Набор инструментов виджетов с открытым исходным кодом для Unix-подобных систем с X11 и Microsoft Windows.
  • Haxe: кросс-платформенный язык с открытым исходным кодом.
  • Juce: фреймворк приложения. Написанный на C++. Используемый для написания собственного программного обеспечения на многочисленных системах (Microsoft Windows, POSIX. MacOS) без каких-либо изменений в коде.
  • Kivy: кросс-платформенный фреймворк пользовательского интерфейса с открытым исходным кодом. Написанный на Python. Он поддерживает Android, iOS, Linux, OS X, Windows и Raspberry Pi.
  • LEADTOOLS: Кросс-платформенные SDK-библиотеки для интеграции технологий распознавания. Документооборота, медицины. Визуализации и мультимедиа в Windows, iOS. MacOS, Android. Linux и веб-приложения.[17]
  • Lazarus: Среда программирования для компилятора FreePascal. Он поддерживает создание автономных графических и консольных приложений и работает на Linux. MacOSX, iOS. Android, WinCE. Windows и WEB.
  • Max/MSP: Визуальный язык программирования, который инкапсулирует независимый от платформы код со специфичной для платформы средой выполнения в приложения для macOS и Windows Кросс-платформенной среды выполнения Android. Он позволяет немодифицированным приложениям Android работать изначально на iOS и macOS
  • Mendix: Облачная платформа разработки низкокодовых приложений.
  • МоноКросс: Шаблон проектирования модели-представления-контроллера с открытым исходным кодом. В котором модель и контроллер являются общими кросс-платформенными. Но представление зависит от платформы.]
  • Mono: кросс-платформенная версия Microsoft .NET с открытым исходным кодом (фреймворк для приложений и языков программирования)
  • MoSync: SDK с открытым исходным кодом для разработки приложений для мобильных платформ в семействе C++.
  • Mozilla application framework: Платформа с открытым исходным кодом для создания приложений macOS. Windows и Linux.
  • Кросс-платформенный фреймворк JavaScript/TypeScript для разработки на Android и iOS.
  • OpenGL: кросс-платформенная библиотека 3D-графики.
  • Pixel Game Maker MV: проприетарное программное обеспечение для разработки 2D-игр для Windows для разработки игр Windows и Nintendo Switch.
  • PureBasic: проприетарный кросс-платформенный язык и IDE для создания приложений macOS. Windows и Linux.
  • ReNative: Универсальный пакет SDK для разработки мультиплатформенных проектов с React Native. Включает в себя новейшие платформы iOS. TvOS, Android. Android TV. Web, Tizen TV. Tizen Watch. LG WebOS, macOS/OSX. Windows, KaiOS. Firefox OS и Firefox TV.
  • Qt: фреймворк приложений и инструментарий виджетов для Unix-подобных систем с X11, Microsoft Windows. MacOS и другими системами—доступен как под лицензиями с открытым исходным кодом. Так и под патентованными лицензиями.
  • Простая и быстрая мультимедийная библиотека: Мультимедийный API C++, обеспечивающий низко-и высокоуровневый доступ к графике, входным данным, аудио и т. Д.
  • Simple DirectMedia Layer: кросс-платформенная мультимедийная библиотека с открытым исходным кодом. Написанная на языке Си. Которая создает абстракцию над графикой. Звуком и входными API различных платформ . Он работает на многих операционных системах. Включая Linux. Windows и macOS. И предназначен для игр и мультимедийных приложений.
  • Smartface: кроссплатформенный нативный инструмент разработки приложений для создания мобильных приложений для Android и iOS с использованием редактора дизайна WYSIWYG с редактором кода JavaScript.
  • Tcl/Tk
  • Ultimate++: Кросс-платформенная платформа быстрой разработки приложений C++. Ориентированная на производительность программистов. Она включает в себя набор библиотек (GUI, SQL и т. Д.) и интегрированную среду разработки. Он поддерживает Windows и Unix-подобные ОСЫ. U++ конкурирует с популярными скриптовыми языками. Сохраняя при этом характеристики среды выполнения C/C++. Он имеет свою собственную интегрированную среду разработки TheIDE. Которая использует технологию BLITZ-build для ускорения перестроек C++ до 4 раз.
  • Unity: Еще один кросс-платформенный SDK. Который использует Unity Engine.
  • Платформа Uno: Windows. MacOS. IOS. Android. WebAssembly и Linux с использованием C#.
  • Unreal: кросс-платформенный SDK. Использующий Unreal Engine.
  • Движок V-Play: V-Play-это кросс-платформенный SDK для разработки. Основанный на популярном фреймворке Qt. Приложения и игры V-Play создаются в рамках Qt Creator.
  • WaveMaker: Кросс-платформенный инструмент разработки с низким уровнем кода для создания адаптивных веб-и гибридных мобильных приложений (Android и iOS).
  • WinDev: Интегрированная среда разработки для Windows. Linux, .Net и Java (также с поддержкой Интернета и интрасетиРазработка программного обеспечения оптимизирована для создания профессиональных приложений типа business management. Accounting. Industrial applications. Planning management. Cash register software. Billing software. Главное преимущество: скорость разработки за счет интеграции готовых модулей (редактирование. Управление штрих-кодом. Ввод данных. Планирование и т. д.). Которые массово сокращают количество строк кода. Windev wlanguage-это процедурный язык программирования. Который позволяет выполнять императивное программирование и объектно-ориентированное программирование.
  • wxWidgets: инструментарий виджетов с открытым исходным кодом. Который также является фреймворком приложения.[19] Он работает на Unix-подобных системах с X11, Microsoft Windows и macOS. Он позволяет приложениям. Написанным для его использования. Работать на всех системах. Которые он поддерживает. Если приложение не использует в дополнение к нему какое-либо специфичное для операционной системы программирование.
  • Xojo: RAD IDE, разработанная компанией Xojo, Inc.. Которая использует объектно-ориентированный язык программирования для создания настольных. Веб-и iOS-приложений. Xojo делает нативные. Скомпилированные настольные приложения для macOS. Windows. Linux и Raspberry Pi. Он создает скомпилированные веб-приложения. Которые могут запускаться как автономные серверы или через CGI. И недавно он добавил возможность создавать собственные приложения для iOS.
  • Cosmopolitan / APE: Cosmopolitan libc-это среда выполнения C для процессора x64 для создания так называемого «actμally pδrταblε execμtable», написания программного обеспечения на Linux 2.6+ с использованием подмножества Linux ABI с GCC и работы программ только на Windows 8+. MacOS и BSD.

Задачи для кросс-платформенной разработки

Есть определенные проблемы. Связанные с кросс-платформенной разработкой. Некоторые из них включают в себя:

  • Тестирование кросс-платформенных приложений может быть значительно сложнее. Поскольку разные платформы могут демонстрировать немного различное поведение или тонкие ошибки. Эта проблема привела к тому. Что некоторые разработчики высмеивают кросс-платформенную разработку как вооружение маркетинговый лозунг Sun Microsystemsпиши один раз. Работай везде
  • Разработчики часто ограничиваются использованием наименьшего общего знаменателя подмножества функций. Доступных на всех платформах. Это может затруднить работу приложения или запретить разработчикам использовать самые передовые функции каждой платформы.
  • Различные платформы часто имеют различные соглашения о пользовательском интерфейсе. Которые кросс-платформенные приложения не всегда учитывают. Например, приложения. Разработанные для macOS и GNOME, должны размещать самую важную кнопку в правой части окна или диалогового окна. В то время как Microsoft Windows и KDE имеют противоположное соглашение. Хотя многие из этих различий неуловимы. Кросс-платформенное приложение. Которое не соответствует должным образом этим соглашениям. Может показаться неуклюжим или чуждым пользователю. При быстрой работе такие противоположные соглашения могут даже привести к потере данных, например, в диалоговом окне, подтверждающем. Хочет ли пользователь сохранить или отменить изменения в файле.
  • Скриптовые языки и виртуальные машины должны быть переведены в собственный исполняемый код каждый раз. Когда приложение выполняется. Что налагает штраф за производительность. Это наказание может быть смягчено с помощью передовых методов. Таких как just-in-time compilation; но даже при использовании таких методов некоторые вычислительные издержки могут быть неизбежны.
  • Различные платформы требуют использования собственных форматов пакетов. Таких как RPM и MSI. Мультиплатформенные установщики. Такие как InstallAnywhere, удовлетворяют эту потребность.
  • Кросс-платформенные среды выполнения могут страдать от кросс-платформенных недостатков безопасности. Создавая благоприятную среду для кросс-платформенных вредоносных программ.[20]

См. также

  1. ^
  2. ^ . Технология SDD. Извлечено 2020-10-18.
  3. ^ Ли П Ричардсон (2016-02-16). .
  4. ^ b . Информационный проект Linux. Проверено 2014-03-27.
  5. ^ На веб-сайте NetMarketshare Windows (все варианты) имеет ~ 89% доли рынка по состоянию на март 2011 года
  6. ^ . mono-project.com. Извлечено 2015-12-17.
  7. ^ . Отдел новостей Apple. Получено 2020-12-08.
  8. ^ Портирование на x86-64 (AMD64, EM64T) – Apache OpenOffice Wiki. Wiki.services.openoffice.org (2012-06-22). Проверено в 2013-07-17 годах.
  9. ^ Корти, Саша П. (октябрь 2011). . Журнал MSDN. Получено 28 января 2014года .
  10. ^ Choudhary. S. R. (2014). Сопутствующие материалы 36 — й Международной конференции по программной инженерии- ICSE Companion 2014: 642-645. doi:10.1145/2591062.2591097. ISBN 9781450327688. S2CID 1903037.
  11. ^ Мехротра, Праноб (2020-12-01). . XDA-Разработчики. Проверено в 2021-01-15 годах. Collabora Office-это популярная альтернатива Microsoft Office с открытым исходным кодом. Он основан на LibreOffice и доступен на различных платформах. Включая Windows. Linux. IOS и Android. В июле этого года крупное обновление офисного пакета принесло поддержку устройств Chrome OS.
  12. ^ . Adfinis. 2020-12-15. Проверено в 2021-01-15 годах. …сенсорные оптимизированные интерфейсы: один для планшетов и один для экранов телефонов. …(iOS, iPadOS. Chromebook, Android).
  13. ^ . MuyLinux. 2021-03-26. Извлечено 2021-03-30. первое жизнеспособное автономное решение для веб-офиса для популярной платформы Raspberry Pi 4
  14. ^ Крибба. Quake III Arena, Giant Bombcast, 15 февраля 2013 года.
  15. ^ GUI Toolkit. Страница Фреймворка
  16. ^ . Архивирован с оригинала 2008-08-16. Проверено 2009-04-25.
  17. ^ . www.leadtools.com. Получено 2021-03-03.
  18. ^ . Головныеработы . 15 марта 2019 года.
  19. ^ Описание wxWidgets
  20. ^ Уоррен, Том (2020-01-14). . На Грани. Получено 2020-02-06.