Library vs. framework
It’s important to keep the two terms separate. Often 'library' and 'framework' are used as synonyms even though this is wrong, strictly speaking. Even though the transition is seamless in many ways, there are basic differences between the two of them.
A framework is also not an autonomous program, but rather a special form of class library. A framework provides the software architecture (i.e. the basic structure) of an application and essentially determines the development process. Frameworks have certain design patterns with different functions (often in the form of many libraries) and are used to develop new, independent applications. An example is the Zend framework for PHP, which is used in Magento’s online store software and web analytics tool Piwik.
Inversion of Control (IoC)
Another difference between a framework and a library is how they are managed. With libraries, the code is accessed by programmers through a software program’s programming interface. Frameworks, however, carry out an inversion of control: the code is embedded in fixed structures and called up when needed. To summarize, you can say that libraries are called up by programs, whereas frameworks make specifications to the program.
- Easy selection of website elements (similar to CSS3 selectors)
- Possible to change selected website elements (such as position, color, etc.)
- Event system: website elements react to user navigation (mouse clicks, keyboard input, etc.)
- Easy implementation of animations and effects
- Seamless interaction between user input and server data with Ajax requests (like with the autocomplete function)
jQuery UI is a free extension for jQuery. Its purpose is to define and implement a user interface (UI) from sources like websites or web apps. The focus here is on simple design and interactions. The functions jQuery has to offer include offering the possibility to implement interactive elements (e.g. drag and drop, zooming in and out), animations, effects, and widgets (like autocomplete, sliders, date picker, etc). The graphic editor, ThemeRoller, can be used to create original themes, or existing themes can be used to adapt for your own purposes. True to its simple design configuration, the modular structure of ThemeRoller allows only the necessary components need to be implemented.
The Dojo Toolkit is good for the implementation of web applications and dynamic web content. It comes with a variety of functions – the basic elements of the toolkit are:
- Dijit: a type of module for graphical user interface, widgets, layouts, effects, and animations (similar to jQuery UI).
Ember.js is also a client-side framework that is used for implementing single page web applications. Contrary to AngularJS, it is based on the MVC principle (Model View Controller). A further distinguishing feature is that the creators of Ember.js intensively involve the community in the framework’s development process; for instance, discussing significant framework changes with them before they are implemented. Ember.js is not for the faint of heart; creating web applications with this framework tends to be on the more ambitious side of things. As a result, it is primarily aimed at developers who already have experience with designing web applications.
Useful tools for many areas