views:

322

answers:

9

Microsoft WPF? Adobe AIR/Flex? Adobe Flash? Curl programming language?

How does AJAX fit in?

Given a server written in C++ .NET.

A: 

Using WPF you can build desktop and then almost 1:1 port it to silverlight and target the web

Davide Vosti
A: 

What about Silverlight?

Also XAML based solutions with MVP pattern applied could be very good, when UI layer could be rendered based on front-end type and has no strong relationships with business model.

Cheers!

dimarzionist
A: 

I'd be looking at the Google Web Toolkit which turns Java code into Javascript. It doesn't rely on proprietary stuff and hence your code runs anywhere.

paxdiablo
A: 

I remember seeing a free C++ library that gave you a Web-base UI. Didn't try it, and can't remember it's name but that could the trick if you want C++.

Or perhaps I'd go with Adobe's Air or Google's Gear stuff. if you want something you can do over a weekend.

Robert Gould
A: 

Consider developing the app in Silverlight and having either of the bellow 2 methods to make the same Silverlight App running in Desktop too. I admit that both of these are just silly tricks but it helps if your app doesnt have much layer dependancies.

1) http://jobijoy.blogspot.com/2008/09/desklighter-handy-tool-for-silverlight.html 2) http://geekswithblogs.net/lbugnion/archive/2008/04/24/silverlight-running-standalone-full-trust-applications.aspx

There is another technology which is going to come from Microsoft called Live Mesh also going to support both Offline and Online silverlight application.

Jobi Joy
A: 

We've created an application which does 3D visualization in a browser or as a standalone application.

The application is written in JavaScript (for app logic) and C++ (for 3D rendering) and uses the Qt library from http://www.trolltech.com.

When running in a browser, the application is wrapped in a thin layer as an ActiveX control (for IE) and as a Netscape browser plugin (for Firefox, Mozilla, Netscape, Opera). Qt does the plugin wrapping more or less automatically.

Does this also deliver an OS/X solution? I noticed you didn't list Safari.
Andy Dent
A: 

Your two main choice are Silverlight / WPF & Flex / Air.

If you're familiar with the .NET framework use the first, if you're more familiar with Flash / ECMA script, use the later.

Use the best tool for the job. If both tools are the same, use the one that you are more highly trained in, or could pick up the easiest.

Mark Ingram
+1  A: 

The answer does depend really on what your application actually does and your platform requirements.

If its a regular web application like gmail and you want it to work on lots of browsers and platforms; then I'd recommend a combination of HTML, CSS and GWT as this means your application code is all Java, its very easy to refactor modularise and maintain, there's a ton of Java programmers out there and the IDEs for Java are awesome (IntelliJ or eclipse etc).

You can then use browser plugins like Siverlight or Flex if and when they make sense (e.g. like Google finance uses Flash for interactive graphs).

If your application is highly graphical like a Visio type of thing or needs to embed Microsoft Office or something; you might wanna look at Silverlight/Flex/AIR particularly if you can kinda dictate the browser versions and platforms for an internal application.

Though with client side there's no clear single answer (just look at the comments on this thread :) there are many options (Java Applets/Swing/JavaFX, Ajax, GWT, Air/Flex, Silverlight/.Net etc) which all have strengths and weaknesses. My recommendation for the communication between the client and your C++ server would be to expose your C++ application as a set of RESTful resources - then at any point in time you can easily write other kinds of clients in any language technology or framework.

James Strachan
A: 

Create a DHTML/Ajax app and use Google Gears to persist data so it can still function when off-line.

David