Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I want to make a cross platform application, which will also have a website where the desktop applications (Windows, iOS, Linux) will talk to the server and keep the users data in sync.

So far the options I see are:

  • Write a native GUI for each of the 3 OS, so I would have 3 GUI codebases (and a single backend system)
  • Use something like GTK so I can use one system with support in all the mention platforms.

But the third which I have not been able to find much info on (maybe I'm not searching for the right terms as I'm still new to C# and .Net), is to have a window with an embedded WebKit instance built in, which would allow me to use the same GUI system that I would use for the website. Which would make the client app and the website look as close as possible to each other so the users are familiar with the interface.

Is this last option with WebKit plausible? I already know JavaScript/HTML well and if I can use that knowledge to make the interface, that would be great. Also would be a great way to allow users to customize the interface with plugins and they could keep in sync any UI preferences from local to web.

share|improve this question
    
I'm looking into Sencha ExtJS for this kind of work but I'm not convinced that this is the best method to use yet. –  jfrankcarr Apr 19 '12 at 17:07
add comment

2 Answers

up vote 9 down vote accepted

Can't see why not, but you could just run Chrome in "windowless" mode instead, or IE in "hta" mode (we wrote a desktop app using web tech, deploying it as a hta on Windows 10 years ago).

Today I'd do something without IE/IIS and use websockets for a more interactive experience.

There are components that allow webkit embedded in C# apps: see this post from SO (consensus is to use Webkit.NET)

I'd also use QtWebkit component instead, then you will write a single, lightweight, Qt-based, cross-platform 'desktop' app that embeds your web GUI.

share|improve this answer
    
Hrmm, this seems like a solid answer. I'll wait a little bit to see if anyone chimes in as well before marking as the answer. But Webkit.Net looks like it might do the job. One of the links in theSO question you linked goes to a github repo CefSharp where he has a chromium instance embedded. Though I'm not sure if I will need the whole browser compared to just webkit. Ill have to look further. –  luckysmack Apr 19 '12 at 21:16
    
As for 'Today I'd do something without IE/IIS and use websockets for a more interactive experience.' I am wanting to use mono so I can use .net and have cross platform support, as well as be able to host the site on something like nginx or cherokee if they have the mono support, otherwise apache. I don't know IIS and windows admin enough, but I know and have a linux web server. So far I won't have live user to user interaction so I probably wont need websockets. And DB synchronizing will be using couchdb. Though may look at websockets or socket.io later on when im doing more advanced stuff –  luckysmack Apr 19 '12 at 21:19
    
For web dev, stick to the Linux stack, Windows is a poor 2nd in the web development marketplace. I'd also ignore mono, since it was dropped when Novell went under I'd say it's a dead tech, better to stick with one of the other cross-platform technologies instead that give you a better dev experience on Linux. Relying on mono support and future updates is a little bit risky for my taste. –  gbjbaanb Apr 23 '12 at 15:14
    
Yea its not usually my forte either. I prefer going towards javascript and node.js. But I am having to learn c#/.net for work so I figured I may as well build a small project with it to help learn it. I think that .Net has some pretty cool features if I'm doing mostly windows development and web. So I'm trying to make use of what I know I will be using at work, which is a mix of web and desktop apps. –  luckysmack Apr 23 '12 at 19:50
add comment

I've been working on an application framework for projects such as yours. It's based on the chromium content framework. It allows the GUI of an application to be implemented with html/css/js/svg, etc and the application logic to be implemented in javascript or c#.

My goal is to be able to develop rich, full featured 'thick' desktop applications using web technologies, that are cross platform and do not require anything server side.

share|improve this answer
    
Although while I do want to do things server side (as users will by able to sync data to a central server and use the app online), I would be interested in knowing how you are using chromium. For me, the desktop versions would be basically a copy of whats on the server so it runs faster and does not have to wait for updates and they can use it offline. –  luckysmack Apr 23 '12 at 14:24
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.