How does one use the Chromium Embedded Framework from GtkSharp? - linux

I'm a Microsoft stack developer most familiar with Windows Forms and WPF, but have a need to develop a Linux desktop application that can display some web apps in a modern browser that offers very recent HTML 5, CSS 3, SVG, etc.
I'm thinking GtkSharp running on top of Mono is probably the replacement for WinForms/WPF running on top of .NET which will best leverage what I already know. As for the embedded browser control, I have other requirements strongly advocating CEF over any other solution (although I'm still open to strong suggestions to do otherwise).
Anyone have experience with any of this?

Try looking at CefGlue, it has a CefGlue.Demo.GtkSharp project which would indicate it's possible.
https://bitbucket.org/xilium/xilium.cefglue/
https://bitbucket.org/xilium/xilium.cefglue/issues/108/linux-support
Personally I've never used CefGlue so I cannot say more than I've seen in passing.

Related

How do I get a list of ssid from browser?

I need to build a web based application that can list available ssid in the area.
From my understanding, these probably can do what i want
Java applet
Adobe Flash
However, Im not sure whether these can do or not
HTML5/JavaScript
Java Web Start
I'm a .NET developer and I'm not familiar with these web technologies.
Are there any other method to get a list of SSID that i have not mentioned?
Thanks.
You'll never be able to list available SSID's with HTML5, Javascript, or any other strictly web-based technology. That's a very low-level task and won't be natively possible in any browser for security reasons. That being said, you may be able to draw on some technology like Java Applets, ActiveX, or even Silverlight 5 if I remember correctly. I don't know your project requirements, but you're better off creating a native application for this type of feature. If this application is being used by/sold to the general public, you're setting yourself up for a lot of headache by going with Applets/ActiveX/etc.

Are there specific functions that are simply unusable when taking an XPage to mobile devices?

I have an application that will need to better support tablets in the future. I have seen some apps already created with UP1 and ExtLib Mobile Controls but I was wondering if anyone knows of specific functionality that simply is too challenging to even consider bringing to a mobile device?
For example, are there partial refresh issues on specific devices? Can managed beans still be used behind the scenes? Is dynamic content totally viable on mobile?
I'd be interested in hearing what big challenges/functions people had to give up when they mobilized their existing XPage apps.
There isn't really anything in XPages that would prevent building mobile web apps as with other web app dev models. In other words: Everything you can do with web apps on mobile you should be able to do with XPages.
XPages 8.5.3 UP1 comes with Dojo Mobile 1.6.1. However that does not prevent developers from using other frameworks like JQuery or anything else.
There are some advantages in general for native apps and hybrid apps. But personally I think most of the typically rather simple business apps can be built with mobile web apps. If you need local data/offline that might be different though.
You can use Xpages to do anything that is possible with mobile web developement. Dynamic content may not be the way to go for everything, but it will run just fine. In ITANA available for free on openntf.org, i created a simple replication engine to replicate notes tasks from the local device using sqlite to the domino server. This makes it run very fast and allows the app to run offline as well.
So i believe anything you want to try will work, you can make the Xpage output anything you want, from html, to xml, or json, to accomplish your tasks.
I know that XPages was totally incompatible with older Blackberry's. I assume that's not the case these days but back at OS 5.0 I think even buttons wouldn't work. So if you're doing anything with BB make sure it's modern and tested.
We're not really getting tablet support in ext. library until the next dojo rev I think. But there is a preview of tablet support somewhere that you can get. I've not looked yet but it was mentioned at Lotusphere. so if you want to hit tablets you might want to roll your own right now until that comes available.
Tablets are a little more challenging as the mobile controls are designed for the mobile phone size devices. That said with a little trial and error you can get a nice navigator split screen and still use the one page app mobile controls to streamline it, with records opening in their own page just like the phone version. Type ahead as I'm discovering should be handled differently if you are using the iPhone themes from oneui2.1
The oneui2.1 gives your navs and views nice styling. The forms may need a bit of custom styling.
Split your design into custom controls then you can use a server ate xpage for mobile devices and straight web. Or if you forgo the use of mobile single page controls you can always just have a seperate style sheet to accommodate the iPad. Really depends on the functionality needed. Good luck
My suggestion for anyone wanting to do tablet specific development using XPages is to move to Notes 9.0 and dojo 1.8 asap. Dojo 1.8 has an experimental control called ScreenSizeAware. This is miles ahead of anything else either the Extension Library Mobile controls or Dojo provides for Tablet development.

How to build an shipable, "local", branded mini-browser

Since I don't really have a good idea for word to search with myself I’d like to ask you:
Is there some project, technology, w/e that enables you to build a 'browser' with a very slim ui. Just some CI and a customised "starting page".
I'm thinking of something like the Webkit engine (and interface) Valve/Steam uses for it's clients store page.
In what direction should I search for something like that ? How would one start implement something like that ?
Answers to questions:
We need this to provide something like a "Kiosk" application (for touchscreens) and shippable to our Customers. Running a browser in "full screen" is a temporary solution.
As of Platforms: Windows is absolutely sufficient for now, but Mac/Linux wouldn't hurt.
Prism looks nice so far but lacks the "shippable" part, e.g. I see no way of packaging it.
Take a look at Mozilla Prism. It's a "UI-Less" version of the Mozilla/Gecko rendering engine aimed at deploying web apps on the Desktop. It's also multi-platform. It might be fairly close to what you need, with comparably little work.
WebKit has bindings for many languages, is cross-platform, and is full-featured as a HTML engine. A bit of work capturing signals and calling functions will make it into any kind of web browser you like.
You could use Adobe Air, follow this tutorial and include your website within an iframe. That would allow you to build an executable you can ship to your customer.
Various graphics toolkit libraries contain some components which can display a limited amount of HTML. I've seen this in qt (a C++ GUI library) and in Java Swing, and have indeed built a tiny "browser" in Java within a couple of hours. Java Swing lets you attach a link listener so links can be made clickable and thereby jump to different URLs. Thus, my application could be made to work as a very limited browser.
This approach lets you display text, images and links; in the case of Java, there's even fairly good support for CSS styling. However, there's no simple way to make buttons and form fields work, and of course no support for manipulating the DOM or anything else done in JavaScript.

Running C# app inside browser as a plugin

I have a small 2D game engine written in C#, using DirectX. Is it possible to somehow run it in a browser as a plugin? Like for example Flash and others, where you go to a site with a game and it will ask you to install a certain plugin and then you can play the game in the browser, with mouse and keyboard input.
I have searched around for hours and I still don't know what I'm looking for. I have so far primarily focused on Internet Explorer, but there are plugins, addons, extensions, etc I don't know what I need really.
Yes I think it is possible.
For example, I have an HTML page which includes an element like this:
<object id="simpleControl1"
classid="http:RenderTextProject5.dll#RenderTextProject.ScrollableControl"
height="300"
width="300">
</object>
The 'classid' attribute value has the following meaning/syntax:
RenderTextProject5.dll is the filename of a compiled .NET assembly
RenderTextProject.ScrollableControl is the qualified name (namespace plus classname) of a class which subclasses System.Windows.Forms.Control
I can then see the control being rendered in the browser.
I'm using IE (IE8, but it used to work with IE6 too), and I have the .NET framework installed on my machine (but I think I needn't have the RenderTextProject5 assembly installed on the client machine).
There may be some other caveats too (e.g. I needed to run in the Intranet security zone).
See Return of the Rich Client: Code Access Security and Distribution Features in .NET Enhance Client-Side Apps.
Look for Silverlight.. It is maybe not exactly what you need but it is a browser plugin capable of running C# code ;)
There is a relatively new plugin called Unity. It is a bit more complex, as it is a dev/3D authoring environment on its own, but uses C# as its language as far as I know. However I don't know if pure 2D programming is possible (well, may be worked around using ortho 3d?).
The basic version is free to download recently, maybe worth a check.
It is possible to run C# applications in a web browser without using plugins. For example, C# applications can be compiled into JavaScript applications using JSIL.

Using ActiveX objects in Javascript in Linux (in Firefox)

It's not quite a "programming" question, but I hope its related closely enough.
Do you know if it is possible to configure the browser in Linux (e.g. Firefox) to use Wine to create ActiveX objects? I would like to handle web pages that use:
var xmlDocument = new ActiveXObject( Msxml2.DOMDocument.4.0 )
etc. in Javascript.
I think you can only do that in Internet Explorer on Wine
ActiveXObject is part of the Windows Script host, and not available in Linux unless you can use Wine to install it.
As a side issue, the actual ActiveXObject is an instance of a windows application, and not generally available in Linux (especially not the MS Office suite).
Links:
Windows Scripting Host
Wine
Edit: Had Wine confused with Mono. Fixed now.
If you just want an xml document you can do that via standard javascript. Their is no need for ActiveX. Simply ask the document to parse the xml for you. Have a look on Mozilla Developers Centre. They have very good JS docs.
On another note, if you want cross browser web pages steer clear of ActiveX. Especailly with all its security holes.
you can see flash in firefox of linux. try used flash.

Resources