I am looking for a Web Framework to move windows based applications to the web.
The main requirements to WF are the following:
- unit tests support
- desktop and mobile browsers support
- long term viability
- maturity of the framework
I am looking for a Web Framework to move windows based applications to the web.
The main requirements to WF are the following:
In my opinion, with contributions from the SO community
How about the ASP.NET MVC framework? It's what this site is running on.
Another more mature option is Castle MonoRail.
I think ASP.NET MVC is probably the best choice in the long run. A year from now, it will be far easier to hire someone who knows ASP.NET MVC than someone who knows MonoRail.
I recommend the Java based Wicket Framework.
It's a component based MVC library which is really easy to use and allows to do all the view stuff in the java code (in contrast to using JSPs or templates or whatever in other frameworks).
I heavily prefer CakePHP for PHP, Django for Python, Rails for Ruby.
In terms of front-end, if you're looking for a desktop-esque end user experience you should look into ExtJS or YUI.
If you are curious about Seaside (mentioned by yinkei), visit Randal Schwartz's Methods and Messages. You can start by watching his quick elevator pitch.
Seaside creator Avi Bryant's interview is also a good read/watch.
Working with Seaside was amazing for me, almost like coding a desktop app.
Visit Dabble DB and Cmsbox for real life apps built on Seaside.
I've had surprising success using Drupal as a web app framework. It's highly extensible - pretty much every default behaviour can be overridden easily via modules, and it's a pretty blank slate to start with as well.
Drupal 7 has unit testing built-in, and earlier versions can do it easily via a plugin.
Why haven't anyone talked about turbogears, web.py and pylons?
I have been using Wicket for about a year and it is fantastic. It's java based, supports unit tests, and uses a very flexible templating system for display.
if you're a java progammer, check out the Struts framework by the Apache folks.
Rails is still ahead of the competitors as a complete stack with large community driving it forward.
The Spring projects WebMVC framework is very good, more so than Struts. I've also heard very good things about Grails which uses Groovy on top of Spring and is modeled after Ruby on Rails.
No-one seems to have mentioned Perl, and the Catalyst framework available for it. It ticks all the boxes in your requirement list.
http://catalystframework.org
I have been using Struts from Jakarta (Apache group) for java, and it's really good. Good separation of the layers, which allows you use any othe library/framework in any layer, for example Hibernate for object-relational mapping or even any template framework like Velocity in the view layer.
I recommend you give a look at their website
Another alternative would be SproutCore, which is entirely client-side. The project is still in its infancy, however.
ASP.NET MVC will probably be the de facto standard on the .NET platform. Also, MonoRail has been around for quite a while and still doesn't support caching. It seems like a very difficult thing to do, and is a major drawback if you ask me.
For Python, I recommend Pylons (docs) (book)
Honestly if you want an MVC framework for asp.net I would pick Castle Monorail. I think it is more mature then the current MVC framework from microsoft.
For Java, I recommend the open source framework: (µ)Micro. The code is on Github and this is the web site containing the docs: http://micro-docs.simplegames.ca/, a work in progress.
I am the author of this framework and I welcome your feedback, thanks!
If we're talking "Best" I'm throwing in Sinatra for Ruby and Nancy for .Net. Based 100% on my subjective opinion and personal preferences. They are my best based on their ease of use and "happiness factor".