Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this questionWhen starting out on any project it could be seen as essential to pick an appropriate framework. I was wondering if you would point out any key questions that should be asked in order to aid the choice. I have looked at numerous sites and there doesn't seem to be any definative questions to ask before a choice is made.
I was wond开发者_运维知识库ering if, in any of your experience,s you have come across any key questions.
I gather one of the first is what are you developing? web app or desktop based
Any key questions would be a great help. This is a pretty general question as I am just looking for generic questions that would be asked before a choice is made.
Pick one you (or your team) already know.
Learning a new framework is a time consuming and expensive process that you don't want to be associated with a project. I would say the number one factor when selecting a framework/language is the existing knowledge base in your team.
[Obviously, this isn't very helpful if you don't currently know any, or the ones you do know aren't useful in the project's domain]
The best technology is the one you know. So ask a question - what technologies my team has experience in.
The main question you must ask is about stability. If you are developing an enterprise application wich sould be maintained for several years and should me stable, you should use mature and well tested frameworks. Something Java EE or .NET based for web applications. If your project is experimental, you can use experimental frameworks, technologies, languages etc.
Pick the one with good documentation. The quality of documentation gives you a clue how good the framework is.
A large user community is a plus, especially for opensource frameworks.
Ask yourself right from the start:
What are the things my application will do, what are the ones it won't ever do?
Choose a framework that makes it easy to accomplish the things you want from your application, care less for things that are extra. Don't worry, when you'll really need extra, you'll worry about looking then.
Who will use my application? What are the numbers and needs of people that will be the application's users?
You need a framework that scales well to the number of users you intend your app to handle and to their specific needs(collaboration, social interaction, ease of use, necessary tools, etc).
Is there a strong support for the framework(from the developer or the community)?
Make sure you'll have who to turn to if you'll have questions or problems.
I usually try to find the framework that is the most popular. Have a look at a comparison of Javascript frameworks in Google Trends. It's pretty obvious that jQuery is the most popular by a large margin, so I'd lean towards using that.
It's not the only criteria, but more users means better documentation, testing, features, etc. Also, if you're new to an area of programming, then it usually pays to follow the wisdom of the crowd.
I would start by thinking about the pros and cons of frameworks in general. Based on those things that matter most in your situation, see which frameworks fit.
It's also helpful to think about the general features found in most frameworks of a platform (web application frameworks, for example). Decide which of those features are important to you, then investigate the frameworks that provide those features.
精彩评论