Я хочу создавать дополнения / расширения для браузера, какой язык программирования мне нужно изучать? - PullRequest
4 голосов
/ 18 декабря 2009

Какие языки программирования мне нужно учить, чтобы создавать дополнения / расширения для браузеров для всех браузеров?

Мне сказали, что это Javascript? Заранее спасибо.

Ответы [ 4 ]

6 голосов
/ 18 декабря 2009

На самом деле я несколько не согласен с другими ответами, потому что, по моему опыту, выбор языка программирования сам по себе не является ограничением при написании расширения для Mozilla или IE.

IE использует COM, поэтому вы можете использовать C или C ++ так же, как и языки .NET.

Аналогично, Mozilla использует XPCOM , так что вам действительно нужно связывание XPCOM вместо какого-либо конкретного языка.

Я написал расширения для обоих этих браузеров на C ++. У меня нет опыта написания расширений для других браузеров.

5 голосов
/ 18 декабря 2009

Однажды я сказал что-то вроде IE о

IE сам написан на C ++ и широко использует COM. Модель расширяемости также основана на COM. По моему опыту, у вас есть следующие компромиссы на выбор:

  1. Чистый C ++ и COM. Вы строите все с нуля, включая фабрики классов, регистрацию COM-объектов, реализации интерфейсов и т. Д. Вы тратите дополнительный день на реализацию IUnknown, IClassFactory, IObjectWithSite и т. Д., И вы испытываете боль в выяснении того, как работают IConnectionPoint и IConnectionPointContainer , Тем не менее, теперь вы знаете, как все работает, и ваш проект намного легче отлаживать и поддерживать по мере его роста, и вы растете как личность. И я обещаю дать вам полезные ответы, если вы сделаете это таким образом.
  2. Используйте ATL / MFC и запишите его на C ++. Вы начинаете намного быстрее, потому что все COM-клей и базовые интерфейсы реализованы для вас. Недостатком является то, что вы вырываете волосы из отладочной шаблонной слизи в заголовочных файлах, которые вы не записали, когда что-то пойдет не так. У вас возникают сбои, которые вы не можете объяснить.
  3. Вы пишете это на C #, и у вас есть все виды GAC, версии времени выполнения и другие проблемы. Только с версией v4 вы можете размещать разные версии одновременно. Вы получаете меньше помощи от форумов, поскольку расширения IE действительно должны быть встроенными и не управляемыми. Вы можете написать кучу взаимодействий (или, по крайней мере, того, что еще не существует на pinvoke.net) и отладки удачи, когда что-то пойдет не так. Более того, IE видит все управляемые расширения как mscore, а не YourExtension.dll, поэтому пользователи часто путаются в пользовательском интерфейсе управления / надстроек. И Microsoft прямо говорит, что не следует писать управляемые расширения Shell, поэтому вы должны убедиться, что только iexplore.exe загружает ваше расширение, а не explorer.exe. И если вы хотите, чтобы он работал на других платформах, у вас будут большие проблемы с его портированием.

Это всего лишь мое мнение, поэтому не стесняйтесь, чтобы получить второе.

Что касается Firefox, вы можете написать множество расширений, даже не используя XPCOM. Их основной моделью расширяемости является XUL + JavaScript, который представляет собой разметку и скрипт. 99% всех расширений могут быть реализованы таким образом. Однако есть некоторые вещи, которые вы просто не можете сделать в их рамках, например, Cooliris, так что вы должны прибегнуть к XPCOM для вызова нативного кода (или NPAPI).

Расширения Chrome - это также Javascript и разметка, но если вы хотите написать плагины для Chrome, которые делают какие-то нативные вещи, вы должны использовать NPAPI, который является C API.

Итак, в целом, вы можете охватить много вопросов с помощью Javascript, XML и HTML, но вы упускаете IE и ограничены в своих возможностях. Если вы хотите пройти весь путь, вам нужно изучить C ++ (и понять тонкие различия между C ++ и C для NPAPI). Я не рекомендую возиться с плагинами браузера на основе C #, несмотря на многочисленные примеры написания панелей инструментов для IE в C #.

1 голос
/ 18 декабря 2009

Не существует единого ответа для всех браузеров, но для браузеров Mozilla, таких как FireFox, вы в основном говорите на JavaScript. Для IE, естественно, это будут языки .NET. Для других браузеров это будет зависеть, но часто некоторые JavaScript с немного языком, на котором запрограммирован браузер.

Для браузеров Mozilla раздел Extensions Центра разработки Mozilla - отличное место для начала.

1 голос
/ 18 декабря 2009

Для браузеров на базе Mozilla вам нужно в первую очередь взглянуть на Javascript (и другие перечисленные технологии здесь ).

В Internet Explorer любой из языков .NET обычно используется для создания плагинов для браузера IE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...