Web Dynpro: Declarative Programming and Model-Driven Architecture
(Fourth article of the series: Web Dynpro) The Web Dynpro framework helps to create applications using declarative programming techniques based on MVC architecture.
MVC Architecture helps in separating the user interface (visual component) from the business logic. Declarative programming techniques simplify the UI development. The developer just needs to specify the GUI elements (input field, drop-boxes, radio-buttons, etc.) on the user screen independent of the client (PC, Laptop, Mobile, etc.) and where those elements send to or get their data from.
Basically declarative programming paradigm enables the developer to be free from programming control flow within the application and to describe what the application should accomplish rather than how to accomplish.
Of course, the developer needs to write code for tasks which can't be performed with declarative programming, for example, to execute business logic (call to BAPI) which may involve fetching and processing data from the database which can only be done at the back-end SAP system.
The declarative programming techniques based on MVC architecture are coupled with model-driven development of the business applications. (Don't confuse this Model with Model of MVC paradigm).
How is model-driven architecture implemented in Web Dynpro framework?
Web dynpro framework uses declarative programming techniques to create a meta-model of the application which is free from back-end and front-end programming languages. Rather the metadata is programming language-neutral and has information stored in XML format. It's only during run-time that the rendering engine generates the code in html and java script from this meta model of the application. So the design part - which defines the UI and data flow between UI elements - is completely abstracted minimizing the coding (which is required only for implementing business logic).
The model-driven approach helps developer to focus less on coding and technology part and more on the design part of the application – "minimizing coding and maximizing design". Naturally, the primary focus of business application developer should be the business logic and the technological implementation should not distract him/ her.