Wie fange ich an, einen Webbrowser zu erstellen? [geschlossen]

88

Ich beschloss, einige Anstrengungen zu unternehmen, um einen Webbrowser von Grund auf neu zu erstellen. Welche allgemeinen Funktionen, Architekturen und Merkmale moderner Webbrowser sollte ich kennen, bevor ich anfange?

Alle Empfehlungen werden sehr geschätzt!

Galilyou
quelle
9
Ja, es ist ein verrücktes Projekt, aber wir müssen den Mickey hier nicht nehmen - ich denke, es ist ein großartiger Diskussionspunkt darüber, wie Sie das umgehen würden :)
Ross
8
Ich erinnere mich an einen Artikel vor einiger Zeit, in dem jemand beklagte, dass niemand mehr den Mut hat, neue Rendering-Engines zu bauen. Neue Browser werden benötigt, weil die heutigen Computer anders sind. Mehrere Kerne. Der erste Schritt ist Chrome mit 1 Prozess pro Tab. Mal sehen, was als nächstes kommt.
stesch
35
Wachsen Sie einige Bälle und machen Sie, was Sie wollen. Wenn es funktioniert, großartig. Wenn nicht, versuchen Sie es weiter, sonst werden Sie wie die andere Hälfte der Gesellschaft enden, die sagt: "Schaffen Sie nichts Neues, verwenden Sie einfach die kaputte Scheiße, die wir bereits haben."
uSeRnAmEhAhAhAhAhA
7
Sie brauchen eine dieser Pillen, die Bradley Cooper in Limitless einnimmt . ;)
Ali Gajani
3
Probieren Sie es aus. Ich wette, es ist viel einfacher als die Leute hier sagen, besonders wenn Sie viele vorhandene Komponenten zusammenstecken. Wie schwer kann es sein, Text zu analysieren und farbige Kästchen mit Text darin auszugeben?
Ian Warburton

Antworten:

125

Nun, zerbrich es in Stücke. Was ist ein Webbrowser? Was tut es? Es:

  • Ruft externe Inhalte ab. Sie benötigen also eine HTTP-Bibliothek oder schreiben diese (nicht empfohlen) selbst. Das HTTP-Protokoll ist sehr komplex / subtil, z. B. die Behandlung abgelaufener Header, verschiedener Versionen (obwohl es heutzutage meistens 1.1 ist) usw.;
  • Behandelt verschiedene Inhaltstypen. Es gibt eine Windos-Registrierung für diese Art von Dingen, die Sie huckepack nehmen können. Ich spreche hier von der Interpretation von Inhalten basierend auf dem MIME-Typ.
  • Analysiert HTML und XML : um ein DOM (Document Object Model) zu erstellen;
  • Analysiert und wendet CSS an : Dies beinhaltet das Verständnis aller Eigenschaften, aller Maßeinheiten und aller Möglichkeiten, wie Werte angegeben werden können (z. B. "Rand: 1 Pixel festes Schwarz" im Vergleich zu den separaten Eigenschaften für die Randbreite usw.).
  • Implementiert das visuelle W3C-Modell (und dies ist der wahre Kicker); und
  • Hat eine Javascript-Engine .

Und das ist im Grunde ein Webbrowser auf den Punkt gebracht. Jetzt sind einige dieser Aufgaben unglaublich komplex. Sogar die leicht klingenden können schwierig sein. Rufen Sie externe Inhalte ab. Sie müssen sich mit Anwendungsfällen wie den folgenden befassen:

  • Wie viele gleichzeitige Verbindungen sollen verwendet werden?
  • Fehlerberichterstattung an den Benutzer;
  • Proxies;
  • Benutzeroptionen;
  • etc.

Der Grund, warum ich und andere gemeinsam die Augenbrauen hochziehen, ist, dass die Rendering-Engine schwierig ist (und wie jemand bemerkte, sind Mannjahre in ihre Entwicklung geflossen). Die wichtigsten Rendering-Engines sind:

  • Trident: entwickelt von Microsoft für Internet Explorer;
  • Gecko: wird in Firefox verwendet;
  • Webkit: Wird in Safari und Chrome 0-27 verwendet.
  • KHTML: Wird in der KDE-Desktopumgebung verwendet. Webkit von KHTML vor einigen Jahren gespalten;
  • Elektra: verwendet in Opera 4-6;
  • Presto: verwendet in Opera 7-12;
  • Blinken: Wird in Chrome 28+, Opera 15+ und Webkit verwendet.

Die drei Besten müssen als die wichtigsten Rendering-Engines angesehen werden, die heute verwendet werden.

Javascript-Engines sind auch schwer. Es gibt mehrere davon, die in der Regel an die jeweilige Rendering-Engine gebunden sind:

  • SpiderMonkey: wird in Gecko / Firefox verwendet;
  • TraceMonkey: ersetzt SpiderMonkey in Firefox 3.1 und führt die JIT-Kompilierung (Just-in-Time) ein.
  • KJS: wird von Konqueror verwendet und ist an KHTML gebunden;
  • JScript: die im Internet Explorer verwendete Javascript-Engine von Trident;
  • JavascriptCore: Wird im Webkit vom Safari-Browser verwendet.
  • SquirrelFish: wird in Webkit verwendet und fügt JIT wie TraceMonkey hinzu.
  • V8: Googles Javascript-Engine für Chrome und Opera;
  • Opera (12.X und weniger) verwendete ebenfalls eine eigene.

Und natürlich gibt es alles, was mit der Benutzeroberfläche zu tun hat: Navigation zwischen Seiten, Seitenverlauf, Löschen temporärer Dateien, Eingeben einer URL, automatische Vervollständigung von URLs usw.

Das ist viel Arbeit.

Cletus
quelle
* Gecko :) Stimme auch zu. Hauptteile sind HTML-Renderer und JavaScript-Engine.
Abatishchev
1
Opera schuf ihre eigenen. Presto ist der aktuelle und Electra war ihr vorheriger.
Tim Sullivan
Tolle ausführliche Antwort - ich habe vergessen, dass JavaScript alles zusammen analysiert!
Ross
1
Die Welt braucht jedoch mehr Menschen, die Bälle haben, um Browser zu bauen. Cp eff.org/deeplinks/2016/04/save-firefox .
Pacerier
26

Klingt nach einem wirklich interessanten Projekt, erfordert jedoch einen enormen Aufwand.

Es ist keine leichte Sache, aber aus akademischer Sicht könnte man so viel daraus lernen .

Einige Ressourcen, die Sie überprüfen können:

Aber aus realistischer Sicht erinnerte mich der enorme Aufwand, es von Grund auf neu zu codieren, an diesen Comic:


(Quelle: geekherocomic.com )

Viel Glück :-)

Christian C. Salvadó
quelle
Oh, hat GHC weitergemacht? Ich glaube, ich habe mich abgemeldet, als sie angefangen haben, Ross 'Versteck zu machen.
Ross
@ Ross: Ja, sie liefern immer noch den Comic, dieser neue Typ heißt Boris aus Russland und er ist ein "Super Hacker" LOL
Christian C. Salvadó
17

Die meisten modernen Webbrowser sind riesige Biester und wahrscheinlich ziemlich schlecht designt, weil sie (und das Web selbst) sich eher willkürlich entwickelt haben.

Sie müssen zunächst die Ziele Ihres Projekts (und was Sie erreichen möchten) sehr deutlich machen. Tun Sie das nur zum Spaß oder erwarten Sie, dass andere Leute Ihren Browser verwenden? Wenn Sie erwarten, dass andere es nutzen, was ist der Anreiz für sie? Es ist unrealistisch zu erwarten, dass Sie einen neuen Browser von Grund auf neu entwickeln, den jeder als Ersatz für Chrome, Safari, Firefox, IE, Opera usw. verwenden kann. Alle diese Projekte haben einen Vorsprung von 10 bis 15 Jahren Sie, und wenn Sie sie eingeholt haben, werden sie Ihnen noch 10-15 Jahre voraus sein. Außerdem haben sie viel mehr Arbeitskräfte hinter sich. Wenn Sie also möchten, dass Ihr Projekt erfolgreich ist, benötigen Sie diese Arbeitskräfte irgendwann.

Dies ist der Grund, warum Apple und Google, große Unternehmen mit vielen Ressourcen, nicht bei Null angefangen haben. Nicht einmal Microsoft hat von vorne angefangen. Der ursprüngliche IE basierte auf Mosaic. Die einzigen bedeutenden Browser, die heute noch von Grund auf neu gestartet wurden, sind Opera , Konqueror und Lynx, die leider alle winzige Marktanteile haben. Vergessen wir Lynx für den Moment, da es sich um einen Nur-Text-Browser handelt und vermutlich der einzige Grund, warum es ihn noch gibt, darin besteht, dass er diese spezielle Nische bedient. Opera ist wohl einer der besten Browser, die jemals hergestellt wurden, und dennoch hatte es nie einen großen Marktanteil. Denken Sie also daran, dass Erfolg und Innovation nicht dasselbe sind. KHTML ist die Engine hinter Konqueror, die selbst nie sehr erfolgreich wurde, aber die Grundlage für WebKit ist, das sowohl Apple als auch Google verwenden. Ich denke, man könnte definitiv argumentieren, dass es weder Safari noch Chrome geben würde, wenn KHTML niemals erstellt worden wäre. Interessanterweise wurden sowohl KHTML als auch Opera größtenteils von norwegischen Programmierern produziert, die im selben Gebäude in Oslo arbeiteten.

Sie müssen sich das Erstellen eines Webbrowsers wie das Erstellen eines Betriebssystems ansehen, da dies im Wesentlichen ein Browser ist - es ist ein Betriebssystem zum Ausführen von Webanwendungen. Und wie ein Betriebssystem ist ein Webbrowser eine sehr komplexe Software mit vielen Komponenten. Natürlich ist es den Menschen gelungen, neue Betriebssysteme von Grund auf neu zu erstellen. Linus Torvalds fällt mir ein. Er machte Linux zu einem der erfolgreichsten Betriebssysteme aller Zeiten.

Natürlich stehen Sie vor einer zusätzlichen Herausforderung, die das Erstellen eines neuen erfolgreichen Browsers schwieriger macht als das Erstellen eines neuen erfolgreichen Betriebssystems. Von Browsern wird erwartet, dass sie den gesamten im Web schwebenden Legacy-Code fehlerfrei ausführen. Nehmen wir nun an, Linus Torvalds wurde mitgeteilt, dass sein neues Betriebssystem keine Rolle spielen würde, es sei denn, es wäre perfekt abwärtskompatibel mit UNIX oder einem vorhandenen Betriebssystem. Ich bezweifle, dass er sich die Mühe gemacht hätte, und Linux würde heute wahrscheinlich nicht existieren. Realistisch gesehen war der einzige Grund, warum Linux populär wurde, natürlich, dass es gut entworfen wurde und das GNU-Projekt Tools für die Portierung großer Mengen vorhandenen Codes auf Linux erstellen konnte. Ohne die ideologische Unterstützung von GNU für Linux hätte es keine Chance gehabt.

Vorausgesetzt, Sie sind wirklich ehrgeizig (oder tollkühn) genug, um einen neuen erfolgreichen Browser zu erstellen, sollten Sie sich auf Architektur und Design konzentrieren . Es gibt keinen praktischen Grund, einen neuen Browser von Grund auf neu zu erstellen, es sei denn, Sie sind sicher, dass Sie das Design vorhandener Browser auf irgendeine Weise verbessern können. Das bedeutet, dass Sie sich mit dem Code von WebKit und Gecko ausreichend vertraut machen müssen, um die von ihnen getroffenen Entwurfsentscheidungen zu verstehen. Sie sollten jedoch nicht versuchen, den Entwurf zu kopieren, da Sie sonst genauso gut den Code verwenden könnten.

Meine persönlichen Gedanken (ohne genügend Nachforschungen angestellt zu haben) sind, dass die heutigen Browser nicht modular genug sind. Wenn ich einen neuen Browser erstellen würde, würde ich einen Weg finden, das Ein- und Auswechseln zu vereinfachen (z. B. das Ersetzen einer JavaScript-Engine durch eine andere) und dem Benutzer viel mehr Kontrolle zu geben, als dies derzeit bei vorhandenen Browsern der Fall ist . Moderne Browser und Webdesigner haben dem Benutzer fast die gesamte Kontrolle genommen. Warum kann ich als Benutzer dem Webbrowser nicht mitteilen, wie der auf meinem Computer angezeigte Inhalt gerendert werden soll? Der ursprüngliche HTML-Code enthielt nur Richtlinien für die Strukturierung von Inhalten, und im Laufe der Zeit wurden neuere Standards immer dogmatischer, bis der Benutzer nun dem Webdesigner völlig ausgeliefert ist. Der Reiz von Linux bestand darin, dass es dem Benutzer die Kontrolle zurückgab und dass '

Die andere Sache, die ich erforschen würde, wenn ich Sie wäre, sind die Prinzipien des Betriebssystemdesigns. Das Entwerfen eines guten Browsers sollte zumindest theoretisch dieselben Prinzipien erfordern wie das Entwerfen eines guten Betriebssystems - insbesondere im Hinblick auf gleichzeitige Prozesse, Sicherheitsmodelle usw.

Nachdem Sie viele Nachforschungen angestellt haben, sollten Sie hier mit dem Codieren beginnen, denke ich:

  1. Mosaik neu konstruieren, aber mit eigenen Designideen. Dies ist auch das, was ich vorschlagen würde, wenn Sie es nur zum Spaß oder zu Ihrem eigenen Bildungsnutzen tun. Lesen Sie die ursprünglichen HTML 1.0- und HTML 2.0-Spezifikationen sowie die HTTP 1.1-Spezifikationen und die aktuellen URI-Spezifikationen und stellen Sie sicher, dass Ihr Browser alle diese Spezifikationen einhält. Sie können natürlich vorhandene Software herunterladen, die bereits die Transportprotokolle, URI-Konventionen usw. verwaltet. Wenn Sie jedoch ernsthaft Ihren eigenen Browser entwerfen möchten, ist es meiner Meinung nach eine gute Übung, diese Dinge auch von Grund auf neu zu erledigen ein gutes Gefühl dafür, wie alle Puzzleteile zusammenpassen. Am Ende von Schritt 0 sollten Sie einen Browser haben, der zumindest mit dem Stand der Technik in den 90er Jahren vergleichbar ist. Dies ist ein guter erster Meilenstein. Und Sie können das Original-Mosaik tatsächlich unter herunterladenftp://ftp.ncsa.uiuc.edu/Mosaic/ und sehen Sie, wie es mit Ihrem Browser verglichen wird. Es ist auch eine gute Übung, um zu sehen, wie aktuelle Websites in einem alten Browser wie Mosaic gerendert werden.

  2. Fügen Sie Ihrem Browser Unterstützung für das DOM hinzu. Konzentrieren Sie sich zuerst auf W3C DOM Level 1 und Level 2, da so gut wie alle aktuellen Browser diese vollständig unterstützen. Schauen Sie sich dann Level 3 und Level 4 an. Das DOM ist für die Webprogrammierung äußerst grundlegend. Wenn Sie also einen modernen Webbrowser erstellen möchten, muss das gesamte Design dies berücksichtigen. Da Sie den Browser in C # schreiben, möchten Sie möglicherweise berücksichtigen, wie Sie das vorhandene .NET-Objektmodell zu Ihrem Vorteil nutzen können.

  3. Sehen Sie sich vorhandene Scripting-Engines an und prüfen Sie, ob Sie sie auf Ihr Projekt portieren können. Ich würde Sie davon abhalten, Ihren eigenen JavaScript-Interpreter zu schreiben, nicht nur, weil dies ein sehr großes Projekt für sich ist, sondern weil bereits so viel Arbeit in die Optimierung von JS-Compilern (z. B. V8) gesteckt wurde. Wenn Sie also kein Guru im Compiler-Design sind, ist Ihr handgefertigter JS-Interpreter wahrscheinlich schlechter als das, was es bereits gibt, selbst wenn er den EMCAScript-Spezifikationen einwandfrei folgt. Auch hier denke ich, dass die Scripting-Engine ohnehin ein völlig anderes Modul als der eigentliche Browser sein sollte. Ich denke, es wäre viel nützlicher, ein Framework zu haben, mit dem Sie jede Scripting-Engine ersetzen können, anstatt eine Scripting-Engine zu erstellen das funktioniert nur mit deinem browser.

  4. Sehen Sie sich den HTML / CSS / JS-Quellcode für die 10 bis 20 besten Websites in Nordamerika an (Google, Facebook, YouTube, Twitter, Wikipedia, Amazon, beliebte Blogging-Plattformen usw.) und entwickeln Sie Ihren Browser so, dass er mit diesen Websites gut funktioniert . Dies ist ein etwas leichter zu lösendes Problem, als einen Browser zu erstellen, der allen bestehenden Standards entspricht (was die aktuellen Browser immer noch nicht perfekt machen), geschweige denn einen Browser zu erstellen, der alle Websites im Web korrekt wiedergibt (niemand kann dies) TU das). Die Leute werden sich beschweren, dass Ihr Browser gegen Standards verstößt und so weiter, aber das ist kein so großes Problem wie die Leute, die sich beschweren, dass sie mit Ihrem Browser nicht auf Google oder Facebook zugreifen können. Ich kann mir keinen Browser vorstellen, der bei seiner ersten Veröffentlichung alle (oder sogar die meisten) Standards korrekt befolgt hat, also sage ich, versuche es nicht einmal.

user2188685
quelle
1
+1 für die meisten Webbrowser-Codes von heute saugen schrecklich mit Schiffsladungen von Legacy-Mist aus den 1990er Jahren . Google hat versucht, dieses Problem zu lösen, indem es Blink erstellt hat, bei dem es sich im Grunde um ein Webkit handelt, bei dem 8,8 Millionen Zeilen Mist entfernt wurden. Trotzdem bleiben in Blink Schiffsladungen mit nicht entfernbarem, festem Mist stecken.
Pacerier
1
... Hätte Google heute damit begonnen, einen Browser zu erstellen , würde er ihn definitiv von Grund auf neu erstellen , aber jetzt ist es zu teuer, die Titanic zu drehen, da alle Mitarbeiter Blink bereits kennen. Ein neues Startup mit umfassenden Fähigkeiten und einer guten Finanzierung mit Geld, um ein konkurrierendes Browser-Betriebssystem zu erstellen, kann definitiv einen Vorteil gegenüber Chrome haben.
Pacerier
15

Du meinst wie beim Schreiben deiner eigenen Rendering-Engine?

Ich kann nur viel Glück sagen. Viele Mannjahre sind in die aktuelle Generation der verschiedenen Browser geflossen. Wenn Sie es besser machen wollen als beide, benötigen Sie einige ernsthafte Fähigkeiten. Wenn Sie sich fragen müssen, wo Sie anfangen sollen, müssen Sie wahrscheinlich mehr als ein paar Jahre studieren, bevor es Sinn macht, eine solche Aufgabe zu versuchen.

Das heißt, hier sind einige (offensichtliche) Hinweise:

  1. Schreiben Sie viel Code, der kleine Dinge erledigt, z. B. die Lösung aller projecteuler.net- Probleme
  2. Erfahren Sie alles über Ihr Toolkit und seine Community-Standards
  3. schreibe viel mehr Code
  4. Machen Sie sich mit Finite-State-Maschinen vertraut
  5. schreibe noch mehr Code
  6. Erfahren Sie alles über den TCP / IP-Stack und wie er für http verwendet wird
  7. Erfahren Sie alles über http
  8. Lernen Sie die Standards (HTML, XML, SGML, CSS)
  9. Feiern Sie Ihren 150. Geburtstag.
  10. Beginnen Sie mit dem eigentlichen Browserprojekt.

unten bearbeiten

Ich wollte nicht, dass es entweder motivierend oder demotivierend ist, sondern nur, um Ihnen zu zeigen, dass ein Browser ein wirklich großes Projekt ist und dass wirklich große Projekte viel Nachdenken erfordern. Stumpfe Ehrlichkeit mit Humor.

Ich habe über zwei Drittel meines Lebens programmiert und ich denke gerne, dass ich ein ziemlich anständiger Programmierer bin, aber es wäre dumm von mir zu denken, dass ich eine halbe Chance hätte, einen anständigen Webbrowser von Grund auf neu zu schreiben .

Natürlich, wenn Sie dies tun möchten, lassen Sie meinen Kommentar nicht im Weg stehen. Sie können es wahrscheinlich besser machen als Internet Explorer.

Kris
quelle
12
Ich hätte erwähnen sollen: Wenn Sie einen Apfelkuchen von Grund auf neu erstellen möchten, müssen Sie zunächst ein Universum erstellen.
Kris
@ Mk12: in der Tat danke. Aktualisiert.
Kris
1
@Kris Wie erschaffst du ein Universum, wenn es nichts gibt, mit dem du es erschaffen kannst?
uSeRnAmEhAhAhAhAhA
1
@ user2645707: Ich würde es nicht wissen, ich mache nur jemanden, der schlauer ist als ich. quotationspage.com/quote/26980.html
Kris
12
+1 für "Sie können es wahrscheinlich besser machen als Internet Explorer."
Pulah Nandha
14

Es ist ein wahnsinnig ehrgeiziges Projekt (besonders für einen einzelnen Entwickler), aber etwas, das ich gerne eines Tages machen würde - man könnte so viel daraus lernen.

Ich weiß nicht viel darüber, wie die Protokolle funktionieren (etwas, das Sie unbedingt erforschen müssen) oder viel darüber, was in einem Browser vor sich geht, aber ein guter Ausgangspunkt wäre die Quelle der Open-Source-Browser, hauptsächlich Chrome und Feuerfuchs. Chrome ist ein besonders gutes Projekt, da es nur das tut, was ich von Ihnen erwarten würde: das Chrome und das Backend des Browsers. Vergessen Sie zunächst, eine Rendering-Engine zu erstellen - verwenden Sie Webkit oder Gekko.

Ross
quelle
8

Wie alle anderen bereits gesagt haben, ist ein Webbrowser ein riesiges Projekt. Sie müssen sich um TCP / IP & Sockets kümmern, HTML rendern, CSS verwenden, ein DOM-Modell erstellen, Javascript ausführen, mit fehlerhaftem Markup und Code umgehen und alle Arten von Dateien verarbeiten, bevor Sie überhaupt über die Dinge nachdenken können, die die Leute erwarten Ein Browser (dh Lesezeichen, Verlauf, privates Surfen, Sicherheit usw.) Es ist ein riesiges Projekt.

Davon abgesehen kann es getan werden. Mein Vorschlag wäre, sich die Quelle von Firefox anzusehen. Ich weiß, dass Sie gesagt haben, Sie möchten einen Browser von Grund auf neu erstellen, aber es wäre sehr hilfreich , zuerst von einem Open-Source-Projekt zu lernen .

Ich würde die Firefox-Quelle herunterladen und sie langsam entfernen. Mit anderen Worten, ich würde die Quelle nehmen und alle Lesezeichenfunktionen entfernen . Dann würde ich die Fähigkeit entfernen, mit Addons umzugehen. Dann würde ich den gesamten Code zum Speichern von Dateien löschen. Ich würde diesen Prozess fortsetzen, bis ich einen sehr einfachen Webbrowser habe. Ich würde mir diesen Code ansehen.

Dann würde ich anfangen, meine eigenen zu bauen. Ich würde das Wissen, das ich durch das Zerlegen von Firefox gewonnen habe, in den Aufbau eines neuen Browsers einfließen lassen.

Eine ganze Menge Glück zu Ihnen!

Stalepretzel
quelle
Können Sie einen Hinweis geben, wie Firefox aufgelöst werden kann? Ich meine, ich bekomme eine exeDatei, bei deren Installation bekomme ich einen Quellordner mit vielen dllDateien. Wie studiere ich den tatsächlichen Code, der dies getan hat, und die Logik, die dahinter steckt?
SexyBeast
Dieser Kommentar kommt zu spät zur Party, aber trotzdem. Die EXE- und DLL-Dateien sind das Ergebnis eines Kompilierungsschritts, und Sie können nicht erwarten, dass dies sinnvoll ist. Sie benötigen den Quellcode (einige C ++ - und andere Sprachen in verschiedenen Dateien), um das Programm zu verstehen. Programmierer müssen einen Sinn für ihr eigenes Programm haben, daher neigen sie dazu, die verschiedenen funktionalen Teile des Codes zu trennen und zu dokumentieren.
Roy Prins
4

Sie könnten mit wohlgeformtem und gültigem XHTML beginnen, das einfacher sein sollte als die Tag-Suppe, auf die Ihr Browser im wirklichen "Leben" stößt.

Dann müssen Sie einen Weg finden, um den echten HTML-Code aus dem Web an Ihre Bedürfnisse anzupassen.

Aber mach dir nichts vor: Ein Browser ist kein kleines Projekt.

stesch
quelle
3

... dann mach dir Sorgen um die Sicherheit

(Nicht funktionierende und übergreifende Bedenken sollten jedoch generell im Vorfeld berücksichtigt werden :))

Matt
quelle
1

Sehr ehrgeiziges Projekt, aber ein Entwickler kann dies nicht alleine tun. Sie benötigen ein Team (Projektmanager, Tester ...) und vielleicht sollten Sie Ihre Sprachauswahl überprüfen. c # funktioniert nur unter Windows (ich kenne Mono unter Linux, aber es ist nicht das Trotzdem wünsche ich Ihnen viel Glück und benutze gerne Ihren Browser: D.

Hannoun Yassir
quelle
0

Sie haben wirklich viel Freizeit in der Hand, oder? AFAIK, die meisten Browser wurden in C ++ geschrieben. Nicht alle Benutzer haben das .NET Framework auf ihren Computern installiert. In diesem Fall ist es möglicherweise nicht die von Ihnen benötigte Version.

Dies könnte Jahre dauern, aber es gibt viele Open-Source-Browser, FireFox, Google Chrome usw. Sie könnten sich zunächst den Code ansehen, viel Glück damit :)

Waleed Eissa
quelle
1
Chrome ist kein Open Source-Programm. Der größte Teil des Quellcodes befindet sich jedoch im Chromprojekt
Anonymous