Reengenharia de uma plataforma web monolítica para um sistema SAAS de microserviços aplicando os conceitos Domain Driven Design e Repository Pattern - Luna, David Patrício (2024)
Na presente dissertação pretende-se explicar o processo utilizado para a reengenharia de uma aplicação em ambiente Web baseado na Framework 4.5 e que já tem um ciclo de vida superior a dez anos. Tendo sido descontinuada a presente Framework por parte da Microsoft, decidiu-se reconstruir a nova aplicação recorrendo às últimas Frameworks e tecnologias. A nova plataforma é assente na filosofia SaaS (Software as a Service), ou seja, cada utilizador só paga pelos módulos e tempo que utiliza e a mesma passa a ser disponibilizada como de um serviço se tratasse. A nova plataforma, intitulada daqui por diante por Web Cloud será desenvolvida baseada na nova Framework .NET 7 e posteriormente migrada para a versão 8, dividida em duas partes: uma API (Application Programming Interface) em C# responsável por todas as tarefas de BackEnd e comunicação com a base de dados. Esta API permite que sistemas externos desenvolvidos por clientes ou parceiros possam interagir com a mesma. Foi desenvolvido um componente FrontEnd em HTML (Hypertext Markup Language), CSS (Cascading Style Sheets) e JavaScript responsável por fazer a ponte entre o utilizador e a API, desenvolvida no sentido de efetuar o maior processamento do lado do cliente, de modo a torná-la mais rápida e amigável, ou seja, Client Side. A API está a ser planeada para tirar o maior partido da arquitetura de micro serviços disponibilizados pela Framework .net 7 e do ORM Entity Framework Core em conjunto com o ORM Dapper, estas são responsáveis por efetuar todos os pedidos e interações com a base de dados em SQL Server. Para esta interação foi implementado o padrão de repositório, centralizado e baseado numa unidade de trabalho para cada interação. O FrontEnd será desenvolvido em HTML conjuntamente com CSS para a parte visual e para a parte algorítmica será utilizado o JavaScript com o padrão MVVM (Model – View–View-Model). Para os componentes visuais das janelas serão utilizados os componentes da Syncfusion, licença comunitária e para manipulação das CSS recorreu se à utilização da Framework Bootstrap na sua última versão 5.0. No modelo a desenvolver pretende-se deixar todo o código com forte desacoplamento, ou seja, poucas dependências entre as classes, assim como uma grande escalabilidade ao nível de desenvolvimento de novos módulos e gestão da equipa de desenvolvimento. Todo o processo de desenvolvimento e divisão de tarefas será suportado pela metodologia de Scrum, recorrendo ao Azure Devops para a organização dos vários sprints, assim como a distribuição das várias tarefas.