views:

243

answers:

6

I need to write a new application, and have no experience with any new technology, framework, or language. Here are the requirements:

  • HTML front end (best if it's cross-browser friendly)
  • Web deployable, but also ideally want to be able to install as standalone on a desktop
  • SQL Server database
  • Ideally, would like to use a good (and easy) AJAX toolkit with widgets
  • Ideally, would like to be able to write in ASP.Net but later (or concurrently) also write in Java. This is a big concern, as I would like to not have to rewrite the whole thing. Is there a toolkit I can use that makes this cross-platform requirement easier?

All suggestions and comments are much appreciated. Thank you.

+1  A: 

ASP.Net. If you want a stand-alone application, expose all your business logic through Web Services (or similar) and have a separate front end app.

moobaa
A: 

Those requirements are a tall order. I think we'd all love a single system that would allow us to develop a cross-browser, multi-platform application with all those features. It would help if you included the general functionality of your application. The direction you take with the platform you choose is highly dependent on the requirements, which includes not just features but also performance, continuing development, support costs, and other factors.

I agree with moobaa that cross-platform development is best done with an SOA architecture. Concentrate all your business logic in XML web services and develop the front-ends for the platforms you want to target. This may have performance implications, but it will limit the amount of concurrent development you'll have to do. There are some C# to Java converters out there, but I can't vouch for their effectiveness.

Dave Swersky
A: 

ruby on rails hits most of your requirements, however it won't directly give you the desktop deployment (unless you're OK with a browser based client there as well).

I should add that you'll need to learn ruby, but that is not as much pain as it sounds. spend a little time looking at the site and examples and you'll see.

(An upcoming alternative to that is groovy and grails, which is backwards compatible with java and may be less of a learning curve for you)

frankodwyer
A: 

You could always go with ASP.NET and create Mono-based cross-platform front-end applications later on and use Webservices for allowing applications to use the logics in your back end.

So:

[ Web ]

ASP.NET MVC ( Windows with .net 3.5 sp1 )

ASP.NET AJAX for ASP.NET MVC ( Windows with .net 3.5 sp1 )

XHTML and CSS 2 for cross browser compability

[ Desktop ]

C# ( Cross-Platform with Mono )

Java

Filip Ekberg
+2  A: 

I'd recommend looking at Adobe Flex/AIR. Flex is deployed as a Flash application and will look the same across all browsers, and AIR takes that and adds desktop integration and deployment features as well as offline support and a local SQLite database. You can also write the AIR application in HTML + Javascript (to run as a web application) but still have access to all the desktop features as if it's deployed as an AIR app. The backend can be .NET WebServices as well.

Here's an example of an AJAX application running as an AIR client app.

Abdullah Jibaly
A: 

Ruby on Rails. It not only easy, it also has AJAX with accessible fallback.

SHiNKiROU