¿como crear un navegador web basico pero eficiente?

Iniciado por Skynet, 20 Marzo 2017, 04:35 AM

0 Miembros y 1 Visitante están viendo este tema.

Skynet

Siempre me he preguntado que seria tener un navegado personal hecho por uno mismo, así que busco cursos en internet y me encontré con Visual Basic.
Según lo que pude observar en los tutoriales no es nada difícil; al menos en lo que respecta navegar en la web. Luego descargo Visual Estudio y realizo mi primer navegador simple. Pero en dichos tutoriales solo me explican como colocar los botones de: retroceder, avanzar, refrescar pagina, pagina de inicio, mas no explican como colocar otros botones como nueva pestaña , como crear un menú o como compilar nuestro navegador.

En si quiero un navegador personal que me permita acceder a cualquier pagina teniendo en cuenta los riegos que corro por seguridad, pero que a la vez pueda manipular su interfaz a mi gusto.

Aparte quiero saber si existe una alternativa a visual estudio que sea mas liviana y donde puedo conseguir los iconos de los botones.

engel lex

#1
con visual basic lo que haces es poner un cuadrito que no es más que un internet explorer embutido en tu programa

si quieres hacer tu propio navegador desde 0, primero aprende a usar opengl para dibujar en pantalla, luego bien html para leer el html de la pagina y dibujar los elementos, luego css (aquí tendrás que estudiar un montón) para entender como los elementos interactuan con los estilos y como los estilos se afectan entre ellos, luego te toca hacer un motor para interpretar y ejecutar javascript, aquí te tendrás que leer muy bien la documentación porque  javascript es más extenso de lo que parece....

esto no se recomienda para una sola persona, se recomienda hacer en un equipo (yo diría por lo menos 4 personas) de manera profesional, que pueda dedicar un par de años de vida a hacer un navegador "funcional"

de todas formas tienes el código fuente de navegadores como mozilla y guiarte por ahí o modificarlos a gusto... eso si... prepàrate a ver lo que es un código complejo... mozilla tiene literalmente millones de modificaciones, porque es colaborado por la comunidad...

aquí el link.... https://developer.mozilla.org/es/docs/Descargar_el_código_fuente_de_Mozilla
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

RevolucionVegana

Pues tu piensa que las webs al fin y al cabo son una estructura HTML y la apariencia se le da con CSS, y bueno como ha dicho engel también utilizan javascript para procesar datos de lado del cliente, corregirme si me equivoco en algo porque JS no lo he usado nunca, entonces aquí la cuestión está en que lo que hace un navegador al fin y al cabo es leer los archivos de un ordenador (el nuestro u otro, normalmente llamados servidores) e interpretarlos de una forma, si por ejemplo creas una clase en HTML y con css le das una altura y una anchura y por ejemplo el color azul pues un navegador nos va a hacer nuestra figura que por ejemplo si fuese 200px por 200px sería un cuadrado y además le dará un color azul porque está programado para que lo interprete así pero si tu haces tu propio navegador podrías decirle que cuando en el css diga color:blue; pues que en vez de colorear en azul te coloree en verde es decir es una cuestión de leer e interpretar archivos .HTML .css .. incluso se pueden abrir archivos .txt o imágenes y vídeos con el navegador.... en fin no hay nada que no esté programado por otros a veces nos lo dan tan simplificado que creemos que lo hace el ordenador porque es muy listo y el ordenador no es listo, sigue ordenes y ya, algo que me estoy aplicando yo mucho últimamente es que hay que preguntarse que es cada cosa y aunque de primeras parezca una tontería es algo (al menos para mi) muy muy importante.

Saludos y respecto a la eficiencia pues supongo que un programa como el que tu quieres en C sería creo que lo más o casi lo más eficiente.

Y por cierto mira este navegador:

https://es.wikipedia.org/wiki/Lynx_(navegador)
HAS DICHO ALGO NENAAAAAA?!

engel lex

la eficiencia no solo se basaría en el lenguaje de programación, también se basaría en lo diestro que es usando dicho lenguaje y más aún se basa en como sepa usar los recursos del computador a la hora de procesar una web... ejemplo, chrome carga muy rapido, pero consume recursos como si fuera un juego de ultima generación, por el contrario IE tarda una vida en cargar, pero consume un minimo de recursos
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Eleкtro

#4
Si hablamos de desarrollar un navegador desde CERO eso es una completa locura y más para una sola persona, tan solo por el hecho de tener que implementar desde cero un motor de renderización y todo lo que concierna al funcionamiento de un navegador, ¿sin tener ninguna noción avanzada de ello?... no estarás hablando en serio...

Si hablamos de tener una base, una tecnología/motor que nos permita diseñar y personalizar a nuestro antojo la interfáz del navegador y controlarlo haciéndonos responsables de su comportamiento dentro de lo posible, entonces si, con Visual Basic.NET puedes hacerlo (o con C#, lo mismo da).

La opción más habitual (por ser la más sencilla y suficiente para suministrarle al usuario funcionalidades básicas de navegación) sería añadir el host de IE a tu form y diseñar el resto de la interfáz del navegador, pero lo cierto es que da muchos problemas por cualquier pequeña cosa, y es un componente que se queda muy corto a la hora de necesitar controlar y hacernos cargo de su comportamiento, por que no expone facilidades para ello. Por eso, hay opciones mucho más óptimas que esa bazofia de Microsoft. Hablando en términos de código administrado puedes utilizar componentes que están basados en el motor de Gecko (el de Mozilla Firefox) como el motor de Blink/WebKit (Chromium/Chrome) y puedes usarlos bajo tecnología WPF y WindowsForms. Aquí te dejo las opciones que siguen en continuo desarrollo:


Cualquiera de esas opciones es mucho más eficiente que utilizar el componente de IE.

PD: Las dos últimas opciones son productos de pago. De esos 4, los que llegué a probar y pude implementar con éxito para hacerlos funcionar fueron EO.WebBrowser y GeckoFX. Si te puedo ayudar en algo relacionado entonces formula tu pregunta en el foro de .NET.

¡Saludos!








Skynet

Gracias a todos por sus respuestas. Tendré en cuenta cada una de ellas. Me parece muy buena idea usar el código de un navegador ya existente ya que por ninguna razón dedicaría tanto tiempo para hacer uno desde cero. Como antes dije solo quiero un navegador personal donde pueda gestionar el contenido que veo así como también poder darle estilo a mi gusto. Esta manía mía se me ocurre ya que ninguno de los navegadores que conozco cumplen con mis gustos a pasar de que son muy buenos como dijo engel lex google es muy rápido pero consume mucha Ram. Y me interesaría escuchar sus opiniones o no perder el tiempo soñando con algo imposible.