What is a framework? The framework is a well-known term, especially in software development. According to lawfaqs, it stands for a basic framework that offers the programmer certain prefabricated modules and functions. He can integrate these into his program with simple commands. The advantage is that recurring actions, such as opening and closing files, do not have to be recreated by every developer. However, depending on the implementation of the framework, it may be necessary to install a corresponding runtime environment on the user’s PC.
Development and concrete application of frameworks
The idea of making software programming easier through frameworks is several decades old. One of the best known and oldest frameworks is the “.NET Framework ” from Microsoft (pronounced: Dotnet Framework). This was published in 2002 as part of the “Visual Studio” development environment.
Frameworks can be used in different areas. Frequent areas of application are for example:
- General application development
- Web development
- Content Management Systems (CMS)
- Development of graphic interfaces
- Larger in-house developments by companies
- Test environments
Development environments ensure standardization and modularization of software. They offer standardized interfaces for the integrated functions, the so-called Application Programming Interfaces (APIs). Access to such an API is precisely defined. This makes the code clearer and easier to maintain. For example, it is possible to install an update for a module without having to change the programs accessing it.
Since a large number of developers work together in large software projects, the modularization also simplifies the division into different work packages. Otherwise, all programmers would have to constantly agree who is producing which general functions in order not to have them multiple times in parallel for identical purposes in the code. In addition, every programmer would have to create comprehensive documentation for modules he had manufactured so that other developers could work with them.
How does a framework work?
A development or runtime environment represents another layer, so to speak, between the operating system and the software running on it. It combines more complex, low-level commands into simple instructions. One speaks here of an abstraction. Runtime environments play a major role, particularly in connection with object-oriented programming.
For example, a framework could be intended for the simple display of graphic elements. For the display of a window with the “OK” button and the “Cancel” button, the object “Example framework.MessageBox” would be provided there. The programmer could now use this object. To do this, he would initialize it and get an object of the “MessageBox” class back. This would have automatically implemented several functions. The programmer could transfer the text to be displayed and would get a value returned depending on the user input. Usually the number “1” would be for pressing the “OK” button and the number “0” for “Cancel”. The developer would then be able to continue working with this value.
A fictitious example code would look like this: In a few lines of code, an already quite complex action can be implemented in this way with the example framework.
Abfrage = Beispielframwork.MessageBox(“Wollen Sie fortfahren?”, “OK”, “Abbrechen”)
Auswahl = Abfrage.Show()
if Auswahl == 1:
Fiktive Anweisung
else:
break
Which known frameworks are there?
A large number of frameworks are now available on the market. Some of these pursue very different purposes.
.NET framework
Due to the widespread use of Microsoft’s Windows operating system, the aforementioned.Net framework is also used very frequently. It supports a wide variety of programming languages, including Visual Basic, C #, and C ++ / CLI. Developers can use it to develop apps in particular, for example for the console or with a graphical user interface. But.NET can also be used for your own services. Microsoft provides the required runtime environment in one version for developers and one version for users. The latter is required in order to be able to execute programs developed with.NET.
Django
In Django is a web framework, which was implemented in the Python programming language. Accordingly, versatile and dynamic websites can be created with it. A special focus is placed on security. Among other things, it offers functions for accessing SQL databases.
Bootstrap
Bootstrap is intended to design user interfaces for websites (front ends). It uses templates that are implemented using HTML and CSS. With Bootstrap, a web developer can easily implement elements such as sidebars (edge windows), navigation bars or login windows.
Angular.js
The Angular.js environment is based on JavaScript. Accordingly, programs created with it are also integrated into websites like JavaScript. This allows ready-made dynamic content to be integrated into otherwise static structures in a relatively simple manner, such as form entries.
Qt
A very versatile framework is the Qt used to build graphical interfaces. Its universality is a special feature. It can be used on different operating system platforms and supports various programming languages, for example C ++, Python and JavaScript. Extensive user interfaces can be implemented with Qt. Elements such as checkboxes, scroll bars, input fields and tabs, as known from browsers, are available for this purpose.
Advantages and disadvantages
The use of frameworks has established itself in both application development and web development. On critical examination, there are still a few arguments that must be compared with the undoubted advantages.
advantages | disadvantage |
flexibility | Third party dependency |
Better expandability | Determination of one provider is necessary |
Safety when using tested modules | Vulnerabilities affect a large number of programs |
Simplification for developers | Individuality is lost |
Development and Outlook
Large companies or long-standing organizations are behind the frameworks listed and many others. It can therefore be assumed that further development is guaranteed for years in most cases. In this respect, it is to be expected for such frameworks that regular updates and functional enhancements will be made available.