Здравствуйте, jed, Вы писали:
jed>А нет ли у вас случаем примера/ссылки как под винду с минимальными усилиями собрать helloworld пример использования CEF, желательно CEF3?
jed>В идеале, готовый проект для какой-нибудь вижуал студии, чтоб просто взять и собрать. В смысле, пример использования готовой сборки CEF. Не скачивая с разных мест разные куски, не собирая Хромиум из исходников.
Если речь о C++ — то скачиваешь оригинальный пакет бинарников под виндовс (
http://www.magpcss.net/cef_downloads/index.php?file=cef_binary_3.1453.1255_windows.7z ) — там есть солюшн для cefclient — он посложнее helloworld, но достаточно прост что бы разобраться. С дотнетом в общем-то тоже самое. Ещё вот есть неплохой туториал
Chromium Embedded Framework 3 — Bare Bones. Стоит почитать (хоть там и про GTK+ — ну под виндой используются обычные окна, поэтому это не так важно). Собственно говоря стоит запустить cefclient и пощупать его поближе.
F>> И вообще я не понял при чём тут CEF.
jed>Ну, я на подпись в сообщении посмотрел. Вижу вы занимаетесь .NET врапером для CEF.
jed>Похоже CEF — лучшее, что есть, если не заботит размер бинарников и потребление памяти и нужен современные js+html+css для GUI.
It depends, как говорится. CEF хорош тем, что это минимальный браузер (в плане API), и он готов браузить паблик интернет — это основное его преимущество.
Недостатки тоже есть, — на мой взгляд высокий порог вхождения, — надо понять не только CEF API, надо ещё обязательно проштудировать
коммандные ключи Chromium, и всякие документики с chromium.org тоже полезны. Ну и быть готовым хоть в пол глаза пробежаться дебаггером, если вдруг что. При чём не только по коду CEF, но и по коду Chromium. Поэтому — если есть серьёзные намерения на серьёзный продукт, и нет желания/возможности копаться в исходниках не только CEF но и Chromium — то в дальней перспективе, я бы от Chromium-based решения начисто бы отказался.
Почему? Потому что chromium разрабатывается в первую очередь с нацелом на Google Chrome. Всё что не мешает браузить социалки — идёт прямо в топку (ну конечно не так категорично, но суть приблизительно в этом). Поэтому даже если вдруг я например сделаю крутой патч к хрому — вполне может так стать, что он либо будет отвергнут, либо если он будет принят — прийдётся какое-то время мэйнтнить сборку с применением своих патчей самому.
Необходимости в этом
обычно нет, тем не менее я знаю несколько пользователей CEF, которые с подобным столкнулись и успешно пропихнули (багфиксы) в хром.
Из ярких примеров, нерешенных проблем — это по сей день отсутсвие поддержки HiDPI из коробки, или старрый иссу по поводу фликания белого фона на черных сайтах, когда issue чуть ли не старше чем сам хром, а дотянут опять таки до наших дней (кстати может быть пофиксили... движ вроде был вокруг).
Третий, на мой взгляд, краеугольный недостаток chromium-based решений — это то что он навязывает вам свою архитектуру. Он спавнит процессы так, как хочет он, он сделан с замахом на сэндбоксинг. Механизм этот можно изменить, но только вместе с изменениями в модуле content (та часть хрома вокруг которой построен CEF, или вот новая опера), и если такое предложить — я думаю начнется такой баттхерт, что лучше не спрашивать.
С другой стороны — у меня очень даже положительные впечатления от CEF. Просто для приложения на 2 кнопки — оно себя никак не оправдает. Приложения навроде Adobe Brackets — это вообще ошибка природы. Хотя для spotify или rdio он вполне оправдан. У меня лично были свои причины его начать использовать. И даже в последствии сделать свой биндинг к нему. Хотя где эта грань между использовать или не использовать — я не знаю.
В принципе-то аналогичные проблемы присущи любым third party библиотекам, в той или иной степени, в зависимости от.