¿Qué lenguajes de programación necesito aprender para hacer complementos / extensiones del navegador para todos los navegadores?

Me han dicho su Javascript? Gracias de antemano.

4
Imran 18 dic. 2009 a las 03:10

4 respuestas

La mejor respuesta

Una vez dije algo en este sentido sobre IE:

IE en sí está escrito en C ++ y hace un uso extensivo de COM. El modelo de extensibilidad también está basado en COM. En mi experiencia, tiene las siguientes compensaciones para elegir:

  1. C ++ puro y COM. Construye todo desde cero, incluidas las fábricas de clases, el registro de objetos COM, las implementaciones de interfaz, etc. Pasa más o menos un día implementando IUnknown, IClassFactory, IObjectWithSite, etc., y se da cuenta de cómo funcionan IConnectionPoint e IConnectionPointContainer . Sin embargo, ahora sabe cómo funciona todo, y su proyecto es mucho más fácil de depurar y mantener a medida que crece, y usted crece como persona. Y prometo darte respuestas útiles si lo haces de esta manera.
  2. Use ATL / MFC y escríbalo en C ++. Comienza mucho más rápido porque se implementan todas las interfaces básicas y el pegamento COM. La desventaja es que te sacas el pelo depurando la plantilla en archivos de encabezado que no escribiste cuando las cosas salen mal. Experimenta accidentes que no puede explicar.
  3. Lo escribe en C # y tiene todo tipo de GAC, versión de tiempo de ejecución y otros problemas. Solo con v4 del tiempo de ejecución puede alojar diferentes versiones una al lado de la otra. Obtiene menos ayuda de los foros ya que las extensiones de IE realmente deberían ser nativas y no administradas. Puedes escribir un montón de interoperabilidad (o al menos lo que pinvoke.net ya no tenga) y buena suerte para depurar cuando eso salga mal. Además, IE considera que todas las extensiones administradas son mscorewhatever, no YourExtension.dll, por lo que los usuarios se confunden con frecuencia en la IU de administración / complementos. Y Microsoft dice explícitamente que no escriba extensiones de Shell administradas, por lo que debe asegurarse de que solo iexplore.exe cargue su extensión y no explorer.exe. Y si desea que se ejecute en otras plataformas, tendrá muchos problemas para portarlo.

Sin embargo, estas son solo mis opiniones, así que siéntase libre de obtener las segundas.

En lo que respecta a Firefox, puede escribir muchas extensiones sin usar XPCOM. Su modelo de extensibilidad principal es XUL + JavaScript, que es todo marcado y script. El 99% de todas las extensiones se pueden implementar de esta manera. Sin embargo, hay algunas cosas que no puedes hacer en su marco, por ejemplo Cooliris, por lo que debe recurrir a XPCOM para llamar a código nativo (o NPAPI).

Las extensiones de Chrome también son Javascript y marcado, pero si desea escribir complementos para Chrome que hagan cualquier tipo de cosas nativas, debe usar NPAPI, que es una API de C.

En resumen, puede cubrir mucho terreno con Javascript, XML y HTML, pero echa de menos IE y está limitado en lo que puede hacer. Si desea llegar hasta el final, debe aprender C ++ (y comprender las sutiles diferencias entre C ++ y C para NPAPI). No recomiendo jugar con complementos de navegador basados en C #, a pesar de los numerosos ejemplos sobre cómo escribir barras de herramientas para IE en C #.

5
i_am_jorf 18 dic. 2009 a las 02:07

No hay una respuesta única para todos los navegadores, pero para los navegadores Mozilla como Firefox, estás hablando principalmente de JavaScript. Para IE, naturalmente, serán lenguajes .NET. Para otros navegadores dependerá, pero a menudo algunos JavaScript con quizás un poco del lenguaje en el que está programado el navegador.

Para los navegadores Mozilla, la sección Extensiones del Centro de desarrollo de Mozilla es un excelente lugar para comenzar.

1
phoebus 18 dic. 2009 a las 00:18

Para los navegadores basados en Mozilla, querrá ver principalmente Javascript (y las otras tecnologías enumeradas aquí).

Para Internet Explorer, cualquiera de los lenguajes .NET es generalmente lo que se usa para crear complementos de navegador IE.

1
Amber 18 dic. 2009 a las 00:14

En realidad, no estoy de acuerdo con las otras respuestas porque, en mi experiencia, la elección del lenguaje de programación no es una restricción en sí misma al escribir una extensión para Mozilla o IE.

IE usa COM para que pueda usar C o C ++ tanto como usar los lenguajes .NET.

Del mismo modo, Mozilla utiliza XPCOM, por lo que lo que realmente necesita es un enlace XPCOM en lugar de cualquier idioma específico.

He escrito extensiones para ambos navegadores en C ++. No tengo experiencia en escribir extensiones para otros navegadores.

6
Phil Booth 18 dic. 2009 a las 08:19