SlideShare ist ein Scribd-Unternehmen logo
1 von 36
4-я конференция .NET разработчиков
28 апреля 2012

   Выходим за границы дозволенного.
     NPAPI, NaCl и другие страшные
                  слова
                   Тимур Рахматиллаев
                    twitter.com/eskat0n
Типичное веб-приложение
Типичное комплексное
   веб-приложение
Взаимодействие клиентского кода
        и компьютера
            JavaScript



                    Ресурсы:
                    • CPU
                    • RAM
                    • показания датчиков
                    • ФС
НЕтипичное комплексное
    веб-приложение
Что может сделать «чистый»
        JavaScript




       Ничего полезного
HTML5 меняет ситуацию!
HTML5 меняет ситуацию!?
•   File API
•   Geolocation API
•   Battery API
•   SQL for Web
HTML5 не меняет ситуацию!
Все браузеры разные
Средства расширения
   функциональности браузеров
• UserJS
• Расширения
• Плагины
UserJs
UserJs
Функциональность не отличается от обычного
JavaScript’а, подключенного к HTML-странице
Расширения
API и предоставляемые возможности
различаются в зависимости от браузера. Не
подходят для взаимодействия с периферией.
Плагины
Платформозависимый код, выполняемый в
потоке браузера.
Технологии реализации:
• Netscape Plugin Application Programming
   Interface (NPAPI)
• NativeClient (NaCl)
• Pepper Plugin API (PPAPI)
• ActiveX
Плагины
Платформозависимый код, выполняемый в
потоке браузера.
Технологии реализации:
• Netscape Plugin Application Programming
   Interface (NPAPI)
• NativeClient (NaCl)
• Pepper Plugin API (PPAPI)
• ActiveX
Все браузеры разные, будь они
          прокляты
Поддержка NPAPI
•   Google Chrome
•   Safari
•   Firefox
•   Opera
•   Internet Explorer…
Поддержка NPAPI
•   Google Chrome
•   Safari
•   Firefox
•   Opera
•   Internet Explorer… до версии 5.5
NPAPI-плагин
Физически представляет из себя
подключаемую динамически библиотеку с
нативным кодом (dll, so).
Internet Explorer жует клей ActiveX



                             NPAPI library


Исходный код

                             ActiveX library
Общий механизм работы с
        NPAPI-плагинами
• Встраивание плагина на страницу с
  помощью HTML
• Определение местоположения файла
  плагина и его загрузка
• При необходимости вызов кода плагина
  для рендеринга контента на HTML-
  странице
• Взаимодействие с плагином через
  JavaScript
Встраивание плагина на страницу
<object id=“myplugin"
  type="application/x-myplugin"
  width="300" height="300">
    <param name="onload" value=“onPlugLoad" />
</object>
Идентификация плагина
            application/x-plugin1

            application/x-plugin11

 Plugin 1



            application/x-plugin2


 Plugin 2
Загрузка NPAPI-плагина




Ключ
реестра, указыва
ющий
на расположение
dll-файла
Рендеринг контента с помощью
                 плагина




<object> … </object>


                        Функция
                       рендеринга
Взаимодействие с плагином через
           JavaScript
• Плагин представлен JavaScript-
  объектом, находящимся в DOM-дереве
  документа
• При обращении к свойствам JavaScript-
  объекта плагина или при вызове его
  методов происходит упаковка
  передаваемых/возвращаемых значений
• Каждому свойству или методу
  соответствует нативный код
FireBreath framework
• Предоставляет единое высокоуровневое
  API для создания NPAPI-плагинов для всех
  браузеров
• Для Internet Explorer происходит
  регистрация плагина как ActiveX-
  компонента
• Предоставляет возможность
  автоматизированной установки
  плагина
FireBreath framework
Плюсы:
• Возможность написания единого кода плагина
  для работы во всех браузерах
• Инструментарий по упрощению сборки
• Прозрачный и простой API
• Легко читаемый исходный код
Минусы:
• Дополнительные инфраструктурные зависимости
• Недостаточно подробная документация
Начало работы с FireBreath
•   Python
•   VC++
•   Cmake
•   Visual Studio (не-Express версии)
Демонстрация работы FireBreath
А где же .NET?
У нас тут своя атмосфера!
• Возможна реализация с помощью
  FireBreath небольшой тонкой
  обвертки, которая осуществляет
  трансляцию вызовов из JavaScript-кода к
  коду на платформе .NET
• Используется связка из NPAPI-плагина и
  Managed COM-компонента
IndyCode scanner plugin
Задача – обеспечить возможность
автоматического сканирования документов с
помощью сканера, подключенного к
клиентскому компьютеру, с последующей их
отсылкой на сервер.
IndyCode scanner plugin
Спасибо за внимание

  Тимур Рахматиллаев
    mail@eskat0n.ru
   twitter.com/eskat0n

Weitere ähnliche Inhalte

Was ist angesagt?

Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Fwdays
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsSQALab
 
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...IT Event
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим ПугачевCodeFest
 
"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik HimiranovFwdays
 
Никита Галкин "Testing in Node.js World"
Никита Галкин "Testing in Node.js World"Никита Галкин "Testing in Node.js World"
Никита Галкин "Testing in Node.js World"Fwdays
 
"Как дешево переделать традиционное веб-приложение в single-page", Максим Пше...
"Как дешево переделать традиционное веб-приложение в single-page", Максим Пше..."Как дешево переделать традиционное веб-приложение в single-page", Максим Пше...
"Как дешево переделать традиционное веб-приложение в single-page", Максим Пше...MoscowJS
 
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Fwdays
 
"React application structure at project start", Maksym Shestopal
"React application structure at project start", Maksym Shestopal"React application structure at project start", Maksym Shestopal
"React application structure at project start", Maksym ShestopalFwdays
 
QA Fest 2016. Татьяна Люлюченко. Немного о мобильных браузерах
QA Fest 2016. Татьяна Люлюченко. Немного о мобильных браузерахQA Fest 2016. Татьяна Люлюченко. Немного о мобильных браузерах
QA Fest 2016. Татьяна Люлюченко. Немного о мобильных браузерахQAFest
 
Алексей Кабанов
Алексей КабановАлексей Кабанов
Алексей КабановSQALab
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidSQALab
 
Олег Савкин
Олег СавкинОлег Савкин
Олег СавкинCodeFest
 
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25MoscowJS
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтендViacheslav Slinko
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikPositive Hack Days
 
Использовании TypeScript для Node.js
Использовании TypeScript для Node.jsИспользовании TypeScript для Node.js
Использовании TypeScript для Node.jsFullStackJS
 
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир СелинИнструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир СелинPositive Hack Days
 
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...Pavel Dovbush
 
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевПакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевPositive Hack Days
 

Was ist angesagt? (20)

Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под Windows
 
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov
 
Никита Галкин "Testing in Node.js World"
Никита Галкин "Testing in Node.js World"Никита Галкин "Testing in Node.js World"
Никита Галкин "Testing in Node.js World"
 
"Как дешево переделать традиционное веб-приложение в single-page", Максим Пше...
"Как дешево переделать традиционное веб-приложение в single-page", Максим Пше..."Как дешево переделать традиционное веб-приложение в single-page", Максим Пше...
"Как дешево переделать традиционное веб-приложение в single-page", Максим Пше...
 
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
 
"React application structure at project start", Maksym Shestopal
"React application structure at project start", Maksym Shestopal"React application structure at project start", Maksym Shestopal
"React application structure at project start", Maksym Shestopal
 
QA Fest 2016. Татьяна Люлюченко. Немного о мобильных браузерах
QA Fest 2016. Татьяна Люлюченко. Немного о мобильных браузерахQA Fest 2016. Татьяна Люлюченко. Немного о мобильных браузерах
QA Fest 2016. Татьяна Люлюченко. Немного о мобильных браузерах
 
Алексей Кабанов
Алексей КабановАлексей Кабанов
Алексей Кабанов
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для Android
 
Олег Савкин
Олег СавкинОлег Савкин
Олег Савкин
 
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтенд
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
 
Использовании TypeScript для Node.js
Использовании TypeScript для Node.jsИспользовании TypeScript для Node.js
Использовании TypeScript для Node.js
 
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир СелинИнструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
 
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
 
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевПакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
 

Andere mochten auch

Построение гибкого процесса разработки (4-5 курсы)
Построение гибкого процесса разработки (4-5 курсы)Построение гибкого процесса разработки (4-5 курсы)
Построение гибкого процесса разработки (4-5 курсы)Timur Rakhmatillaev
 
Индексируй неиндексирумое
Индексируй неиндексирумоеИндексируй неиндексирумое
Индексируй неиндексирумоеTimur Rakhmatillaev
 
ReSharper 8.0 или магия продуктивной разработки
ReSharper 8.0 или магия продуктивной разработкиReSharper 8.0 или магия продуктивной разработки
ReSharper 8.0 или магия продуктивной разработкиTimur Rakhmatillaev
 
Построение гибкого процесса разработки (3 курс)
Построение гибкого процесса разработки (3 курс)Построение гибкого процесса разработки (3 курс)
Построение гибкого процесса разработки (3 курс)Timur Rakhmatillaev
 
NHibernate. Диагностирование и решение конфликтов одновременной записи данных
NHibernate. Диагностирование и решение конфликтов одновременной записи данныхNHibernate. Диагностирование и решение конфликтов одновременной записи данных
NHibernate. Диагностирование и решение конфликтов одновременной записи данныхAlexander Byndyu
 
Проектирование по контракту
Проектирование по контрактуПроектирование по контракту
Проектирование по контрактуAlexander Byndyu
 
Структурирование тестов по принципу Arrange-Act-Assert
Структурирование тестов по принципу Arrange-Act-AssertСтруктурирование тестов по принципу Arrange-Act-Assert
Структурирование тестов по принципу Arrange-Act-AssertAlexander Byndyu
 
Облачная инфраструктура Amazon We
Облачная инфраструктура Amazon WeОблачная инфраструктура Amazon We
Облачная инфраструктура Amazon WeLeonid Vygovskiy
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформуVadim Kruchkov
 
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)Ontico
 
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Ontico
 
RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)
RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)
RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)Ontico
 
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...Ontico
 
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...Ontico
 

Andere mochten auch (20)

Построение гибкого процесса разработки (4-5 курсы)
Построение гибкого процесса разработки (4-5 курсы)Построение гибкого процесса разработки (4-5 курсы)
Построение гибкого процесса разработки (4-5 курсы)
 
Индексируй неиндексирумое
Индексируй неиндексирумоеИндексируй неиндексирумое
Индексируй неиндексирумое
 
ReSharper 8.0 или магия продуктивной разработки
ReSharper 8.0 или магия продуктивной разработкиReSharper 8.0 или магия продуктивной разработки
ReSharper 8.0 или магия продуктивной разработки
 
Построение гибкого процесса разработки (3 курс)
Построение гибкого процесса разработки (3 курс)Построение гибкого процесса разработки (3 курс)
Построение гибкого процесса разработки (3 курс)
 
Practical CQRS
Practical CQRSPractical CQRS
Practical CQRS
 
NHibernate. Диагностирование и решение конфликтов одновременной записи данных
NHibernate. Диагностирование и решение конфликтов одновременной записи данныхNHibernate. Диагностирование и решение конфликтов одновременной записи данных
NHibernate. Диагностирование и решение конфликтов одновременной записи данных
 
Проектирование по контракту
Проектирование по контрактуПроектирование по контракту
Проектирование по контракту
 
Структурирование тестов по принципу Arrange-Act-Assert
Структурирование тестов по принципу Arrange-Act-AssertСтруктурирование тестов по принципу Arrange-Act-Assert
Структурирование тестов по принципу Arrange-Act-Assert
 
Design & Process Models
Design & Process ModelsDesign & Process Models
Design & Process Models
 
Fluent OpenXML - Foxby
Fluent OpenXML - FoxbyFluent OpenXML - Foxby
Fluent OpenXML - Foxby
 
Outsourcing Saas
Outsourcing SaasOutsourcing Saas
Outsourcing Saas
 
Облачная инфраструктура Amazon We
Облачная инфраструктура Amazon WeОблачная инфраструктура Amazon We
Облачная инфраструктура Amazon We
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформу
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Orion Two MKK 09-04-2015
Orion Two MKK 09-04-2015Orion Two MKK 09-04-2015
Orion Two MKK 09-04-2015
 
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)
 
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
 
RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)
RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)
RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)
 
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
 
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
 

Ähnlich wie NPAPI

Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Ontico
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON
 
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...SQADays_2009_Piter
 
Middleware
MiddlewareMiddleware
Middlewaremegakott
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015Alexandr Petrov
 
WebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funWebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funAlexandr Khotemskoy
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIMoscowJS
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораSQALab
 
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...QAFest
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Ontico
 
Разговор про Java 9. Extended version
Разговор про Java 9. Extended versionРазговор про Java 9. Extended version
Разговор про Java 9. Extended versionIvan Krylov
 
Protrarctor and Angular
Protrarctor and AngularProtrarctor and Angular
Protrarctor and AngularSQALab
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéInterSystems CEE
 
Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Alexander Babich
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»DevGAMM Conference
 

Ähnlich wie NPAPI (20)

Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
 
Diplom 1
Diplom 1Diplom 1
Diplom 1
 
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
 
Middleware
MiddlewareMiddleware
Middleware
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015
 
WebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funWebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double fun
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public API
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
 
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 
Cakephp
CakephpCakephp
Cakephp
 
Разговор про Java 9. Extended version
Разговор про Java 9. Extended versionРазговор про Java 9. Extended version
Разговор про Java 9. Extended version
 
Protrarctor and Angular
Protrarctor and AngularProtrarctor and Angular
Protrarctor and Angular
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
 
Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
 

Kürzlich hochgeladen (9)

Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 

NPAPI