How to choose a Web Application Framework, part 1
With so many languages and frameworks to choose from, selecting a technology is a difficult decision that is fraught with consequences, since any change of course in mid-development can be costly. On the other hand, being trapped in the wrong architecture can incur even higher costs in the long run, with implementation delays in the development and maintenance phases. To help you make the right choice, here are five basic criteria to consider when planning a Web Application project, in no particular order. These criteria mainly concern the back-end, but can also apply to the front-end. Five more criteria will be presented in part II of this blog.
First of all, list everything the application will have to do. This will help you to narrow down the list, since many frameworks are highly specialized, or on the contrary too generic. This will also keep you from wasting time looking at a lot of frameworks that provide no added value to your application.
Perhaps one of the most important and least technical criteria is the popularity of the framework. The more popular the framework, the more active the community. This means more answers to common problems on sites like StackOverflow.com, more tutorials, more plug-ins, more open-source contributions, and a longer framework lifespan. Not to mention that developers usually prefer working with popular frameworks, using them for their personal pet projects, which can reduce training and adaptation time at the beginning of your project.
Unfortunately, all frameworks are not born equal, and they don’t all come with superior documentation. Therefore, before selecting any framework, check out the attendant documentation and make sure that it is reasonably complete. The existence of many examples and tutorials is usually indicative of good documentation. Also, make sure that the documentation is not only up-to-date on the latest version of the framework but also available for previous versions, to avoid an information gap in the future.
One thing to take into account when choosing a framework is direct and indirect costs. Not all frameworks are free. Of those that are, some are only available on paying platforms, like ASP.NET (except for the new Core version), which require a Windows server. If your application is large, costs can add up; if you require multiple licences, costs can multiply. Further, many add-on modules are payable, amounting to serious coin. Finally, some open-source frameworks are developed by companies that sell support services, which can help mitigate risk.
A final criteria to take into account, if you think it may apply to you, is the ease of extending framework functions, especially through plug-ins. If you’re considering a framework but realize it’s missing features that you may need in the future, check to see if the plug-ins allow you to easily add these features without a major development effort. Make sure that there are plenty of on-line module libraries and that they’re up-to-date. Imagine having to fix a particularly stubborn bug based on a niche plug-in used by just a handful of Web sites, with no documentation!