I am expanding / converting an obsolete Web Forms application into a completely new MVC application. Expansion both in terms of technology and in terms of business use. A legacy application is a well-designed database support project (DBDD). So, for example, if you have different types of employees, such as Operator, Supervisor, Store Keeper, etc., and you need to add a new type, you just add several rows to a couple of tables and voila, your user interface automatically has everything to add / update a new employee type. However, the separation of the layers is not so good.
The new project has two main goals
- Extensibility (for current and future pipeline requirements)
- Performance
I intend to create a new project replacing DBDD with Driven Design (DDD), taking into account the Extensibility requirement. However, the transition from the Driven Design database to Domain Driven Design seems to adversely affect performance requirements if I compare it with the legacy DBDD application. In an outdated application, any data call from the user interface will directly interact with the database, and any data will be returned as a DataReader or (in some cases) DataSet.
Now with a strict DDD call, any data call will be routed through the "Business" and "Data Access" levels. This means that each call will initialize the business object and the data access object. Different types of data may be required on one page of the user interface, and this is a web application on which each page can be requested by several users. In addition, the MVC web application does not have a status; each request will need to initialize business objects and data access objects each time. Thus, it seems that for an MVC independent application, DBDD prefers DDD for performance.
Or is there a way in DDD to achieve both, the extensibility provided by DDD and the performance provided by DBDD?
architecture asp.net-mvc domain-driven-design
devanalyst
source share