Pozdrav, dali netko zna dali je moguće u C# napraviti vlastiti HTML rendering engine, znaci bez korištenja IE kontrole ili bilo kakve druge kontrole i dali ima kakav primjer jer na googleu nisam nasao nista osim gotovih kontrola sto necu, samo me zanima dali je moguce ?
- +/- sve poruke
- ravni prikaz
- starije poruke gore
Moguce je.
Sto ces slijedece pitati moze li se napraviti u C#? 
Mozda da otvoris jednu temu sa naslovom: "Moze li se u C# napraviti..."
I onda samo nizes pitanja u tu temu. :D
Moguce je.
Sto ces slijedece pitati moze li se napraviti u C#? 
Mozda da otvoris jednu temu sa naslovom: "Moze li se u C# napraviti..."
I onda samo nizes pitanja u tu temu. :D
Dobra ideja :D
Ma to mi je palo na pamet pa ono reko da pitam kad na netu trazim, ali nitko nema pojma o tome ocito ...
Ako ga ikada napraviš molit ću te da postaš kod negdje pa da "onaj što prog. u eng. programskom jeziku" shvati kako funkcionira web browser, jer je više dosadan sa svojim temamu u kojima se hvali kako je dodavanje IE kontrole na formu, web browser.
Ako ga ikada napraviš molit ću te da postaš kod negdje pa da "onaj što prog. u eng. programskom jeziku" shvati kako funkcionira web browser, jer je više dosadan sa svojim temamu u kojima se hvali kako je dodavanje IE kontrole na formu, web browser.
Hahah, a cuj mozda i to bude jednoga dana ali ne tako brzo, ipak treba malo više znanja za tako nešto ... ali bar ne programiram u engleskom ... 
Prvo napravi HTML parser (ako se usudiš
), a onda tek razmišljaj o rendering enginu.
Nisam ja ni rekao da idem raditi bilo šta, samo sam pitao dali je moguće 
Zašto ne bi bilo moguće? Programski jezik kao i svaki drugi. O brzini bi se dalo diskutirati.
Edit:
Napravljen je i OS u C#, pa ti vidi.
Pa neznam, jer na netu nema niti jedan primjer baš u C#, a i po stranim forumima isto nema nešto o tome previše ...
Naravno da može al' ono, lako za HTML, aj ti parsiraj CSS ili JavaScript i sve to renderiraj prema nekom standardu. Postoji razlog zašto imam samo 5-6 funkcionalnih browsera. Zato jer za takve stvari trebaju veliki inžinjerski resursi.
Al ono za zabavu, postoje nazovimo ih HTML renderi koji mogu izvuću tekst iz HTML, najčešće nekakvim HTML paresrom i regularnim izrazima i iscrtaju ga najćešće na konzolu.
Naravno da može al' ono, lako za HTML, aj ti parsiraj CSS ili JavaScript i sve to renderiraj prema nekom standardu. Postoji razlog zašto imam samo 5-6 funkcionalnih browsera. Zato jer za takve stvari trebaju veliki inžinjerski resursi.
Al ono za zabavu, postoje nazovimo ih HTML renderi koji mogu izvuću tekst iz HTML, najčešće nekakvim HTML paresrom i regularnim izrazima i iscrtaju ga najćešće na konzolu.
Znači u C# se moze napraviti i parser i renderer, znači nema potrebe da se baš C++ koristi !?
Jedno su programski jezici, a druga stvar su API-ji koji ne ovise o programskom jeziku. Čitanje datoteka, komunikacija sa serverom, iscrtavanje ekran i drugo se bez problema može napraviti u C#. Za što ti točno u tom slučaju treba C++ (očito misliš da ti neke low-level funkcionalnosti trebaju?) osim zbog brzine?
Jedno su programski jezici, a druga stvar su API-ji koji ne ovise o programskom jeziku. Čitanje datoteka, komunikacija sa serverom, iscrtavanje ekran i drugo se bez problema može napraviti u C#. Za što ti točno u tom slučaju treba C++ (očito misliš da ti neke low-level funkcionalnosti trebaju?) osim zbog brzine?
Pa netreba mi C++ nego me zanimalo samo dali je moguće to napraviti u C# ...
Iako je mislim ovo nega trollerska tema, ali svjedno ću ti malo pomoći.
U većini današnjih "naprednih" jezika možeš napisati HTML parser.
Ako si mazohista onda možeš raditi sa direktno socketom i prvo napraviti neku HTTP kontrolu pomoću koje ćeš raditi HTTP response i request. Meni je jednom trebalo kada sam morao napraviti SOAP komunikaciju bez web servera (kao standalone aplikaciju), a preko HTTP kontrola (opisanih dolje) je radilo sporije nego mi je trebalo. Ukratko socket ti ima blocking i non-blocking mode operiranja. Blocking ti blokira daljnje izvršavanje koda do onoga trenutka dok ne dobiješ odgovor od hosta, non-blocking ti ne blokira, ali onda se moraš igrati sa selektorom i postavljanja njegovih flag-ova za čitanje ili pisanje u socket. Možeš i blocking pretvoriti u "hibrid" NIO (Non-blocking IO), tako da čitanja i pisanje za svakog klijenta postaviš u novi thread. Isto tako kad radiš sa selectorom moraš ga uvijek dobro zatvarati jer ti "socket" konekcije ostaju u "CLOSE_WAIT" stanju pa možeš izgubiti sve slobodne konekcije na mašini.
Evo nešto za početi, socket komunikacija u Javi (slično je u .NET-u):
http://www.oracle.com/technetwork/java/socket-140484.html
Ako si malo normalniji i neda ti se to raditi i ne zanima te low-level HTTP, onda imaš ovakve kontrole
http://hc.apache.org/httpcomponents-client-ga/
To su ti već implementirani HTTP Client i Server. Takvi isti se koriste i kod Android-a. Mi smo kod izrade aplikacije BugDroid (za čitanje BugOnline kroz android, ako si čuo), koristili te kontrole, praktički smo napravili mali HTTP browser koji čita samo BugOnline (preko regex-a). Sad smo ga malo unaprijedili i može se preko njega logirati na forum, čitati forum itd..., pamti ASP autorizacijske Cookie (i obične koji mu trebaju), response HTTP Header-e. Iskreno ima puno posla s postavljanjem pravilnih header-a, cookia, parametara, ima masu toga što moraš uzeti u obzir, mi smo uzeli samo ono što je specifično za BugOnline.
Tu imaš HTTP specifikaciju ako te zanima (koje se moraš držati kod raw komunikacije preko socket-a)
http://www.w3.org/Protocols/rfc2616/rfc2616.html
Ovdje imaš HTML specifikaciju (koji je ustvari najobičniji XML i možeš ga parsati kao takvog)
Evo nadam se da je to odgovorilo na nešto od tvojih pitanja.
Autora teme je samo zanimalo da li se može napraviti web browser u C#, pa ja čisto sumnjam da će ga dotični raditi jer je vrlo vjerojatno na početku programerske karijere pa odlučuje koji jezik koristiti.
Ali evo pošto je @dado2202 dao par odličnih resursa ali ja smatram da su previše low level, evo i ja sam našao nešto jednostavnije članke na codeproject-u koji koriste gotove .net komponete:
Parser - http://www.codeproject.com/KB/recipes/FFHtmlParser.aspx
Renderer - http://www.codeproject.com/KB/GDI-plus/HtmlRenderer.aspx
Na CP-u ima pun k**** stvari vezanih za to, ovo su 2 prva koja su mi se izbacila prilikom pretraživanja, pa ako nekome ova 2 članka ne odg. svakako nek izabere neke druge od ponuđenih.
Iako je mislim ovo nega trollerska tema, ali svjedno ću ti malo pomoći.
Nije trollerska tema, stvarno me zanimalo jer na netu nigdje nisam mogao nista naci o tome pa reko idem ovdje pitati ...
