Hacker News new | past | comments | ask | show | jobs | submit login
CefSharp – Embedded Chromium for .NET (github.com/cefsharp)
69 points by tilt on Aug 19, 2015 | hide | past | favorite | 25 comments



Awesomium is also an excellent product I've used before to embed the chromium engine in WinForms and WPF apps...

http://www.awesomium.com/


I can only recommend against Awesomium. Their library has a lot of bugs which I can see past, but the way they support their product is repulsive. On average it took them 3-5 days to get back to us on a email ticket with a half-baked response that then took another 3-5 days to clarify. The founder didn't seem phased that this was a problem and had zero empathy that we had deadlines to meet and software to ship.

We ended up ripping out Awesomium from our product and replaced it with CefSharp. Now we don't get held up by Awesomiums crappy support because we can just fix our problems ourselves. We couldn't be happier. That said, it would be nice if there was commercial support for CefSharp. We have a team of full time native developers who have to deal with CEF issues that would be nice to put on somebody else's plate. Anybody know if there is such a thing?


They make no promises about support even with their Pro edition [0]:

We currently do not offer premium, priority support plans for our commercial licensees. We will announce such plans if they become available in the future.

So Caveat emptor.

[0]: http://wiki.awesomium.com/licensing/licensing-overview.html


I'm bradgessler's cofounder. We were promised support in an email. That statement about lack of support for paid customers was added after we paid them and experienced the 3-5 day turnaround times. As I recall, the tickets were mostly us reporting defects.


Ah, ok...not so good.


Hey Brad, sorry Awesomium didn't meet your needs and that you eventually found something that worked. PollAnywhere looks pretty awesome now, grats!

Sad to see you felt I had zero empathy to your plight, a full refund was approved just weeks after your license purchase.


Awesomium is good but development is excruciatingly slow and the team seems to place no importance whatsoever on developer relations. Questions on their forum are very frequently ignored, and I've heard that the situation with email replies is similar. If you have an issue that maybe they haven't dealt with yet, they just ignore you, because perhaps it's easier to cover your ears and eyes then to address a problem that folks are having.

Awesomium team, if you're reading; guys! Get your customer relations sorted out! Answer every damn forum post! Make people love you! Many developers are using the free version of your product, but these are the same developers who will recommend that their employer buy your product. Your failures in these departments have stopped me from coming back or recommending your product to others. I can't speak for others, but I wouldn't be surprised if others feels the same way.

Disclaimer: I say all this with no knowledge of how overworked or understaffed you are, what technical problems you're currently facing, how much time you would need to spend answering questions or why the time between updates to your product is so huge.


I agree, we done f*cked up on the support side of Awesomium and most of the blame rests with me (we're understaffed, underfunded, and _extremely_ ambitious). Sorry!

For what it's worth, we have made huge progress on R&D these past 20 months and will be announcing the fully redesigned 2.0 soon. (And you can be damned sure we will be onboarding more customer support in preparation for the next product cycle)


Fair enough. If I could say one thing; make it a company policy to have every team member spend an hour on your answers forum every morning answering all the unanswered questions. Make it a point of pride that you do this. An unhappy user of your product should be a lot more painful to you than the 15 minutes of your 12 hour day that you lose keeping that customer happy. Bad customer relations is poison that will hurt your company in the long run, and probably already has for many people.

Also, be frank and honest about issues that you are aware of but don't have time to fix right now. If you don't have an answer because there's no time for it right now, tell people. They will appreciate the honesty, even if it doesn't solve their problem right now.


Thanks for this, we'll work harder to have more upfront, prompt responses in the forum. Admittedly, the biggest issue has been a complete lack of enough developers to handle support during heavy development phases.

PS. for anyone reading, if you love UI and got a C++ or C# background, we're hiring! Email me at adam@awesomium.com


Need any C# devs? Contact details are in my profile.


Except it being for the most part a corpse, it was at one time something nice I can see; but I see (and encourage) everyone I see who uses it to move to CEFSharp or Coherent UI if they need actual support and advanced features that were previously nested in awesomium.


> C++/CLI

Pity that: means it won't even compile on other platforms. It's always better to make a pure extern "C" wrapper around the C++ library that you are using and P/Invoke that from the CLR.

Furthermore, I work on a roughly 1MLOC C++/CLI codebase daily. Their one is "small" and, trust me, they had better hope it stays that way. C++ is a great language, CLI is great runtime, mix the two and you're going to have something that approaches damn near zero maintainability.


I've done a fair amount of work with CEF (the native version, not CefSharp), Awesomium, Coherent UI, and the native WinForms WebBrowser control.

If you are targeting Windows and don't need features that are specific to Chromium, I recommend the WebBrowser control above the others, because it will save you quite a bit of file size in your application, along with less memory usage.

Unfortunately, the WebBrowser control defaults to an IE7 compatibility mode, which is where it's gotten much of its bad reputation. However, you can force it into IE11 mode, assuming that the user's machine does have IE11 installed. (And if you are producing a Windows app, customers who have refused to update their systems to IE11 are probably customers not worth supporting.)

Oddly enough, there is no API to do this. You have to write a value to the registry listing your .exe filename and the IE version you want to use. But this value is in HKEY_CURRENT_USER, so you don't need administrator privileges or a UAC prompt to do this.

WebBrowser also sends an IE7 UserAgent string by default, but you can easily override that.

I posted the code for both of these tweaks in the MarkdownPad forum, where I was encouraging the author to use the WebBrowser control instead of Awesomium which the product currently uses:

http://forums.apricitysoftware.com/t/why-is-markdownpad-spaw...

(Friends at Awesomium, don't take offense! I just think WebBrowser is a better match for MarkdownPad, since it doesn't need Chromium features and IE11 compatibility would be plenty good for their needs. They actually used the WebBrowser originally but switched to Awesomium because the author didn't know how to force WebBrowser into IE11 mode!)

The problem I have with both Awesomium and Coherent UI, besides the large file size, is that they are both stuck on old versions of Chromium: IIRC Coherent is somewhere around Chromium 31 and Awesomium is in the upper 20's. (Sounds like there is a new version coming out though.) CEF keeps much more up to date on the Chromium versions; not sure about CefSharp.

Coherent has nice integrations for Unity and Unreal Engine, including hardware acceleration, which was a real problem when I tried to integrate CEF into Unity a year ago. (This has no doubt been resolved by now, but at the time Chromium was going through a restructuring of the hardware rendering pipeline and CEF just bailed out on it for a while.)

I did a fun little project with Awesomium (originally for the late great OnLive) that composited multiple WebViews transparently on top of each other so each one ran in its own thread. Kind of like stacking transparent iframes but without the single-thread limitation:

https://github.com/geary/awestack


We're releasing a major upgrade to Coherent UI that is already in Beta and that version is based on chromium 40+. All the new features are available - http://coherent-labs.com/news/a-major-update-of-coherent-ui-.... We try roll new versions every 2 weeks and update the chromium core when there are new significant features that we feel will benefit our users.


> CEF keeps much more up to date on the Chromium versions; not sure about CefSharp.

CefSharp is itself a wrapper (for .Net) around CEF I believe. Currently on Chromium 41.


Alternative, which works pretty well: http://xilium.bitbucket.org/cefglue/


Hi, Stoyan from Coherent Labs here. My impressions of CEF are very good. They manage to keep it very close to the chromium HEAD, which is great. The only technical downside of CEF is the imperfect GPU acceleration. In many cases however the architecture of chromium itself is a hindrance. Their processes hog memory like crazy and introduce perceivable lag. We had to write a complete new product to solve the issue for games.


I've been using this for about a year on the Windows version of my social Spotify client, Soundbounce (www.soundbounce.org). I've been nothing but impressed with how easy it was to integrate and how well it runs (once you get over Chrome's memory use), so kudos to the dev team here.


Funnily enough, the actual Spotify client uses CEF too. As does Battle.net and tons of other companies (including my own).


Also worth considering for some folks, http://www.openfin.co ; although it is commercial and target at applications in the financial space (trading platforms, charting apps, risk management, etc) and priced accordingly.


OpenFin doesn't quite solve the same use case but it can if your only UI is via browser components and the back end is C#. We use OpenFin in that way and it's a decent product.


I'd be interested to hear more about your experience with OpenFin.


Thanks, this is very useful and a great alternative to embedding IE.


It is quite nice. I did this demo 6 years ago using chromium and wpf: http://blogs.msdn.com/b/sean_mcdirmid/archive/2009/07/27/a-w...

It wasn't possible to do with IE.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: