tags:

views:

137

answers:

7

Hi everyone!

Recently I was asked by someone if there is such a magic framework that will allow one let's say to design and build once a single library of controls and then use them separately to build web and desktop applications.

Does Google, Microsoft or other company have such a RAD framework and tools?

Thx

A: 

Were such thing to exist, it would produce lousy desktop apps and lousy Web apps. The underlying platforms and ideologies are too different. You'll do better by isolating as much of business logic away as possible, then building two separate clients.

EDIT: assuming that by a "Web app" you mean an HTML-based app, as opposed to something that happens to execute within a browser. For the latter option, you can have Flash, Silverlight, Java Applets, ActiveX controls... And for the vice versa, you can have a desktop app that opens a Web browser control and runs a Web app in it. :)

Seva Alekseyev
+1  A: 

Depends on how you define a Web App. If you consider RIAs to be Web Apps, then yes...

Microsoft has Silverlight and Adobe has Flex/AIR.

Justin Niessner
A: 

Well, you can always go and look for adobe flex, adobe flash or even microsoft silverlight, which in the next version will support desktop applications as well.

Other types of frameworks currently do not build so well under desktop/web environments.. Take .NET for example, which can be used in so many set of environments, but there are limitations if you want to use it for mobile, web, desktop or XNA, everyone has his own set of tools.

That is mostly resumed in the capability of the desired environment, since you can browse a web page in an iphone, which does not have the same capabilities of a desktop or even laptop PC.

Seva is telling you how this is normally dealt with. MVC is a good start.

jpabluz
A: 

The Eclipse foundation offers Rich Client Platform vs Rich Ajax Platform - one allows you to build desktop apps, the other web-based apps, all using SWT concepts. I wouldn't describe it as magical though - the reality is it is much more difficult and I would not recommend RAP.

Ninefingers
A: 

Adobe has AIR, and Google wants everybody write HTML5+JavaScript. both Chrome and FireFox can run those as standalone apps.

Javier
A: 

Microsoft has a Smart Client Factory that has a lot of built-in guidance packages that make development fairly quick and standardized.

http://msdn.microsoft.com/en-us/library/aa480482.aspx

Joel Etherton
A: 

It is entirely possible that I misunderstand this question, but if all you need, is the ability to seperate models an business logic into some kind of reusable library, just about any programming platform/language will do.

  • Java: keep models and business logic in seperate project, compiled to jar
  • .NET: keep models and business logic in seperate project, compiled to DLL
  • Python, Ruby, Perl: keep models and business logic in separate directory, and include as module

What are the requirements for the desktop application? On which platforms should it run? If Windows only, .NET seems like an obvious choice, otherwise Python and Qt or Java if you like to Swing.

Jørn Schou-Rode