skip to main content
10.1145/3568562.3568566acmotherconferencesArticle/Chapter ViewAbstractPublication PagessoictConference Proceedingsconference-collections
research-article

Generating Multi-platform Single Page Applications: A Hierarchical Domain-Driven Design Approach

Published:01 December 2022Publication History

ABSTRACT

Single Page Application (SPA) is a most common approach for developing modern web applications. A chief benefit of SPA is reduced round-trip to the server and more responsive user experience. Although several well-known SPA frameworks have been developed and applied in practice, SPA developers are still facing two main challenges: (i) design an SPA that would work accross the frameworks and (ii) realise this design in an intermediate high-level language that would effectively be transformed into a target framework of choice. In this paper, we propose a multi-platform, hierarchical domain-driven design method to tackle these challenges. Our method uses the domain model as the core to build the SPA. We formulate a set of essential technical SPA requirement patterns and, based on these, define a precise SPA metamodel in UML/OCL. We use an annotation-based DSL as an intermediate representational language for the SPA metamodel and from this propose an SPA generator that generates SPAs for four popular SPA frameworks (Angular, React (Native) and Vuejs). The evaluation results show that our method is very promising for building multi-platform SPAs.

References

  1. Alex Banks. 2020. Learning React: modern patterns for developing React apps (2nd ed.). O’Reilly, Beijing.Google ScholarGoogle Scholar
  2. Adam Boduch. 2020. React and React Native(3rd ed.). Packt, Birmingham, UK.Google ScholarGoogle Scholar
  3. Doguhan Uluca. 2020. Angular for Enterprise-Ready Web Applications (2nd ed.). Packt.Google ScholarGoogle Scholar
  4. Tamir Dresher, Amir Zuker, and Shay Friedman. 2018. Hands-On Full-Stack Web Development with ASP.NET Core: Learn end-to-end web development with leading frontend frameworks, such as Angular, React, and Vue. Packt. Google-Books-ID: Tel1DwAAQBAJ.Google ScholarGoogle Scholar
  5. Evan You. 2022. Vue.js. https://vuejs.org/guide/introduction.htmlGoogle ScholarGoogle Scholar
  6. Philipp Fehre. 2015. JavaScript Domain-Driven Design. Packt, Birmingham.Google ScholarGoogle Scholar
  7. Google. 2022. Angular Docs. https://angular.io/docsGoogle ScholarGoogle Scholar
  8. Jesse Griffin. 2020. Domain-Driven Laravel: Learn to Implement Domain-Driven Design Using Laravel(1st ed.). Apress, S.l.Google ScholarGoogle Scholar
  9. Shama Hoque. 2020. Full-Stack React Projects: Learn MERN stack development by building modern web apps using MongoDB, Express, React, and Node.js (2nd ed.). Packt.Google ScholarGoogle Scholar
  10. Philip Klauzinski and John Moore. 2016. Mastering JavaScript Single Page Application Development. Packt, Birmingham.Google ScholarGoogle Scholar
  11. Jörg Krause. 2021. Developing web components with typescript: native web development using thin libraries (1st ed.). Apress.Google ScholarGoogle Scholar
  12. Duc Minh Le, Duc-Hanh Dang, and Viet-Ha Nguyen. 2018. On Domain Driven Design Using Annotation-Based Domain Specific Language. Computer Languages, Systems & Structures 54 (2018), 199–235.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Duc Minh Le, Duc-Hanh Dang, and Viet-Ha Nguyen. 2020. Generative Software Module Development for Domain-Driven Design with Annotation-Based Domain Specific Language. Information and Software Technology 120 (April 2020), 106–239.Google ScholarGoogle Scholar
  14. Duc Minh Le, Duc-Hanh Dang, and Ha Thanh Vu. 2019. jDomainApp: A Module-Based Domain-Driven Software Framework. In Proc. 10th Int. Symp. on Information and Communication Technology (SOICT). ACM, New York, USA, 399–406.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Duc Minh Le and Ha Thanh Vu. 2022. Towards Generating RESTful Full Stack Software: A Module Based Domain Driven Design Approach. In 2nd Conf. ICISN 2022. Springer LNCS, Hanoi, Vietnam.Google ScholarGoogle Scholar
  16. Meta. 2022. React Docs. https://reactjs.org/docs/getting-started.htmlGoogle ScholarGoogle Scholar
  17. Meta. 2022. React Native: Components and APIs. https://reactnative.dev/docs/components-and-apisGoogle ScholarGoogle Scholar
  18. Vijay Nair. 2019. Practical Domain-Driven Design in Enterprise Java: Using Jakarta EE, Eclipse MicroProfile, Spring Boot, and the Axon Framework (1st ed.). Apress, Mountain View, CA, USA.Google ScholarGoogle Scholar
  19. Milan Nosál’, Matúš Sulír, and Ján Juhár. 2016. Language Composition Using Source Code Annotations. Computer Science and Information Systems 13, 3 (2016), 707–729.Google ScholarGoogle ScholarCross RefCross Ref
  20. OMG. 2014. Object Constraint Language Version 2.4. http://www.omg.org/spec/OCL/2.4/Google ScholarGoogle Scholar
  21. OMG. 2015. Unified Modeling Language version 2.5. http://www.omg.org/spec/UML/2.5/Google ScholarGoogle Scholar
  22. OMG. 2017. Unified Modeling Language version 2.5.1. Technical Report formal/2015-03-01. OMG. https://www.omg.org/spec/UML/2.5.1/PDFGoogle ScholarGoogle Scholar
  23. Harry Percival and Bob Gregory. 2020. Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices (1st ed.). O’Reilly Media, Boston.Google ScholarGoogle Scholar
  24. Heitor Ribeiro. 2020. Vue.js 3 Cookbook(1st ed.). Packt.Google ScholarGoogle Scholar
  25. Emmit Scott. 2015. SPA Design and Architecture: Understanding Single Page Web Applications (1sted.). Manning, Shelter Island, NY.Google ScholarGoogle Scholar
  26. Scott Wlaschin. 2018. Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#(1st ed.). Pragmatic Bookshelf, Raleigh, North Carolina.Google ScholarGoogle Scholar
  27. Alexey Zimarev. 2019. Hands-On Domain-Driven Design with.NET Core: Tackling complexity in the heart of software by putting DDD principles into practice (1st ed.). Packt, Birmingham.Google ScholarGoogle Scholar

Index Terms

  1. Generating Multi-platform Single Page Applications: A Hierarchical Domain-Driven Design Approach

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        SoICT '22: Proceedings of the 11th International Symposium on Information and Communication Technology
        December 2022
        474 pages
        ISBN:9781450397254
        DOI:10.1145/3568562

        Copyright © 2022 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 December 2022

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed limited

        Acceptance Rates

        Overall Acceptance Rate147of318submissions,46%
      • Article Metrics

        • Downloads (Last 12 months)45
        • Downloads (Last 6 weeks)6

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      HTML Format

      View this article in HTML Format .

      View HTML Format