Web Dynpro: MVC Architecture
(Second article of the series: Web Dynpro) When SAP decided to follow MVC Architecture for , it was a great hit with Java based applications. It became proven path for business applications. There are great advantages offered by the paradigm.
MVC or Model-View-Controller architecture helps in organizing complex projects through easy development and maintenance while protecting important data. What is it and how it does that?
If you are a beginner comparatively, you can understand it by imagining through the following discussion. If you have built or supported business applications not based on this paradigm, you are already aware of the limitations as a result of the complexities involved.
Applications built using the normal approach have all these pieces mixed together: the logic for displaying a screen (with fields, radio-buttons, etc.), accepting the user input, executing business logic and displaying data output. Such an application is difficult to develop as the developer is juggling all these pieces at any point of time.
Next comes the maintenance part. Knowing that everything is interwoven making changes to the say, display logic may affect (and wreck) the business logic and the vice versa. Given the complexity, it will require great care and development resources to not only develop such application systems but to maintain also and will require highly skilled developers.
Remember our original question (in bold letters up). Here is the answer - MVC architecture is a design pattern which helps in decoupling data presentation and application logic. Breaking down the overall application into the layers of data presentation and business logic turns the table and eases out the complexity.
The following sketch describes the concept in a simplified form:
The controller program facilitates the interaction between the user and other components. The view component makes the user interface – the visual part. The model component is where the business logic resides – retrieving data for user input, processing it and passing it to View via Controller.
...For the use of MVC architecture in real life applications, I will quote example of java based enterprise applications. If I am not wrong they were the first ones to use MVC architecture and because the language provided that flexibility and suitability.
To understand how MVC paradigm can be implemented in the Java based applications, let us consider an example: View component may be developed using JSP by the web developer and Model component by a java programmer who may be further using Java beans (worker beans) to perform certain tasks like fetching data from database and processing it.
The above one is a classical example of division of not only components but development labor too. The Java developer is not bothered about the visual part designed and developed by web programmer(which is done independently without awareness of the business logic) and vice versa. The web developer just needs to use the developed java application to pass the user inputs and accept its outputs as parameters. Simple!
In SAP, the division is not same as Java applications. There is no division of labor. It's the ABAP developer who is responsible for the development of both View and Model. But SAP kept the development of Web dynpro application relatively programming free by introducing a development environment full of visual elements.
Using the elements like user input field, radio-button, check-box, etc in a development project is just drag and drop and selecting their attributes. The developer can easily build a user interface without writing any code (or minimum code in some cases). So s/he can primarily focus on development of business logic which should ideally be the case.
SAP dynpro technology came from the era of procedural programming and suffered from mixing of application logic, UI logic and screen-control all in one place.
Web dynpro technology overcame this drawback and in long-term, it will supersede the traditional dynpro in SAP ABAP landscape.