开发者

What are the big web frameworks today?

My team at work is going to start working on a website with a medium amount of business logic and a large amount of database. soon. We've got to pick a language and a framework to build it on, but we're not really sure where to start. There are literally a zilli开发者_如何转开发on options. All we need is something that hooks into database, something that allows for rapid development and prototyping, and something that scales well.

Who are the top 5 or so players in the field today?


Five very popular ones, in no special order, "one per language": Rails (Ruby), Django (Python), CakePHP (PHP), ASP.NET (all .Net languages), Struts 2 (Java). I'm sure there are many other frameworks for each of these languages (as well, of course, as many more languages;-), but these all have high current popularity, if that's your number one consideration.


Rails (Ruby), Cake (PHP), Django (Python) and Grails (Groovy) are pretty similar to each other and have the features you mentioned. They are pretty heavy though.

I prefer more lightweight frameworks that do less for you, because many of these frameworks like do things their way and if you want to do it your way, you'll have to wrestle with the framework. Then, if you are doing more work than you would normally, why bother using a framework at all? But to each his own.

See a list here: http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks


What about ZendFramework ? I think this is the biggest PHP Framework and has all options mentioned in the question :)


Zend Framework + Doctrine ORM

this is what i am using now. it maybe a bit hard to learn at the start. but i think its worth it. Zend Framework 2 is coming up (1st Dev Milestone of ZF2 is out). and it supports PHP 5.3 "true" namespaces. i use Zend Framework 1.10 + Doctrine 2 currently. i really like the way its components can be customized easily to fit your needs.

it has many classes that i use (that may not be available in other frameworks). eg. classes for navigation, pagination, view helpers, (PHPUnit) unit testing via Zend_Test etc. logging to even FireBug/FirePHP using Zend_Log.

Rapid Development & Prototyping if you mean scaffolding, there's Zend_Tool, a CLI application that allows you to create components like controllers, actions, models, etc. via CLI commands

i am not sure about scalability. but i heard .NET is used commonly in the enterprise so it must be more scalable. but i am not sure.

if your choose this option, some great learning resources are:

  • Zend Casts - video tutorials
  • Survive the Deep End - free online ebook

ASP.NET MVC 2

i haven't used ASP.NET MVC to create any real applications yet. but i am watching its development. MVC 3 is comming up ... link & link & link ... it looks good with the addition of the razor view engine (its something like a light weight templating engine). C# can be used and i find it to be a very powerful language, with Entity Framework (ORM), lambdas, LINQ etc.

i think ASP.NET Web Forms is great for prototying but not good with its messy code (in my opinion) and i don't think its good for scalability

resources for these options:

  • Channel 9 (for the C# language)
  • Channel 9 (tagged ASP.NET)
  • Learn ASP.NET MVC


Flex (ActionScript) + BlazeDS (Java). These are not Frameworks, but this combination is just another option for developing a web application. You can choose a framework on the client side (ActionScript) and for the server (Java). Flex with Flash Builder is good for rapid development and prototyping and Java for scalability.

Typical ActionScript Frameworks are Cairngorm or PureMVC. On the Java side there are a plethora of well-known frameworks. A common combination is Flex/BlazeDS/Hibernate:

  • The Flex, Spring, and BlazeDS full stack
  • Adobe Flex, BlazeDS, and Hibernate JPA on Tomcat and MySQL


Unless you intend to create some cutting edge, never-seen-before kind of app, I believe you should stick to the language you know (supposing it is either good enough or has an ecosystem large enough to compensate its flaws (which is the case for many popular languages)). In your case, it seems to be Java (I infered that from your stackoverlow activities ;)).

When it comes to Java web frameworks, you will find, there are many similar/related questions on stackoverflow: https://stackoverflow.com/search?q=java+web+framework

On a slightly unrelated note, I am a big fan and user of Haxe (for reasons that'd be quite out of the scope of this question). If you're interested, then haXigniter might be a good framework to go with.

PHP has been mentioned a number of times. CakePHP is very hip, ZendFramework is widely used (although more of a all-purpose component library), yet I personally believe symfony, flow3 and codeigniter to be more favourable.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜