“6 lessons from 5 years of framework development” – under this motto, the experts from mgm share their experiences in the “Enterprise Framework on React” track in the experten.werkstatt of solutions.hamburg. But what kind of framework is it? We talked to project leader Ansgar Weiss about the background.
mgm live: Ansgar, what is the purpose of the framework on the basis of React, which mgm is currently developing?
Ansgar Weiss: The framework is called A12 and has the goal of facilitating and accelerating the development of web-based business applications. We provide robust, scalable and secure components for developers. In addition, A12 offers a range of modeling tools for business analysts and domain experts. The core idea of the framework is the separation of subject-specific matters from technology. Analysts and experts are able to define certain aspects of the application independently via models.
mgm live: What was the original trigger for the development?
Ansgar Weiss: The core idea of the framework is based on our experience in the development of e-government applications. Concrete triggers were the requirements for tax clarification processes. There are lots of complex and extensive forms. A great deal of subject-specific knowledge must be expressed and maintained. At the same time, there are different technical contexts – for example different operating systems, runtime contexts and surface technologies. To master the technical complexity and the large amount of subject-specific information, the idea of modeling has arisen.
mgm live: What are the advantages of the model-driven approach?
Ansgar Weiss: The main point of the modeling approach is that subject-specific information is captured in models and thus is detached from the technical integration into the application. For example, let’s take forms: The department is able to create and modify forms with tools without the need for any developer to implement anything. Experts and analysts do not have to write specifications or build mockups. They are able to express directly in the models what is running in the application. Through an engine the forms are brought to life during runtime. In turn, this approach also reduces the dependency on certain technologies. When it comes to migrating to new technologies, the expertise found in the models does not have to be tackled. At the moment, our engines are based on React and this fits extremely well. But who knows how the technology looks like in five years. Technologies come and go, but the models continue to live.
mgm live: Are there other areas besides forms in which the framework allows such a modeling?
Ansgar Weiss: Yes, about two years ago, we extended the scope to web-based business applications. For example, an “Overview Engine” has been created. It allows you to view, filter, sort, and search a list of forms. A master / detail view is possible by Form Engine and Overview Engine alone. Now, many basic aspects of the application frame are covered both client- and server-side. There are reusable components for aspects that have repeatedly been needed in projects. We also implemented a server that manages, stores, and validates models and resulting documents.
mgm live: What are the plans for the future of the framework?
Ansgar Weiss: We are currently at an incredibly exciting threshold by bringing the modeling ideas to the application level. We are moving in the direction of complex business models, which, for example, also express relations, can support data versioning from the ground up and work seamless on the desktop, tablet and smartphone. In principle, we do not believe that with standard components, we can ever cover the requirements of projects to 100 percent. There will always be very specific aspects or the desire for other solutions. We can safely say that from many years of individual software development. It is, however, already clear how strongly the model-based concept of the framework increases the efficiency of the projects. For the team and for me, it is incredibly motivating to see this almost industrialized form of software development successfully in action at our customers.