METHODS AND TOOLS OF DOMAIN-DRIVEN DESIGN OF COMPLEX SOFTWARE SYSTEMS ON THE .NET CORE PLATFORM - PASICHNIUK, ANTON; TYKHOKHOD, VOLODYMYR (Herald of Khmelnytskyi National University. Technical sciences, 2023)
Object-oriented design and approaches to software implementation of systems are relatively new concepts. Templates, tools and technologies related to the implementation of domain models are developing and taking on new forms together with other areas of information technology and software engineering, in particular, with the development of programming languages and platforms, object-relational mapping technologies, microservices, cloud applications. The paper analyzes the problems of implementing methods and choosing means of subject-oriented design of complex problem areas, considers the templates used to create software to support the activities of complex areas on the .NET Core platform. Existing practices are summarized, methods of implementing tactical design patterns on the .NET Core platform are described. The basic concepts of tactical design templates are shown on the examples of object models made in the UML modeling language. Some examples with fragments of the implementation of subject models in the C# programming language are given, which reflect the peculiarities of the implementation of some aspects of the domain in this programming language and emphasize their peculiarities. Technical solutions for the implementation of the main concepts of entities, aggregates and objects of values, which are the most important concepts of tactical domain design, are analyzed. The technical features of applying Entity Framework Core object-relational mapping technology for building a high-quality domain model are disclosed. The necessity of structuring the subject area into small isolated parts in order to simplify the task space by using the Module template is emphasized, and the main techniques of implementing this template are highlighted. There are several possible ways of implementing domain events that are used to transfer side effects between aggregates.